yes
目錄
hide
yes
yes
show
show
hide
show
hide
hide
yes
yes
yes
hide
show
hide
hide
{
    "tiddlers": {
        "$:/Acknowledgements": {
            "title": "$:/Acknowledgements",
            "text": "TiddlyWiki incorporates code from these fine OpenSource projects:\n\n* [[The Stanford Javascript Crypto Library|http://bitwiseshiftleft.github.io/sjcl/]]\n* [[The Jasmine JavaScript Test Framework|http://pivotal.github.io/jasmine/]]\n* [[Normalize.css by Nicolas Gallagher|http://necolas.github.io/normalize.css/]]\n\nAnd media from these projects:\n\n* World flag icons from [[Wikipedia|http://commons.wikimedia.org/wiki/Category:SVG_flags_by_country]]\n"
        },
        "$:/core/copyright.txt": {
            "title": "$:/core/copyright.txt",
            "type": "text/plain",
            "text": "TiddlyWiki created by Jeremy Ruston, (jeremy [at] jermolene [dot] com)\n\nCopyright (c) 2004-2007, Jeremy Ruston\nCopyright (c) 2007-2020, UnaMesa Association\nAll rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are met:\n\n* Redistributions of source code must retain the above copyright notice, this\n  list of conditions and the following disclaimer.\n\n* Redistributions in binary form must reproduce the above copyright notice,\n  this list of conditions and the following disclaimer in the documentation\n  and/or other materials provided with the distribution.\n\n* Neither the name of the copyright holder nor the names of its\n  contributors may be used to endorse or promote products derived from\n  this software without specific prior written permission.\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 'AS IS'\nAND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\nIMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\nDISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE\nFOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\nDAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR\nSERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER\nCAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,\nOR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\nOF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
        },
        "$:/core/icon": {
            "title": "$:/core/icon",
            "tags": "$:/tags/Image",
            "text": "<svg width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\"><path d=\"M64 0l54.56 32v64L64 128 9.44 96V32L64 0zm21.127 95.408c-3.578-.103-5.15-.094-6.974-3.152l-1.42.042c-1.653-.075-.964-.04-2.067-.097-1.844-.07-1.548-1.86-1.873-2.8-.52-3.202.687-6.43.65-9.632-.014-1.14-1.593-5.17-2.157-6.61-1.768.34-3.546.406-5.34.497-4.134-.01-8.24-.527-12.317-1.183-.8 3.35-3.16 8.036-1.21 11.44 2.37 3.52 4.03 4.495 6.61 4.707 2.572.212 3.16 3.18 2.53 4.242-.55.73-1.52.864-2.346 1.04l-1.65.08c-1.296-.046-2.455-.404-3.61-.955-1.93-1.097-3.925-3.383-5.406-5.024.345.658.55 1.938.24 2.53-.878 1.27-4.665 1.26-6.4.47-1.97-.89-6.73-7.162-7.468-11.86 1.96-3.78 4.812-7.07 6.255-11.186-3.146-2.05-4.83-5.384-4.61-9.16l.08-.44c-3.097.59-1.49.37-4.82.628-10.608-.032-19.935-7.37-14.68-18.774.34-.673.664-1.287 1.243-.994.466.237.4 1.18.166 2.227-3.005 13.627 11.67 13.732 20.69 11.21.89-.25 2.67-1.936 3.905-2.495 2.016-.91 4.205-1.282 6.376-1.55 5.4-.63 11.893 2.276 15.19 2.37 3.3.096 7.99-.805 10.87-.615 2.09.098 4.143.483 6.16 1.03 1.306-6.49 1.4-11.27 4.492-12.38 1.814.293 3.213 2.818 4.25 4.167 2.112-.086 4.12.46 6.115 1.066 3.61-.522 6.642-2.593 9.833-4.203-3.234 2.69-3.673 7.075-3.303 11.127.138 2.103-.444 4.386-1.164 6.54-1.348 3.507-3.95 7.204-6.97 7.014-1.14-.036-1.805-.695-2.653-1.4-.164 1.427-.81 2.7-1.434 3.96-1.44 2.797-5.203 4.03-8.687 7.016-3.484 2.985 1.114 13.65 2.23 15.594 1.114 1.94 4.226 2.652 3.02 4.406-.37.58-.936.785-1.54 1.01l-.82.11zm-40.097-8.85l.553.14c.694-.27 2.09.15 2.83.353-1.363-1.31-3.417-3.24-4.897-4.46-.485-1.47-.278-2.96-.174-4.46l.02-.123c-.582 1.205-1.322 2.376-1.72 3.645-.465 1.71 2.07 3.557 3.052 4.615l.336.3z\" fill-rule=\"evenodd\"/></svg>"
        },
        "$:/core/images/add-comment": {
            "title": "$:/core/images/add-comment",
            "tags": "$:/tags/Image",
            "text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-add-comment tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M56 56H36a8 8 0 100 16h20v20a8 8 0 1016 0V72h20a8 8 0 100-16H72V36a8 8 0 10-16 0v20zm-12.595 58.362c-6.683 7.659-20.297 12.903-36.006 12.903-2.196 0-4.35-.102-6.451-.3 9.652-3.836 17.356-12.24 21.01-22.874C8.516 94.28 0 79.734 0 63.5 0 33.953 28.206 10 63 10s63 23.953 63 53.5S97.794 117 63 117c-6.841 0-13.428-.926-19.595-2.638z\"/></svg>"
        },
        "$:/core/images/advanced-search-button": {
            "title": "$:/core/images/advanced-search-button",
            "tags": "$:/tags/Image",
            "text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-advanced-search-button tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><path d=\"M74.565 87.985A47.776 47.776 0 0148 96C21.49 96 0 74.51 0 48S21.49 0 48 0s48 21.49 48 48c0 9.854-2.97 19.015-8.062 26.636l34.347 34.347a9.443 9.443 0 010 13.36 9.446 9.446 0 01-13.36 0l-34.36-34.358zM48 80c17.673 0 32-14.327 32-32 0-17.673-14.327-32-32-32-17.673 0-32 14.327-32 32 0 17.673 14.327 32 32 32z\"/><circle cx=\"48\" cy=\"48\" r=\"8\"/><circle cx=\"28\" cy=\"48\" r=\"8\"/><circle cx=\"68\" cy=\"48\" r=\"8\"/></g></svg>"
        },
        "$:/core/images/auto-height": {
            "title": "$:/core/images/auto-height",
            "tags": "$:/tags/Image",
            "text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-auto-height tc-image-button\" viewBox=\"0 0 128 128\"><path d=\"M67.987 114.356l-.029-14.477a4 4 0 00-2.067-3.494l-15.966-8.813-1.933 7.502H79.9c4.222 0 5.564-5.693 1.786-7.58L49.797 71.572 48.01 79.15h31.982c4.217 0 5.564-5.682 1.795-7.575L49.805 55.517l-1.795 7.575h31.982c4.212 0 5.563-5.67 1.805-7.57l-16.034-8.105 2.195 3.57V35.614l9.214 9.213a4 4 0 105.656-5.656l-16-16a4 4 0 00-5.656 0l-16 16a4 4 0 105.656 5.656l9.13-9.13v15.288a4 4 0 002.195 3.57l16.035 8.106 1.804-7.57H48.01c-4.217 0-5.564 5.682-1.795 7.574l31.982 16.059 1.795-7.575H48.01c-4.222 0-5.564 5.693-1.787 7.579l31.89 15.923 1.787-7.578H47.992c-4.133 0-5.552 5.504-1.933 7.501l15.966 8.813-2.067-3.494.029 14.436-9.159-9.158a4 4 0 00-5.656 5.656l16 16a4 4 0 005.656 0l16-16a4 4 0 10-5.656-5.656l-9.185 9.184zM16 20h96a4 4 0 100-8H16a4 4 0 100 8z\"/></svg>"
        },
        "$:/core/images/blank": {
            "title": "$:/core/images/blank",
            "tags": "$:/tags/Image",
            "text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-blank tc-image-button\" viewBox=\"0 0 128 128\"/>"
        },
        "$:/core/images/bold": {
            "title": "$:/core/images/bold",
            "tags": "$:/tags/Image",
            "text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-bold tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M41.146 51.81V21.87h26.353c2.51 0 4.93.21 7.26.628 2.33.418 4.392 1.165 6.185 2.24 1.793 1.076 3.227 2.57 4.302 4.482 1.076 1.913 1.614 4.363 1.614 7.35 0 5.379-1.613 9.263-4.84 11.653-3.227 2.39-7.35 3.586-12.37 3.586H41.146zM13 0v128h62.028a65.45 65.45 0 0016.762-2.151c5.438-1.434 10.278-3.645 14.52-6.633 4.244-2.988 7.62-6.842 10.13-11.563 2.51-4.721 3.764-10.308 3.764-16.762 0-8.008-1.942-14.85-5.826-20.527-3.884-5.677-9.77-9.65-17.658-11.921 5.737-2.75 10.069-6.275 12.997-10.577 2.928-4.303 4.392-9.681 4.392-16.135 0-5.976-.986-10.995-2.958-15.059-1.972-4.063-4.75-7.32-8.336-9.77-3.585-2.45-7.888-4.213-12.907-5.289C84.888.538 79.33 0 73.235 0H13zm28.146 106.129V70.992H71.8c6.095 0 10.995 1.404 14.7 4.212 3.705 2.81 5.558 7.5 5.558 14.073 0 3.347-.568 6.096-1.703 8.247-1.136 2.151-2.66 3.854-4.572 5.11-1.912 1.254-4.123 2.15-6.633 2.688-2.51.538-5.139.807-7.888.807H41.146z\"/></svg>"
        },
        "$:/core/images/cancel-button": {
            "title": "$:/core/images/cancel-button",
            "tags": "$:/tags/Image",
            "text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-cancel-button tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M64 76.314l-16.97 16.97a7.999 7.999 0 01-11.314 0c-3.118-3.118-3.124-8.19 0-11.313L52.686 65l-16.97-16.97a7.999 7.999 0 010-11.314c3.118-3.118 8.19-3.124 11.313 0L64 53.686l16.97-16.97a7.999 7.999 0 0111.314 0c3.118 3.118 3.124 8.19 0 11.313L75.314 65l16.97 16.97a7.999 7.999 0 010 11.314c-3.118 3.118-8.19 3.124-11.313 0L64 76.314zM64 129c35.346 0 64-28.654 64-64 0-35.346-28.654-64-64-64C28.654 1 0 29.654 0 65c0 35.346 28.654 64 64 64zm0-16c26.51 0 48-21.49 48-48S90.51 17 64 17 16 38.49 16 65s21.49 48 48 48z\"/></svg>"
        },
        "$:/core/images/chevron-down": {
            "title": "$:/core/images/chevron-down",
            "tags": "$:/tags/Image",
            "text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-chevron-down tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><path d=\"M64.053 85.456a7.889 7.889 0 01-5.6-2.316L2.473 27.16a7.92 7.92 0 010-11.196c3.086-3.085 8.105-3.092 11.196 0L64.05 66.344l50.382-50.382a7.92 7.92 0 0111.195 0c3.085 3.086 3.092 8.105 0 11.196l-55.98 55.98a7.892 7.892 0 01-5.595 2.317z\"/><path d=\"M64.053 124.069a7.889 7.889 0 01-5.6-2.316l-55.98-55.98a7.92 7.92 0 010-11.196c3.086-3.085 8.105-3.092 11.196 0l50.382 50.382 50.382-50.382a7.92 7.92 0 0111.195 0c3.085 3.086 3.092 8.104 0 11.196l-55.98 55.98a7.892 7.892 0 01-5.595 2.316z\"/></g></svg>"
        },
        "$:/core/images/chevron-left": {
            "title": "$:/core/images/chevron-left",
            "tags": "$:/tags/Image",
            "text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-chevron-left tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><path d=\"M47.544 64.053c0-2.027.77-4.054 2.316-5.6l55.98-55.98a7.92 7.92 0 0111.196 0c3.085 3.086 3.092 8.105 0 11.196L66.656 64.05l50.382 50.382a7.92 7.92 0 010 11.195c-3.086 3.085-8.105 3.092-11.196 0l-55.98-55.98a7.892 7.892 0 01-2.317-5.595z\"/><path d=\"M8.931 64.053c0-2.027.77-4.054 2.316-5.6l55.98-55.98a7.92 7.92 0 0111.196 0c3.085 3.086 3.092 8.105 0 11.196L28.041 64.05l50.382 50.382a7.92 7.92 0 010 11.195c-3.086 3.085-8.104 3.092-11.196 0l-55.98-55.98a7.892 7.892 0 01-2.316-5.595z\"/></g></svg>"
        },
        "$:/core/images/chevron-right": {
            "title": "$:/core/images/chevron-right",
            "tags": "$:/tags/Image",
            "text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-chevron-right tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><path d=\"M83.456 63.947c0 2.027-.77 4.054-2.316 5.6l-55.98 55.98a7.92 7.92 0 01-11.196 0c-3.085-3.086-3.092-8.105 0-11.196L64.344 63.95 13.963 13.567a7.92 7.92 0 010-11.195c3.086-3.085 8.105-3.092 11.196 0l55.98 55.98a7.892 7.892 0 012.317 5.595z\"/><path d=\"M122.069 63.947c0 2.027-.77 4.054-2.316 5.6l-55.98 55.98a7.92 7.92 0 01-11.196 0c-3.085-3.086-3.092-8.105 0-11.196l50.382-50.382-50.382-50.382a7.92 7.92 0 010-11.195c3.086-3.085 8.104-3.092 11.196 0l55.98 55.98a7.892 7.892 0 012.316 5.595z\"/></g></svg>"
        },
        "$:/core/images/chevron-up": {
            "title": "$:/core/images/chevron-up",
            "tags": "$:/tags/Image",
            "text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-chevron-up tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><path d=\"M63.947 44.544c2.027 0 4.054.77 5.6 2.316l55.98 55.98a7.92 7.92 0 010 11.196c-3.086 3.085-8.105 3.092-11.196 0L63.95 63.656l-50.382 50.382a7.92 7.92 0 01-11.195 0c-3.085-3.086-3.092-8.105 0-11.196l55.98-55.98a7.892 7.892 0 015.595-2.317z\"/><path d=\"M63.947 5.931c2.027 0 4.054.77 5.6 2.316l55.98 55.98a7.92 7.92 0 010 11.196c-3.086 3.085-8.105 3.092-11.196 0L63.95 25.041 13.567 75.423a7.92 7.92 0 01-11.195 0c-3.085-3.086-3.092-8.104 0-11.196l55.98-55.98a7.892 7.892 0 015.595-2.316z\"/></g></svg>"
        },
        "$:/core/images/clone-button": {
            "title": "$:/core/images/clone-button",
            "tags": "$:/tags/Image",
            "text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-clone-button tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><path d=\"M32.265 96v24.002A7.996 7.996 0 0040.263 128h79.74a7.996 7.996 0 007.997-7.998v-79.74a7.996 7.996 0 00-7.998-7.997H96V48h12.859a2.99 2.99 0 012.994 2.994v57.865a2.99 2.99 0 01-2.994 2.994H50.994A2.99 2.99 0 0148 108.859V96H32.265z\"/><path d=\"M40 56h-7.993C27.588 56 24 52.418 24 48c0-4.41 3.585-8 8.007-8H40v-7.993C40 27.588 43.582 24 48 24c4.41 0 8 3.585 8 8.007V40h7.993C68.412 40 72 43.582 72 48c0 4.41-3.585 8-8.007 8H56v7.993C56 68.412 52.418 72 48 72c-4.41 0-8-3.585-8-8.007V56zM8 0C3.58 0 0 3.588 0 8v80c0 4.419 3.588 8 8 8h80c4.419 0 8-3.588 8-8V8c0-4.419-3.588-8-8-8H8zM19 16A2.997 2.997 0 0016 19.001v57.998A2.997 2.997 0 0019.001 80h57.998A2.997 2.997 0 0080 76.999V19.001A2.997 2.997 0 0076.999 16H19.001z\"/></g></svg>"
        },
        "$:/core/images/close-all-button": {
            "title": "$:/core/images/close-all-button",
            "tags": "$:/tags/Image",
            "text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-close-all-button tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><path d=\"M28 111.314l-14.144 14.143a8 8 0 01-11.313-11.313L16.686 100 2.543 85.856a8 8 0 0111.313-11.313L28 88.686l14.144-14.143a8 8 0 0111.313 11.313L39.314 100l14.143 14.144a8 8 0 01-11.313 11.313L28 111.314zM28 39.314L13.856 53.457A8 8 0 012.543 42.144L16.686 28 2.543 13.856A8 8 0 0113.856 2.543L28 16.686 42.144 2.543a8 8 0 0111.313 11.313L39.314 28l14.143 14.144a8 8 0 01-11.313 11.313L28 39.314zM100 39.314L85.856 53.457a8 8 0 01-11.313-11.313L88.686 28 74.543 13.856A8 8 0 0185.856 2.543L100 16.686l14.144-14.143a8 8 0 0111.313 11.313L111.314 28l14.143 14.144a8 8 0 01-11.313 11.313L100 39.314zM100 111.314l-14.144 14.143a8 8 0 01-11.313-11.313L88.686 100 74.543 85.856a8 8 0 0111.313-11.313L100 88.686l14.144-14.143a8 8 0 0111.313 11.313L111.314 100l14.143 14.144a8 8 0 01-11.313 11.313L100 111.314z\"/></g></svg>"
        },
        "$:/core/images/close-button": {
            "title": "$:/core/images/close-button",
            "tags": "$:/tags/Image",
            "text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-close-button tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M65.086 75.41l-50.113 50.113c-3.121 3.121-8.192 3.126-11.316.002-3.118-3.118-3.123-8.19.002-11.316l50.114-50.114L3.659 13.982C.538 10.86.533 5.79 3.657 2.666c3.118-3.118 8.19-3.123 11.316.002l50.113 50.114L115.2 2.668c3.121-3.121 8.192-3.126 11.316-.002 3.118 3.118 3.123 8.19-.002 11.316L76.4 64.095l50.114 50.114c3.121 3.121 3.126 8.192.002 11.316-3.118 3.118-8.19 3.123-11.316-.002L65.086 75.409z\"/></svg>"
        },
        "$:/core/images/close-others-button": {
            "title": "$:/core/images/close-others-button",
            "tags": "$:/tags/Image",
            "text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-close-others-button tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M64 128c35.346 0 64-28.654 64-64 0-35.346-28.654-64-64-64C28.654 0 0 28.654 0 64c0 35.346 28.654 64 64 64zm0-16c26.51 0 48-21.49 48-48S90.51 16 64 16 16 37.49 16 64s21.49 48 48 48zm0-16c17.673 0 32-14.327 32-32 0-17.673-14.327-32-32-32-17.673 0-32 14.327-32 32 0 17.673 14.327 32 32 32zm0-16c8.837 0 16-7.163 16-16s-7.163-16-16-16-16 7.163-16 16 7.163 16 16 16z\"/></svg>"
        },
        "$:/core/images/copy-clipboard": {
            "title": "$:/core/images/copy-clipboard",
            "tags": "$:/tags/Image",
            "text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-copy-clipboard tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><rect width=\"33\" height=\"8\" x=\"40\" y=\"40\" rx=\"4\"/><rect width=\"17\" height=\"8\" x=\"40\" y=\"82\" rx=\"4\"/><rect width=\"17\" height=\"8\" x=\"40\" y=\"54\" rx=\"4\"/><rect width=\"33\" height=\"8\" x=\"40\" y=\"96\" rx=\"4\"/><rect width=\"12\" height=\"8\" x=\"40\" y=\"68\" rx=\"4\"/><path d=\"M40 16H24c-4.419 0-8 3.59-8 8a8.031 8.031 0 000 .01v95.98a8.03 8.03 0 000 .01c0 4.41 3.581 8 8 8h80a7.975 7.975 0 005.652-2.34 7.958 7.958 0 002.348-5.652v-16.016c0-4.414-3.582-7.992-8-7.992-4.41 0-8 3.578-8 7.992V112H32V32h64v8.008C96 44.422 99.582 48 104 48c4.41 0 8-3.578 8-7.992V23.992a7.963 7.963 0 00-2.343-5.651A7.995 7.995 0 00104.001 16H88c0-4.41-3.585-8-8.007-8H48.007C43.588 8 40 11.582 40 16zm4-1.004A4.001 4.001 0 0148 11h32c2.21 0 4 1.797 4 3.996v4.008A4.001 4.001 0 0180 23H48c-2.21 0-4-1.797-4-3.996v-4.008z\"/><rect width=\"66\" height=\"16\" x=\"62\" y=\"64\" rx=\"8\"/><path d=\"M84.657 82.343l-16-16v11.314l16-16a8 8 0 10-11.314-11.314l-16 16a8 8 0 000 11.314l16 16a8 8 0 1011.314-11.314z\"/></g></svg>"
        },
        "$:/core/images/delete-button": {
            "title": "$:/core/images/delete-button",
            "tags": "$:/tags/Image",
            "text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-delete-button tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\" transform=\"translate(12)\"><rect width=\"105\" height=\"16\" y=\"11\" rx=\"8\"/><rect width=\"48\" height=\"16\" x=\"28\" rx=\"8\"/><rect width=\"16\" height=\"112\" x=\"8\" y=\"16\" rx=\"8\"/><rect width=\"88\" height=\"16\" x=\"8\" y=\"112\" rx=\"8\"/><rect width=\"16\" height=\"112\" x=\"80\" y=\"16\" rx=\"8\"/><rect width=\"16\" height=\"112\" x=\"56\" y=\"16\" rx=\"8\"/><rect width=\"16\" height=\"112\" x=\"32\" y=\"16\" rx=\"8\"/></g></svg>"
        },
        "$:/core/images/done-button": {
            "title": "$:/core/images/done-button",
            "tags": "$:/tags/Image",
            "text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-done-button tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M42.26 111.032c-2.051.001-4.103-.78-5.668-2.345L2.662 74.758a8 8 0 01-.005-11.32c3.118-3.117 8.192-3.12 11.32.007l28.278 28.278 72.124-72.124a8.002 8.002 0 0111.314-.001c3.118 3.118 3.124 8.19 0 11.315l-77.78 77.78a7.978 7.978 0 01-5.658 2.343z\"/></svg>"
        },
        "$:/core/images/down-arrow": {
            "title": "$:/core/images/down-arrow",
            "tags": "$:/tags/Image",
            "text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-down-arrow tc-image-button\" viewBox=\"0 0 128 128\"><path d=\"M64.177 100.069a7.889 7.889 0 01-5.6-2.316l-55.98-55.98a7.92 7.92 0 010-11.196c3.086-3.085 8.105-3.092 11.196 0l50.382 50.382 50.382-50.382a7.92 7.92 0 0111.195 0c3.086 3.086 3.092 8.104 0 11.196l-55.98 55.98a7.892 7.892 0 01-5.595 2.316z\"/></svg>"
        },
        "$:/core/images/download-button": {
            "title": "$:/core/images/download-button",
            "tags": "$:/tags/Image",
            "text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-download-button tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><path d=\"M64 128c35.346 0 64-28.654 64-64 0-35.346-28.654-64-64-64C28.654 0 0 28.654 0 64c0 35.346 28.654 64 64 64zm0-16c26.51 0 48-21.49 48-48S90.51 16 64 16 16 37.49 16 64s21.49 48 48 48z\" class=\"tc-image-download-button-ring\"/><path d=\"M34.35 66.43l26.892 27.205a4.57 4.57 0 006.516 0L94.65 66.43a4.7 4.7 0 000-6.593 4.581 4.581 0 00-3.258-1.365h-8.46c-2.545 0-4.608-2.087-4.608-4.661v-15.15c0-2.575-2.063-4.662-4.608-4.662H55.284c-2.545 0-4.608 2.087-4.608 4.662v15.15c0 2.574-2.063 4.661-4.608 4.661h-8.46c-2.545 0-4.608 2.087-4.608 4.662a4.69 4.69 0 001.35 3.296z\"/></g></svg>"
        },
        "$:/core/images/edit-button": {
            "title": "$:/core/images/edit-button",
            "tags": "$:/tags/Image",
            "text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-edit-button tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><path d=\"M95.627 10.059l-5.656 5.657 11.313 11.313 5.657-5.656-11.314-11.314zm5.657-5.657l1.966-1.966c3.123-3.122 8.194-3.129 11.319-.005 3.117 3.118 3.122 8.192-.005 11.32l-1.966 1.965-11.314-11.314zm-16.97 16.97l-60.25 60.25a8.12 8.12 0 00-.322.342c-.1.087-.198.179-.295.275-5.735 5.735-10.702 22.016-10.702 22.016s16.405-5.09 22.016-10.702c.095-.096.186-.193.272-.292a8.12 8.12 0 00.345-.325l60.25-60.25-11.314-11.313zM35.171 124.19c6.788-.577 13.898-2.272 23.689-5.348 1.825-.573 3.57-1.136 6.336-2.04 16-5.226 21.877-6.807 28.745-7.146 8.358-.413 13.854 2.13 17.58 8.699a4 4 0 006.959-3.946c-5.334-9.406-13.745-13.296-24.933-12.744-7.875.39-14.057 2.052-30.835 7.533-2.739.894-4.46 1.45-6.25 2.012-19.46 6.112-30.77 7.072-39.597 1.747a4 4 0 10-4.132 6.85c6.333 3.82 13.754 5.12 22.438 4.383z\"/></g></svg>"
        },
        "$:/core/images/erase": {
            "title": "$:/core/images/erase",
            "tags": "$:/tags/Image",
            "text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-erase tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M60.087 127.996l63.015-63.015c6.535-6.535 6.528-17.115-.003-23.646L99.466 17.702c-6.539-6.538-17.117-6.532-23.646-.003L4.898 88.62c-6.535 6.534-6.528 17.115.003 23.646l15.73 15.73h39.456zm-34.95-7.313l-14.324-14.325c-3.267-3.268-3.268-8.564-.008-11.824L46.269 59.07l35.462 35.462-26.15 26.15H25.137z\"/></svg>"
        },
        "$:/core/images/excise": {
            "title": "$:/core/images/excise",
            "tags": "$:/tags/Image",
            "text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-excise tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M56 107.314l-2.343 2.343a8 8 0 11-11.314-11.314l16-16a8 8 0 0111.314 0l16 16a8 8 0 11-11.314 11.314L72 107.314v14.284c0 3.536-3.582 6.402-8 6.402s-8-2.866-8-6.402v-14.284zM0 40.007C0 35.585 3.59 32 8 32c4.418 0 8 3.588 8 8.007v31.986C16 76.415 12.41 80 8 80c-4.418 0-8-3.588-8-8.007V40.007zm32 0C32 35.585 35.59 32 40 32c4.418 0 8 3.588 8 8.007v31.986C48 76.415 44.41 80 40 80c-4.418 0-8-3.588-8-8.007V40.007zm48 0C80 35.585 83.59 32 88 32c4.418 0 8 3.588 8 8.007v31.986C96 76.415 92.41 80 88 80c-4.418 0-8-3.588-8-8.007V40.007zm-24-32C56 3.585 59.59 0 64 0c4.418 0 8 3.588 8 8.007v31.986C72 44.415 68.41 48 64 48c-4.418 0-8-3.588-8-8.007V8.007zm56 32c0-4.422 3.59-8.007 8-8.007 4.418 0 8 3.588 8 8.007v31.986c0 4.422-3.59 8.007-8 8.007-4.418 0-8-3.588-8-8.007V40.007z\"/></svg>"
        },
        "$:/core/images/export-button": {
            "title": "$:/core/images/export-button",
            "tags": "$:/tags/Image",
            "text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-export-button tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M8.003 128H119.993a7.984 7.984 0 005.664-2.349v.007A7.975 7.975 0 00128 120V56c0-4.418-3.59-8-8-8-4.418 0-8 3.58-8 8v56H16V56c0-4.418-3.59-8-8-8-4.418 0-8 3.58-8 8v64c0 4.418 3.59 8 8 8h.003zm48.62-100.689l-8.965 8.966c-3.125 3.125-8.195 3.13-11.319.005-3.118-3.118-3.122-8.192.005-11.319L58.962 2.346A7.986 7.986 0 0164.625 0l-.006.002c2.05-.001 4.102.78 5.666 2.344l22.618 22.617c3.124 3.125 3.129 8.195.005 11.319-3.118 3.118-8.192 3.122-11.319-.005l-8.965-8.966v61.256c0 4.411-3.582 8-8 8-4.41 0-8-3.582-8-8V27.311z\"/></svg>"
        },
        "$:/core/images/file": {
            "title": "$:/core/images/file",
            "tags": "$:/tags/Image",
            "text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-file tc-image-button\" viewBox=\"0 0 128 128\"><path d=\"M111.968 30.5H112V120a8 8 0 01-8 8H24a8 8 0 01-8-8V8a8 8 0 018-8h57v.02a7.978 7.978 0 015.998 2.337l22.627 22.627a7.975 7.975 0 012.343 5.516zM81 8H24v112h80V30.5H89c-4.418 0-8-3.578-8-8V8z\"/><rect width=\"64\" height=\"8\" x=\"32\" y=\"36\" rx=\"4\"/><rect width=\"64\" height=\"8\" x=\"32\" y=\"52\" rx=\"4\"/><rect width=\"64\" height=\"8\" x=\"32\" y=\"68\" rx=\"4\"/><rect width=\"64\" height=\"8\" x=\"32\" y=\"84\" rx=\"4\"/><rect width=\"64\" height=\"8\" x=\"32\" y=\"100\" rx=\"4\"/><rect width=\"40\" height=\"8\" x=\"32\" y=\"20\" rx=\"4\"/></svg>"
        },
        "$:/core/images/fixed-height": {
            "title": "$:/core/images/fixed-height",
            "tags": "$:/tags/Image",
            "text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-fixed-height tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M60 35.657l-9.172 9.171a4 4 0 11-5.656-5.656l16-16a4 4 0 015.656 0l16 16a4 4 0 01-5.656 5.656L68 35.657v57.686l9.172-9.171a4 4 0 115.656 5.656l-16 16a4 4 0 01-5.656 0l-16-16a4 4 0 115.656-5.656L60 93.343V35.657zM16 116h96a4 4 0 100-8H16a4 4 0 100 8zm0-96h96a4 4 0 100-8H16a4 4 0 100 8z\"/></svg>"
        },
        "$:/core/images/fold-all-button": {
            "title": "$:/core/images/fold-all-button",
            "tags": "$:/tags/Image",
            "text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-fold-all tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><rect width=\"128\" height=\"16\" rx=\"8\"/><rect width=\"128\" height=\"16\" y=\"64\" rx=\"8\"/><path d=\"M64.03 20.004c-2.05 0-4.102.78-5.667 2.344L35.746 44.966c-3.125 3.124-3.13 8.194-.005 11.318 3.118 3.118 8.192 3.122 11.319-.005l16.965-16.965 16.966 16.965c3.124 3.125 8.194 3.13 11.318.005 3.118-3.118 3.122-8.191-.005-11.318L69.687 22.348a7.986 7.986 0 00-5.663-2.346zM64.03 85.002c-2.05-.001-4.102.78-5.667 2.344l-22.617 22.617c-3.125 3.125-3.13 8.195-.005 11.319 3.118 3.118 8.192 3.122 11.319-.005l16.965-16.966 16.966 16.966c3.124 3.125 8.194 3.13 11.318.005 3.118-3.118 3.122-8.192-.005-11.319L69.687 87.346A7.986 7.986 0 0064.024 85z\"/></g></svg>"
        },
        "$:/core/images/fold-button": {
            "title": "$:/core/images/fold-button",
            "tags": "$:/tags/Image",
            "text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-fold tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><rect width=\"128\" height=\"16\" rx=\"8\"/><path d=\"M64.03 25.004c-2.05 0-4.102.78-5.667 2.344L35.746 49.966c-3.125 3.124-3.13 8.194-.005 11.318 3.118 3.118 8.192 3.122 11.319-.005l16.965-16.965 16.966 16.965c3.124 3.125 8.194 3.13 11.318.005 3.118-3.118 3.122-8.191-.005-11.318L69.687 27.348a7.986 7.986 0 00-5.663-2.346zM64.005 67.379c-2.05 0-4.102.78-5.666 2.344L35.722 92.34c-3.125 3.125-3.13 8.195-.006 11.32 3.118 3.117 8.192 3.121 11.32-.006L64 86.69l16.965 16.965c3.125 3.125 8.195 3.13 11.319.005 3.118-3.118 3.122-8.192-.005-11.319L69.663 69.723A7.986 7.986 0 0064 67.377z\"/></g></svg>"
        },
        "$:/core/images/fold-others-button": {
            "title": "$:/core/images/fold-others-button",
            "tags": "$:/tags/Image",
            "text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-fold-others tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><rect width=\"128\" height=\"16\" y=\"56.031\" rx=\"8\"/><path d=\"M86.632 79.976c-2.05 0-4.102.78-5.666 2.345L64 99.286 47.034 82.321a7.986 7.986 0 00-5.662-2.346l.005.001c-2.05 0-4.102.78-5.666 2.345l-22.618 22.617c-3.124 3.125-3.129 8.195-.005 11.319 3.118 3.118 8.192 3.122 11.319-.005l16.966-16.966 16.965 16.966a7.986 7.986 0 005.663 2.346l-.005-.002c2.05 0 4.102-.78 5.666-2.344l16.965-16.966 16.966 16.966c3.125 3.124 8.194 3.129 11.319.005 3.118-3.118 3.122-8.192-.005-11.319L92.289 82.321a7.986 7.986 0 00-5.663-2.346zM86.7 48.024c-2.05 0-4.102-.78-5.666-2.345L64.07 28.714 47.103 45.679a7.986 7.986 0 01-5.663 2.346l.005-.001c-2.05 0-4.101-.78-5.666-2.345L13.162 23.062c-3.125-3.125-3.13-8.195-.005-11.319 3.118-3.118 8.192-3.122 11.319.005L41.44 28.714l16.966-16.966a7.986 7.986 0 015.662-2.346l-.005.002c2.05 0 4.102.78 5.666 2.344l16.966 16.966 16.966-16.966c3.124-3.124 8.194-3.129 11.318-.005 3.118 3.118 3.122 8.192-.005 11.319L92.358 45.679a7.986 7.986 0 01-5.663 2.346z\"/></g></svg>"
        },
        "$:/core/images/folder": {
            "title": "$:/core/images/folder",
            "tags": "$:/tags/Image",
            "text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-folder tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><path d=\"M55.694 128H8C3.58 128 0 124.414 0 119.996V48.004C0 43.584 3.584 40 7.999 40H16v-8c0-4.418 3.578-8 8-8h32a8 8 0 018 8v8h40.001c4.418 0 7.999 3.586 7.999 8.004V59.83l-8-.082v-7.749A4 4 0 0099.997 48H56V36c0-2.21-1.793-4-4.004-4H28.004A4 4 0 0024 36v12H12.003A4 4 0 008 52v64a4 4 0 004.003 4h46.76l-3.069 8z\"/><path d=\"M23.873 55.5h96.003c4.417 0 7.004 4.053 5.774 9.063l-13.344 54.374c-1.228 5.005-5.808 9.063-10.223 9.063H6.08c-4.417 0-7.003-4.053-5.774-9.063L13.65 64.563c1.228-5.005 5.808-9.063 10.223-9.063zm1.78 8.5h87.994c2.211 0 3.504 2.093 2.891 4.666l-11.12 46.668c-.614 2.577-2.902 4.666-5.115 4.666H12.31c-2.211 0-3.504-2.093-2.891-4.666l11.12-46.668C21.152 66.09 23.44 64 25.653 64z\"/></g></svg>"
        },
        "$:/core/images/full-screen-button": {
            "title": "$:/core/images/full-screen-button",
            "tags": "$:/tags/Image",
            "text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-full-screen-button tc-image-button\" viewBox=\"0 0 128 128\"><path d=\"M0 8a8 8 0 018-8h32a8 8 0 110 16H16v24a8 8 0 11-16 0V8zM128 120a8 8 0 01-8 8H88a8 8 0 110-16h24V88a8 8 0 1116 0v32zM8 128a8 8 0 01-8-8V88a8 8 0 1116 0v24h24a8 8 0 110 16H8zM120 0a8 8 0 018 8v32a8 8 0 11-16 0V16H88a8 8 0 110-16h32z\"/></svg>"
        },
        "$:/core/images/github": {
            "title": "$:/core/images/github",
            "tags": "$:/tags/Image",
            "text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-github tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M63.938 1.607c-35.336 0-63.994 28.69-63.994 64.084 0 28.312 18.336 52.329 43.768 60.802 3.202.59 4.37-1.388 4.37-3.088 0-1.518-.056-5.55-.087-10.897-17.802 3.871-21.558-8.591-21.558-8.591-2.911-7.404-7.108-9.375-7.108-9.375-5.81-3.973.44-3.895.44-3.895 6.424.453 9.803 6.606 9.803 6.606 5.709 9.791 14.981 6.963 18.627 5.322.582-4.138 2.236-6.963 4.063-8.564-14.211-1.617-29.153-7.117-29.153-31.672 0-6.995 2.495-12.718 6.589-17.195-.66-1.621-2.856-8.14.629-16.96 0 0 5.37-1.722 17.597 6.57 5.104-1.424 10.58-2.132 16.022-2.16 5.438.028 10.91.736 16.022 2.16 12.22-8.292 17.582-6.57 17.582-6.57 3.493 8.82 1.297 15.339.64 16.96 4.102 4.477 6.578 10.2 6.578 17.195 0 24.618-14.966 30.035-29.22 31.62 2.295 1.98 4.342 5.89 4.342 11.87 0 8.564-.079 15.476-.079 17.576 0 1.715 1.155 3.71 4.4 3.084 25.413-8.493 43.733-32.494 43.733-60.798 0-35.394-28.657-64.084-64.006-64.084\"/></svg>"
        },
        "$:/core/images/gitter": {
            "title": "$:/core/images/gitter",
            "tags": "$:/tags/Image",
            "text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-gitter tc-image-button\" viewBox=\"0 0 18 25\"><path d=\"M15 5h2v10h-2zM10 5h2v20h-2zM5 5h2v20H5zM0 0h2v15H0z\"/></svg>"
        },
        "$:/core/images/globe": {
            "title": "$:/core/images/globe",
            "tags": "$:/tags/Image",
            "text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-globe tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><path d=\"M72.811 37.128v2.554c0 2.196.978 6.881 0 8.832-1.466 2.928-4.65 3.54-6.394 5.867-1.182 1.577-4.618 10.601-3.69 12.92 3.969 9.922 11.534 3.187 17.962 9.293.864.821 2.887 2.273 3.296 3.296 3.29 8.223-7.576 15.009 3.757 26.3 1.245 1.24 3.813-3.817 4.079-4.614.852-2.563 6.725-5.45 9.088-7.053 2.02-1.37 4.873-2.667 6.328-4.745 2.27-3.244 1.48-7.514 3.098-10.745 2.139-4.274 3.828-9.635 5.998-13.966 3.898-7.781 4.721 2.093 5.067 2.439.358.357 1.011 0 1.517 0 .094 0 1.447.099 1.516 0 .65-.935-1.043-17.92-1.318-19.297-1.404-7.01-6.944-15.781-11.865-20.5-6.274-6.015-7.09-16.197-18.259-14.954-.204.022-5.084 10.148-7.777 13.512-3.728 4.657-2.47-4.153-6.526-4.153-.081 0-1.183-.103-1.253 0-.586.88-1.44 3.896-2.306 4.417-.265.16-1.722-.239-1.846 0-2.243 4.3 8.256 2.212 5.792 7.952-2.352 5.481-6.328-1.997-6.328 8.56M44.467 7.01c9.685 6.13.682 12.198 2.694 16.215 1.655 3.303 4.241 5.395 1.714 9.814-2.063 3.608-6.87 3.966-9.623 6.723-3.04 3.044-5.464 8.94-6.79 12.911-1.617 4.843 14.547 6.866 12.063 11.008-1.386 2.311-6.746 1.466-8.437.198-1.165-.873-3.593-.546-4.417-1.78-2.613-3.915-2.26-8.023-3.625-12.128-.938-2.822-6.313-2.12-7.844-.593-.523.522-.33 1.792-.33 2.505 0 5.285 7.12 3.316 7.12 6.46 0 14.636 3.927 6.534 11.14 11.336 10.036 6.683 7.844 7.303 14.946 14.404 3.673 3.673 7.741 3.686 9.425 9.294 1.602 5.331-9.327 5.339-11.716 7.448-1.123.991-2.813 4.146-4.219 4.615-1.792.598-3.234.496-4.944 1.78-2.427 1.82-3.9 4.932-4.02 4.81-2.148-2.147-3.52-15.479-3.89-18.257-.588-4.42-5.59-5.54-6.986-9.03-1.57-3.927 1.524-9.52-1.129-13.761-6.52-10.424-11.821-14.5-15.35-26.292-.942-3.148 3.342-6.529 4.877-8.833 1.877-2.816 2.662-5.854 4.746-8.635C22.147 24.19 40.855 9.461 43.857 8.635l.61-1.625z\"/><path d=\"M64 126c34.242 0 62-27.758 62-62 0-34.242-27.758-62-62-62C29.758 2 2 29.758 2 64c0 34.242 27.758 62 62 62zm0-6c30.928 0 56-25.072 56-56S94.928 8 64 8 8 33.072 8 64s25.072 56 56 56z\"/></g></svg>"
        },
        "$:/core/images/heading-1": {
            "title": "$:/core/images/heading-1",
            "tags": "$:/tags/Image",
            "text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-heading-1 tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M14 30h13.25v30.104H61.7V30h13.25v75.684H61.7V71.552H27.25v34.132H14V30zm70.335 13.78c2.544 0 5.017-.212 7.42-.636 2.403-.424 4.576-1.13 6.52-2.12 1.942-.99 3.603-2.261 4.981-3.816 1.378-1.555 2.28-3.463 2.703-5.724h9.858v74.2h-13.25V53.32H84.335v-9.54z\"/></svg>"
        },
        "$:/core/images/heading-2": {
            "title": "$:/core/images/heading-2",
            "tags": "$:/tags/Image",
            "text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-heading-2 tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M6 30h13.25v30.104H53.7V30h13.25v75.684H53.7V71.552H19.25v34.132H6V30zm119.52 75.684H74.85c.07-6.148 1.555-11.519 4.452-16.112 2.897-4.593 6.855-8.586 11.872-11.978a133.725 133.725 0 017.526-5.141 59.6 59.6 0 007.208-5.353c2.19-1.908 3.993-3.975 5.406-6.201 1.413-2.226 2.155-4.788 2.226-7.685 0-1.343-.159-2.774-.477-4.293a11.357 11.357 0 00-1.855-4.24c-.919-1.307-2.19-2.403-3.816-3.286-1.625-.883-3.745-1.325-6.36-1.325-2.403 0-4.399.477-5.989 1.431-1.59.954-2.862 2.261-3.816 3.922-.954 1.66-1.66 3.622-2.12 5.883-.46 2.261-.724 4.7-.795 7.314H76.23c0-4.099.548-7.897 1.643-11.395 1.095-3.498 2.738-6.519 4.93-9.063 2.19-2.544 4.857-4.54 8.002-5.989C93.95 30.724 97.606 30 101.775 30c4.523 0 8.303.742 11.342 2.226 3.039 1.484 5.494 3.357 7.367 5.618 1.873 2.261 3.198 4.717 3.975 7.367.777 2.65 1.166 5.176 1.166 7.579 0 2.968-.46 5.653-1.378 8.056a25.942 25.942 0 01-3.71 6.625 37.5 37.5 0 01-5.3 5.565 79.468 79.468 0 01-6.148 4.77 165.627 165.627 0 01-6.36 4.24 94.28 94.28 0 00-5.883 4.028c-1.802 1.343-3.374 2.738-4.717 4.187-1.343 1.449-2.261 2.986-2.756 4.611h36.146v10.812z\"/></svg>"
        },
        "$:/core/images/heading-3": {
            "title": "$:/core/images/heading-3",
            "tags": "$:/tags/Image",
            "text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-heading-3 tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M6 30h13.25v30.104H53.7V30h13.25v75.684H53.7V71.552H19.25v34.132H6V30zm88.885 32.224c1.979.07 3.957-.07 5.936-.424 1.979-.353 3.745-.972 5.3-1.855a10.365 10.365 0 003.763-3.657c.954-1.555 1.431-3.463 1.431-5.724 0-3.18-1.078-5.724-3.233-7.632-2.155-1.908-4.929-2.862-8.32-2.862-2.12 0-3.958.424-5.513 1.272a11.318 11.318 0 00-3.869 3.445c-1.025 1.449-1.784 3.074-2.279 4.876a18.335 18.335 0 00-.636 5.565H75.381c.141-3.604.813-6.943 2.014-10.017 1.201-3.074 2.844-5.742 4.93-8.003 2.084-2.261 4.61-4.028 7.578-5.3C92.871 30.636 96.228 30 99.973 30a29.2 29.2 0 018.533 1.272c2.791.848 5.3 2.085 7.526 3.71s4.01 3.692 5.353 6.201c1.343 2.509 2.014 5.388 2.014 8.639 0 3.745-.848 7.014-2.544 9.805-1.696 2.791-4.346 4.823-7.95 6.095v.212c4.24.848 7.544 2.95 9.911 6.307s3.551 7.438 3.551 12.243c0 3.533-.707 6.696-2.12 9.487a21.538 21.538 0 01-5.724 7.102c-2.403 1.943-5.194 3.445-8.374 4.505-3.18 1.06-6.537 1.59-10.07 1.59-4.31 0-8.074-.618-11.289-1.855s-5.9-2.986-8.056-5.247c-2.155-2.261-3.798-4.982-4.929-8.162-1.13-3.18-1.731-6.713-1.802-10.6h12.084c-.141 4.523.972 8.286 3.34 11.289 2.366 3.003 5.917 4.505 10.652 4.505 4.028 0 7.402-1.148 10.123-3.445 2.72-2.297 4.081-5.565 4.081-9.805 0-2.897-.565-5.194-1.696-6.89a10.97 10.97 0 00-4.452-3.869c-1.837-.883-3.904-1.431-6.2-1.643a58.067 58.067 0 00-7.05-.212v-9.01z\"/></svg>"
        },
        "$:/core/images/heading-4": {
            "title": "$:/core/images/heading-4",
            "tags": "$:/tags/Image",
            "text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-heading-4 tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M8 30h13.25v30.104H55.7V30h13.25v75.684H55.7V71.552H21.25v34.132H8V30zm76.59 48.548h22.471V45.9h-.212L84.59 78.548zm43.46 9.54h-9.54v17.596H107.06V88.088h-31.8V76.11l31.8-44.626h11.448v47.064h9.54v9.54z\"/></svg>"
        },
        "$:/core/images/heading-5": {
            "title": "$:/core/images/heading-5",
            "tags": "$:/tags/Image",
            "text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-heading-5 tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M6 30h13.25v30.104H53.7V30h13.25v75.684H53.7V71.552H19.25v34.132H6V30zm77.755 1.484h38.372v10.812H92.765L88.95 61.164l.212.212c1.625-1.837 3.692-3.233 6.201-4.187 2.509-.954 5-1.431 7.473-1.431 3.675 0 6.96.618 9.858 1.855 2.897 1.237 5.335 2.968 7.314 5.194s3.48 4.858 4.505 7.897c1.025 3.039 1.537 6.325 1.537 9.858 0 2.968-.477 6.024-1.43 9.169a25.161 25.161 0 01-4.559 8.586c-2.085 2.58-4.752 4.7-8.003 6.36-3.25 1.66-7.137 2.491-11.66 2.491-3.604 0-6.943-.477-10.017-1.431-3.074-.954-5.777-2.385-8.109-4.293-2.332-1.908-4.187-4.258-5.565-7.049-1.378-2.791-2.138-6.06-2.279-9.805h12.084c.353 4.028 1.731 7.12 4.134 9.275 2.403 2.155 5.583 3.233 9.54 3.233 2.544 0 4.7-.424 6.466-1.272 1.767-.848 3.198-2.014 4.293-3.498 1.095-1.484 1.873-3.215 2.332-5.194.46-1.979.69-4.099.69-6.36 0-2.05-.284-4.01-.849-5.883-.565-1.873-1.413-3.516-2.544-4.929-1.13-1.413-2.597-2.544-4.399-3.392-1.802-.848-3.904-1.272-6.307-1.272-2.544 0-4.929.477-7.155 1.431-2.226.954-3.834 2.738-4.823 5.353H75.805l7.95-40.598z\"/></svg>"
        },
        "$:/core/images/heading-6": {
            "title": "$:/core/images/heading-6",
            "tags": "$:/tags/Image",
            "text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-heading-6 tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M6 30h13.25v30.104H53.7V30h13.25v75.684H53.7V71.552H19.25v34.132H6V30zm106.587 20.246c-.283-3.039-1.36-5.494-3.233-7.367-1.873-1.873-4.399-2.809-7.579-2.809-2.19 0-4.08.406-5.67 1.219a12.435 12.435 0 00-4.029 3.233c-1.095 1.343-1.979 2.88-2.65 4.611a37.696 37.696 0 00-1.643 5.459 46.08 46.08 0 00-.9 5.671 722.213 722.213 0 00-.478 5.247l.212.212c1.625-2.968 3.87-5.176 6.731-6.625 2.862-1.449 5.954-2.173 9.275-2.173 3.675 0 6.96.636 9.858 1.908 2.897 1.272 5.353 3.021 7.367 5.247 2.014 2.226 3.551 4.858 4.611 7.897 1.06 3.039 1.59 6.325 1.59 9.858 0 3.604-.583 6.943-1.749 10.017-1.166 3.074-2.844 5.76-5.035 8.056-2.19 2.297-4.805 4.081-7.844 5.353-3.039 1.272-6.395 1.908-10.07 1.908-5.441 0-9.91-1.007-13.409-3.021-3.498-2.014-6.254-4.77-8.268-8.268-2.014-3.498-3.41-7.597-4.187-12.296-.777-4.7-1.166-9.77-1.166-15.211 0-4.452.477-8.94 1.431-13.462.954-4.523 2.526-8.639 4.717-12.349 2.19-3.71 5.07-6.731 8.64-9.063C92.676 31.166 97.075 30 102.304 30c2.968 0 5.76.495 8.374 1.484 2.615.99 4.93 2.367 6.943 4.134 2.014 1.767 3.657 3.887 4.93 6.36 1.271 2.473 1.978 5.23 2.12 8.268h-12.085zm-11.66 46.852c2.19 0 4.099-.442 5.724-1.325a12.869 12.869 0 004.081-3.445c1.095-1.413 1.908-3.056 2.438-4.929.53-1.873.795-3.798.795-5.777s-.265-3.887-.795-5.724c-.53-1.837-1.343-3.445-2.438-4.823-1.095-1.378-2.456-2.491-4.08-3.339-1.626-.848-3.534-1.272-5.725-1.272-2.19 0-4.116.406-5.777 1.219-1.66.813-3.056 1.908-4.187 3.286-1.13 1.378-1.979 2.986-2.544 4.823-.565 1.837-.848 3.78-.848 5.83 0 2.05.283 3.993.848 5.83.565 1.837 1.413 3.48 2.544 4.929a12.39 12.39 0 004.187 3.445c1.66.848 3.586 1.272 5.777 1.272z\"/></svg>"
        },
        "$:/core/images/help": {
            "title": "$:/core/images/help",
            "tags": "$:/tags/Image",
            "text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-help tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M36.055 111.441c-5.24 4.396-15.168 7.362-26.555 7.362-1.635 0-3.24-.06-4.806-.179 7.919-2.64 14.062-8.6 16.367-16.014C8.747 92.845 1.05 78.936 1.05 63.5c0-29.547 28.206-53.5 63-53.5s63 23.953 63 53.5-28.206 53.5-63 53.5c-10.055 0-19.56-2-27.994-5.559zm35.35-33.843a536.471 536.471 0 00.018-4.682 199.02 199.02 0 00-.023-3.042c.008-1.357.595-2.087 3.727-4.235.112-.077 1.085-.74 1.386-.948 3.093-2.133 5.022-3.786 6.762-6.187 2.34-3.228 3.558-7.077 3.558-11.649 0-13.292-9.86-21.952-21.455-21.952-11.103 0-22.499 9.609-24.066 22.295a6.023 6.023 0 1011.956 1.477c.806-6.527 6.972-11.726 12.11-11.726 5.265 0 9.408 3.64 9.408 9.906 0 3.634-1.1 5.153-5.111 7.919l-1.362.93c-2.682 1.84-4.227 3.1-5.7 4.931-2.109 2.62-3.242 5.717-3.258 9.314.013.892.02 1.86.022 2.981a470.766 470.766 0 01-.022 4.943 6.023 6.023 0 1012.046.12l.003-.395zm-6.027 24.499a7.529 7.529 0 100-15.058 7.529 7.529 0 000 15.058z\"/></svg>"
        },
        "$:/core/images/home-button": {
            "title": "$:/core/images/home-button",
            "tags": "$:/tags/Image",
            "text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-home-button tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M112.985 119.502c.01-.165.015-.331.015-.499V67.568c3.137 2.948 8.076 2.884 11.134-.174a7.999 7.999 0 00-.002-11.316L70.396 2.343A7.978 7.978 0 0064.734 0a7.957 7.957 0 00-5.656 2.343L33 28.42V8.007C33 3.585 29.41 0 25 0c-4.418 0-8 3.59-8 8.007V44.42L5.342 56.078c-3.125 3.125-3.12 8.198-.002 11.316a7.999 7.999 0 0011.316-.003l.344-.343v52.945a8.11 8.11 0 000 .007c0 4.418 3.588 8 8 8h80c4.419 0 8-3.59 8-8a8.11 8.11 0 00-.015-.498zM97 112V51.574L64.737 19.31 33 51.048V112h64z\"/></svg>"
        },
        "$:/core/images/import-button": {
            "title": "$:/core/images/import-button",
            "tags": "$:/tags/Image",
            "text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-import-button tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M114.832 60.436s3.235-3.27 6.921.417c3.686 3.686.231 7.14.231 7.14l-42.153 42.92s-30.765 32.367-58.798 4.333C-7 87.213 24.59 55.623 24.59 55.623L67.363 12.85s22.725-24.6 43.587-3.738c20.862 20.862-3.96 43.09-3.96 43.09l-35.04 35.04S49.903 112.546 36.426 99.07c-13.476-13.477 11.83-35.523 11.83-35.523l35.04-35.04s3.902-3.902 7.78-.023c3.879 3.878.118 7.921.118 7.921l-35.04 35.04s-13.212 13.212-8.872 17.551c4.34 4.34 16.77-9.653 16.77-9.653l35.04-35.04s16.668-14.598 3.966-27.3c-13.893-13.892-27.565 3.702-27.565 3.702l-42.91 42.91s-23.698 23.698-3.658 43.738 43.012-4.385 43.012-4.385l42.895-42.533z\"/></svg>"
        },
        "$:/core/images/info-button": {
            "title": "$:/core/images/info-button",
            "tags": "$:/tags/Image",
            "text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-info-button tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\" transform=\"translate(.05)\"><path d=\"M64 128c35.346 0 64-28.654 64-64 0-35.346-28.654-64-64-64C28.654 0 0 28.654 0 64c0 35.346 28.654 64 64 64zm0-16c26.51 0 48-21.49 48-48S90.51 16 64 16 16 37.49 16 64s21.49 48 48 48z\"/><circle cx=\"64\" cy=\"32\" r=\"8\"/><rect width=\"16\" height=\"56\" x=\"56\" y=\"48\" rx=\"8\"/></g></svg>"
        },
        "$:/core/images/italic": {
            "title": "$:/core/images/italic",
            "tags": "$:/tags/Image",
            "text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-italic tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M66.711 0h22.41L62.408 128H40z\"/></svg>"
        },
        "$:/core/images/left-arrow": {
            "title": "$:/core/images/left-arrow",
            "created": "20150315234410875",
            "modified": "20150315235324760",
            "tags": "$:/tags/Image",
            "text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-left-arrow tc-image-button\" viewBox=\"0 0 128 128\"><path d=\"M0 64.177c0-2.026.771-4.054 2.317-5.6l55.98-55.98a7.92 7.92 0 0111.195.001c3.086 3.085 3.092 8.104.001 11.195L19.111 64.175l50.382 50.382a7.92 7.92 0 010 11.195c-3.086 3.086-8.105 3.092-11.196.001l-55.98-55.98A7.892 7.892 0 010 64.177z\"/></svg>"
        },
        "$:/core/images/line-width": {
            "title": "$:/core/images/line-width",
            "tags": "$:/tags/Image",
            "text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-line-width tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M16 18h96a2 2 0 000-4H16a2 2 0 100 4zm0 17h96a4 4 0 100-8H16a4 4 0 100 8zm0 21h96a6 6 0 000-12H16a6 6 0 100 12zm0 29h96c5.523 0 10-4.477 10-10s-4.477-10-10-10H16c-5.523 0-10 4.477-10 10s4.477 10 10 10zm0 43h96c8.837 0 16-7.163 16-16s-7.163-16-16-16H16c-8.837 0-16 7.163-16 16s7.163 16 16 16z\"/></svg>"
        },
        "$:/core/images/link": {
            "title": "$:/core/images/link",
            "tags": "$:/tags/Image",
            "text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-link tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><path d=\"M42.263 69.38a31.919 31.919 0 006.841 10.13c12.5 12.5 32.758 12.496 45.255 0l22.627-22.628c12.502-12.501 12.497-32.758 0-45.255-12.5-12.5-32.758-12.496-45.254 0L49.104 34.255a32.333 32.333 0 00-2.666 3.019 36.156 36.156 0 0121.94.334l14.663-14.663c6.25-6.25 16.382-6.254 22.632-.004 6.248 6.249 6.254 16.373-.004 22.631l-22.62 22.62c-6.25 6.25-16.381 6.254-22.631.004a15.93 15.93 0 01-4.428-8.433 11.948 11.948 0 00-7.59 3.48l-6.137 6.137z\"/><path d=\"M86.35 59.234a31.919 31.919 0 00-6.84-10.13c-12.5-12.5-32.758-12.497-45.255 0L11.627 71.732c-12.501 12.5-12.496 32.758 0 45.254 12.5 12.5 32.758 12.497 45.255 0L79.51 94.36a32.333 32.333 0 002.665-3.02 36.156 36.156 0 01-21.94-.333l-14.663 14.663c-6.25 6.25-16.381 6.253-22.63.004-6.25-6.249-6.255-16.374.003-22.632l22.62-22.62c6.25-6.25 16.381-6.253 22.631-.003a15.93 15.93 0 014.428 8.432 11.948 11.948 0 007.59-3.48l6.137-6.136z\"/></g></svg>"
        },
        "$:/core/images/linkify": {
            "title": "$:/core/images/linkify",
            "tags": "$:/tags/Image",
            "text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-linkify-button tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M17.031 31.919H9.048V96.85h7.983v6.92H0V25h17.031v6.919zm24.66 0h-7.983V96.85h7.983v6.92H24.66V25h17.03v6.919zM67.77 56.422l11.975-3.903 2.306 7.096-12.063 3.903 7.628 10.379-6.12 4.435-7.63-10.467-7.45 10.2-5.943-4.523L58.1 63.518 45.95 59.35l2.306-7.096 12.064 4.17V43.825h7.45v12.596zM86.31 96.85h7.982V31.92H86.31V25h17.031v78.77H86.31v-6.92zm24.659 0h7.983V31.92h-7.983V25H128v78.77h-17.031v-6.92z\"/></svg>"
        },
        "$:/core/images/list-bullet": {
            "title": "$:/core/images/list-bullet",
            "tags": "$:/tags/Image",
            "text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-list-bullet tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M11.636 40.273c6.427 0 11.637-5.21 11.637-11.637C23.273 22.21 18.063 17 11.636 17 5.21 17 0 22.21 0 28.636c0 6.427 5.21 11.637 11.636 11.637zm0 34.909c6.427 0 11.637-5.21 11.637-11.637 0-6.426-5.21-11.636-11.637-11.636C5.21 51.91 0 57.12 0 63.545c0 6.427 5.21 11.637 11.636 11.637zm0 34.909c6.427 0 11.637-5.21 11.637-11.636 0-6.427-5.21-11.637-11.637-11.637C5.21 86.818 0 92.028 0 98.455c0 6.426 5.21 11.636 11.636 11.636zM34.91 22.818H128v11.637H34.91V22.818zm0 34.91H128v11.636H34.91V57.727zm0 34.908H128v11.637H34.91V92.636z\"/></svg>"
        },
        "$:/core/images/list-number": {
            "title": "$:/core/images/list-number",
            "tags": "$:/tags/Image",
            "text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-list-number tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M33.84 22.356H128v11.77H33.84v-11.77zm0 35.31H128v11.77H33.84v-11.77zm0 35.311H128v11.77H33.84v-11.77zM.38 42.631v-2.223h.998c.826 0 1.445-.14 1.858-.42.413-.28.619-.948.619-2.002V22.769c0-1.442-.193-2.336-.58-2.683-.385-.347-1.477-.52-3.275-.52v-2.143c3.502-.147 6.252-.955 8.25-2.423h2.117v22.865c0 .921.15 1.575.449 1.963.3.387.949.58 1.948.58h.998v2.223H.38zm-.3 35.356v-1.902c7.19-6.554 10.786-12.58 10.786-18.08 0-1.562-.326-2.81-.979-3.744-.652-.934-1.524-1.402-2.616-1.402-.893 0-1.655.317-2.287.952-.633.634-.95 1.364-.95 2.192 0 .974.247 1.829.74 2.563.106.16.16.28.16.36 0 .147-.16.28-.48.4-.213.08-.752.308-1.618.681-.839.374-1.358.561-1.558.561-.24 0-.512-.37-.819-1.111A6.2 6.2 0 010 57.064c0-1.949.849-3.544 2.547-4.785 1.698-1.242 3.798-1.862 6.302-1.862 2.463 0 4.53.67 6.202 2.012 1.67 1.341 2.506 3.093 2.506 5.256a8.644 8.644 0 01-.849 3.724c-.566 1.201-1.92 3.053-4.064 5.556a165.471 165.471 0 01-6.272 6.938h11.445l-1.019 5.726h-2.117c.08-.28.12-.534.12-.76 0-.388-.1-.631-.3-.731-.2-.1-.599-.15-1.198-.15H.08zm12.124 19.207c1.745.04 3.236.637 4.474 1.792 1.239 1.154 1.858 2.773 1.858 4.855 0 2.99-1.132 5.393-3.396 7.208-2.263 1.815-5 2.723-8.209 2.723-2.01 0-3.669-.384-4.974-1.151C.652 111.853 0 110.849 0 109.607c0-.774.27-1.398.809-1.872.54-.474 1.128-.71 1.768-.71.639 0 1.162.2 1.568.6.406.4.782 1.055 1.128 1.962.466 1.268 1.239 1.902 2.317 1.902 1.265 0 2.287-.477 3.066-1.431.78-.955 1.169-2.686 1.169-5.196 0-1.709-.12-3.023-.36-3.944-.24-.921-.792-1.382-1.658-1.382-.586 0-1.185.307-1.797.921-.493.494-.932.741-1.319.741-.333 0-.602-.147-.809-.44-.206-.294-.31-.574-.31-.841 0-.32.104-.594.31-.821.207-.227.69-.594 1.449-1.102 2.876-1.922 4.314-4.017 4.314-6.287 0-1.188-.306-2.092-.919-2.713a3.001 3.001 0 00-2.217-.93c-.799 0-1.525.263-2.177.79-.653.528-.979 1.158-.979 1.892 0 .641.253 1.235.76 1.782.172.2.259.367.259.5 0 .121-.57.428-1.708.922-1.139.494-1.854.74-2.147.74-.413 0-.75-.333-1.009-1-.26-.668-.39-1.282-.39-1.842 0-1.749.93-3.224 2.787-4.425 1.858-1.202 3.965-1.802 6.322-1.802 2.064 0 3.851.447 5.363 1.341 1.511.895 2.267 2.116 2.267 3.664 0 1.362-.57 2.623-1.708 3.784a13.387 13.387 0 01-3.945 2.784z\"/></svg>"
        },
        "$:/core/images/list": {
            "title": "$:/core/images/list",
            "tags": "$:/tags/Image",
            "text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-list tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M87.748 128H23.999c-4.418 0-7.999-3.59-7.999-8.007V8.007C16 3.585 19.588 0 24 0h80c4.419 0 8 3.59 8 8.007V104H91.25c-.965 0-1.84.392-2.473 1.025a3.476 3.476 0 00-1.029 2.476V128zm8-.12l15.88-15.88h-15.88v15.88zM40 15.508A3.502 3.502 0 0143.5 12h55c1.933 0 3.5 1.561 3.5 3.509v.982A3.502 3.502 0 0198.5 20h-55a3.498 3.498 0 01-3.5-3.509v-.982zM32 22a6 6 0 100-12 6 6 0 000 12zm8 9.509A3.502 3.502 0 0143.5 28h55c1.933 0 3.5 1.561 3.5 3.509v.982A3.502 3.502 0 0198.5 36h-55a3.498 3.498 0 01-3.5-3.509v-.982zm0 16A3.502 3.502 0 0143.5 44h55c1.933 0 3.5 1.561 3.5 3.509v.982A3.502 3.502 0 0198.5 52h-55a3.498 3.498 0 01-3.5-3.509v-.982zm0 16A3.502 3.502 0 0143.5 60h55c1.933 0 3.5 1.561 3.5 3.509v.982A3.502 3.502 0 0198.5 68h-55a3.498 3.498 0 01-3.5-3.509v-.982zm0 16A3.502 3.502 0 0143.5 76h55c1.933 0 3.5 1.561 3.5 3.509v.982A3.502 3.502 0 0198.5 84h-55a3.498 3.498 0 01-3.5-3.509v-.982zm0 16A3.502 3.502 0 0143.5 92h55c1.933 0 3.5 1.561 3.5 3.509v.982A3.502 3.502 0 0198.5 100h-55a3.498 3.498 0 01-3.5-3.509v-.982zm0 16A3.505 3.505 0 0143.497 108h33.006A3.497 3.497 0 0180 111.509v.982A3.505 3.505 0 0176.503 116H43.497A3.497 3.497 0 0140 112.491v-.982zM32 38a6 6 0 100-12 6 6 0 000 12zm0 16a6 6 0 100-12 6 6 0 000 12zm0 16a6 6 0 100-12 6 6 0 000 12zm0 16a6 6 0 100-12 6 6 0 000 12zm0 16a6 6 0 100-12 6 6 0 000 12zm0 16a6 6 0 100-12 6 6 0 000 12z\"/></svg>"
        },
        "$:/core/images/locked-padlock": {
            "title": "$:/core/images/locked-padlock",
            "tags": "$:/tags/Image",
            "text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-locked-padlock tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M96.472 64H105v32.01C105 113.674 90.674 128 73.001 128H56C38.318 128 24 113.677 24 96.01V64h8c.003-15.723.303-47.731 32.16-47.731 31.794 0 32.305 32.057 32.312 47.731zm-15.897 0H48.44c.002-16.287.142-32 15.719-32 15.684 0 16.977 16.136 16.415 32zM67.732 92.364A8.503 8.503 0 0064.5 76a8.5 8.5 0 00-3.498 16.25l-5.095 22.77H72.8l-5.07-22.656z\"/></svg>"
        },
        "$:/core/images/mail": {
            "title": "$:/core/images/mail",
            "tags": "$:/tags/Image",
            "text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-mail tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M122.827 104.894a7.986 7.986 0 01-2.834.516H8.007c-.812 0-1.597-.12-2.335-.345l34.163-34.163 20.842 20.842a3.998 3.998 0 003.418 1.134 4.003 4.003 0 003.395-1.134L88.594 70.64c.075.09.155.176.24.26l33.993 33.994zm5.076-6.237c.064-.406.097-.823.097-1.247v-64c0-.669-.082-1.318-.237-1.94L94.23 65.006c.09.075.177.154.261.239l33.413 33.413zm-127.698.56A8.023 8.023 0 010 97.41v-64c0-.716.094-1.41.271-2.071l33.907 33.906L.205 99.218zM5.93 25.684a8.012 8.012 0 012.078-.273h111.986c.766 0 1.507.108 2.209.308L64.083 83.837 5.93 25.683z\"/></svg>"
        },
        "$:/core/images/menu-button": {
            "title": "$:/core/images/menu-button",
            "tags": "$:/tags/Image",
            "text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-menu-button tc-image-button\" viewBox=\"0 0 128 128\"><rect width=\"128\" height=\"16\" y=\"16\" rx=\"8\"/><rect width=\"128\" height=\"16\" y=\"56\" rx=\"8\"/><rect width=\"128\" height=\"16\" y=\"96\" rx=\"8\"/></svg>"
        },
        "$:/core/images/mono-block": {
            "title": "$:/core/images/mono-block",
            "tags": "$:/tags/Image",
            "text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-mono-block tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M23.965 32.967h.357c.755 0 1.328.192 1.72.577.39.384.586.947.586 1.688 0 .824-.206 1.418-.618 1.782-.413.363-1.094.545-2.045.545h-6.31c-.965 0-1.65-.178-2.056-.535-.405-.356-.608-.954-.608-1.792 0-.811.203-1.391.608-1.74.406-.35 1.09-.525 2.055-.525h.734l-.86-2.453H8.471l-.902 2.453h.734c.95 0 1.632.178 2.044.535.413.356.619.933.619 1.73 0 .824-.206 1.418-.619 1.782-.412.363-1.094.545-2.044.545h-5.41c-.964 0-1.649-.182-2.054-.545-.406-.364-.608-.958-.608-1.782 0-.741.195-1.304.587-1.688.391-.385.964-.577 1.719-.577h.356l5.62-15.641H6.835c-.95 0-1.632-.182-2.044-.546-.412-.363-.619-.95-.619-1.76 0-.825.207-1.42.619-1.783.412-.363 1.094-.545 2.044-.545h7.863c1.244 0 2.118.67 2.62 2.013v.063l6.647 18.2zM12.98 17.326l-3.04 8.848h6.08l-3.04-8.848zm22.402 9.372v6.395h3.145c2.223 0 3.788-.245 4.697-.734.908-.49 1.362-1.307 1.362-2.453 0-1.16-.433-1.985-1.3-2.474-.866-.49-2.383-.734-4.55-.734h-3.354zm10.693-2.327c1.524.559 2.642 1.324 3.355 2.295.713.972 1.07 2.212 1.07 3.722 0 1.272-.308 2.432-.923 3.48-.615 1.049-1.496 1.909-2.642 2.58a7.499 7.499 0 01-2.254.849c-.832.174-2.01.262-3.533.262H30.202c-.922 0-1.583-.182-1.981-.545-.399-.364-.598-.958-.598-1.782 0-.741.189-1.304.566-1.688.378-.385.93-.577 1.657-.577h.356V17.326h-.356c-.727 0-1.28-.196-1.657-.587-.377-.392-.566-.965-.566-1.72 0-.81.203-1.401.608-1.771.406-.37 1.062-.556 1.971-.556h9.645c2.95 0 5.19.573 6.72 1.72 1.53 1.145 2.296 2.823 2.296 5.031 0 1.09-.234 2.052-.703 2.883-.468.832-1.163 1.513-2.086 2.045zM35.381 17.2v5.284h2.83c1.72 0 2.932-.203 3.638-.609.706-.405 1.06-1.09 1.06-2.054 0-.909-.319-1.573-.955-1.992-.636-.42-1.667-.63-3.093-.63h-3.48zm35.863-3.816c.28-.503.566-.86.86-1.07.293-.21.664-.314 1.111-.314.685 0 1.17.182 1.457.545.287.364.43.986.43 1.866l.042 5.452c0 .964-.157 1.614-.472 1.95-.314.335-.884.503-1.709.503-.587 0-1.037-.14-1.352-.42-.314-.28-.584-.796-.807-1.551-.364-1.328-.944-2.282-1.74-2.862-.797-.58-1.901-.87-3.313-.87-2.153 0-3.802.727-4.948 2.18-1.147 1.454-1.72 3.558-1.72 6.311 0 2.74.58 4.844 1.74 6.311 1.16 1.468 2.817 2.202 4.97 2.202 1.467 0 3.085-.49 4.854-1.468 1.768-.978 2.883-1.467 3.344-1.467.545 0 1.003.23 1.373.692.37.46.556 1.034.556 1.719 0 1.23-1.084 2.39-3.25 3.48-2.167 1.09-4.606 1.636-7.318 1.636-3.662 0-6.625-1.21-8.89-3.627-2.264-2.419-3.396-5.578-3.396-9.478 0-3.76 1.146-6.884 3.438-9.372 2.293-2.488 5.2-3.732 8.723-3.732.992 0 1.97.112 2.935.335.964.224 1.992.574 3.082 1.049zm10.22 19.583V17.326h-.356c-.755 0-1.328-.196-1.72-.587-.39-.392-.586-.965-.586-1.72 0-.81.21-1.401.629-1.771.42-.37 1.097-.556 2.034-.556h5.178c2.922 0 5.06.126 6.416.377 1.356.252 2.51.671 3.46 1.258 1.691 1.007 2.988 2.443 3.89 4.31.9 1.865 1.352 4.021 1.352 6.467 0 2.586-.514 4.847-1.541 6.783-1.028 1.936-2.485 3.4-4.372 4.393-.853.447-1.852.772-2.998.975-1.147.203-2.852.304-5.116.304h-6.269c-.965 0-1.65-.178-2.055-.535-.406-.356-.608-.954-.608-1.792 0-.741.195-1.304.587-1.688.391-.385.964-.577 1.72-.577h.356zm5.41-15.725v15.725h1.195c2.642 0 4.592-.646 5.85-1.94 1.258-1.292 1.887-3.28 1.887-5.965 0-2.641-.64-4.612-1.918-5.912-1.28-1.3-3.205-1.95-5.777-1.95-.335 0-.59.003-.765.01a7.992 7.992 0 00-.472.032zm35.067-.126h-9.75v5.368h3.69v-.252c0-.797.175-1.39.524-1.782.35-.392.88-.587 1.594-.587.629 0 1.142.178 1.54.534.4.357.598.808.598 1.353 0 .028.007.118.021.272.014.154.021.308.021.462v4.34c0 .936-.167 1.607-.503 2.013-.335.405-.88.608-1.635.608-.713 0-1.251-.19-1.615-.567-.363-.377-.545-.936-.545-1.677v-.377h-3.69v6.269h9.75v-2.495c0-.937.178-1.608.534-2.013.357-.405.94-.608 1.75-.608.798 0 1.367.2 1.71.597.342.399.513 1.073.513 2.024v5.074c0 .755-.146 1.258-.44 1.51-.293.251-.873.377-1.74.377h-17.172c-.923 0-1.583-.182-1.982-.545-.398-.364-.597-.958-.597-1.782 0-.741.189-1.304.566-1.688.377-.385.93-.577 1.656-.577h.357V17.326h-.357c-.712 0-1.261-.2-1.646-.598-.384-.398-.576-.968-.576-1.709 0-.81.203-1.401.608-1.771.405-.37 1.062-.556 1.97-.556h17.173c.853 0 1.43.13 1.73.388.3.258.45.772.45 1.54v4.698c0 .95-.174 1.631-.524 2.044-.35.412-.915.618-1.698.618-.81 0-1.394-.21-1.75-.629-.357-.419-.535-1.097-.535-2.033v-2.202zM19.77 47.641c.267-.504.55-.86.85-1.07.3-.21.675-.314 1.122-.314.685 0 1.17.181 1.457.545.287.363.43.985.43 1.866l.042 5.451c0 .965-.157 1.615-.472 1.95-.314.336-.891.504-1.73.504-.587 0-1.045-.144-1.373-.43-.329-.287-.598-.8-.807-1.541-.378-1.342-.958-2.3-1.74-2.873-.783-.573-1.88-.86-3.292-.86-2.153 0-3.799.727-4.938 2.181-1.14 1.454-1.709 3.557-1.709 6.311s.598 4.882 1.793 6.385C10.599 67.248 12.294 68 14.488 68c.503 0 1.077-.06 1.72-.179a23.809 23.809 0 002.264-.555v-3.313h-2.37c-.95 0-1.624-.175-2.023-.524-.398-.35-.597-.93-.597-1.74 0-.84.199-1.437.597-1.793.399-.357 1.073-.535 2.024-.535h7.569c.978 0 1.667.175 2.065.524.398.35.598.937.598 1.762 0 .74-.2 1.31-.598 1.708-.398.399-.975.598-1.73.598h-.335v5.242c0 .447-.05.758-.147.933-.098.174-.293.353-.587.534-.797.476-2.062.895-3.795 1.258a25.576 25.576 0 01-5.263.546c-3.662 0-6.625-1.21-8.89-3.628-2.264-2.418-3.397-5.577-3.397-9.477 0-3.76 1.147-6.884 3.44-9.372 2.292-2.488 5.199-3.732 8.721-3.732.979 0 1.954.112 2.925.335.972.224 2.003.573 3.093 1.049zm15.84 3.941v4.823h6.857v-4.823h-.336c-.754 0-1.331-.195-1.73-.587-.398-.391-.597-.964-.597-1.719 0-.825.206-1.419.619-1.782.412-.364 1.093-.545 2.044-.545h5.41c.95 0 1.624.181 2.023.545.398.363.597.957.597 1.782 0 .755-.192 1.328-.576 1.72-.385.39-.947.586-1.688.586h-.357v15.642h.357c.755 0 1.328.192 1.719.576.391.385.587.947.587 1.688 0 .825-.203 1.419-.608 1.782-.405.364-1.09.546-2.055.546h-5.41c-.964 0-1.649-.179-2.054-.535-.405-.357-.608-.954-.608-1.793 0-.74.2-1.303.598-1.688.398-.384.975-.576 1.73-.576h.335v-6.186h-6.856v6.186h.335c.755 0 1.331.192 1.73.576.398.385.597.947.597 1.688 0 .825-.206 1.419-.618 1.782-.412.364-1.094.546-2.044.546h-5.41c-.964 0-1.65-.179-2.055-.535-.405-.357-.608-.954-.608-1.793 0-.74.196-1.303.587-1.688.392-.384.965-.576 1.72-.576h.356V51.582h-.356c-.741 0-1.304-.195-1.688-.587-.385-.391-.577-.964-.577-1.719 0-.825.2-1.419.598-1.782.398-.364 1.073-.545 2.023-.545h5.41c.936 0 1.614.181 2.033.545.42.363.63.957.63 1.782 0 .755-.2 1.328-.598 1.72-.399.39-.975.586-1.73.586h-.335zm31.754 0v15.642h3.523c.95 0 1.632.178 2.044.534.412.357.618.933.618 1.73 0 .811-.21 1.402-.629 1.772-.419.37-1.097.556-2.033.556H58.433c-.95 0-1.632-.182-2.044-.546-.412-.363-.619-.957-.619-1.782 0-.81.203-1.39.608-1.74.406-.35 1.09-.524 2.055-.524h3.523V51.582h-3.523c-.95 0-1.632-.181-2.044-.545-.412-.363-.619-.95-.619-1.761 0-.825.203-1.412.608-1.761.406-.35 1.09-.524 2.055-.524h12.455c.992 0 1.684.174 2.075.524.392.35.587.936.587 1.761 0 .81-.202 1.398-.608 1.761-.405.364-1.09.545-2.054.545h-3.523zm30.496 0v11.994c0 1.873-.122 3.228-.367 4.067a5.876 5.876 0 01-1.227 2.244c-.74.852-1.768 1.495-3.082 1.929-1.314.433-2.893.65-4.738.65-1.3 0-2.555-.126-3.764-.378a16.843 16.843 0 01-3.491-1.132c-.615-.28-1.017-.643-1.206-1.09-.188-.448-.283-1.175-.283-2.18v-4.32c0-1.202.175-2.04.525-2.516.349-.475.957-.713 1.824-.713 1.244 0 1.929.915 2.054 2.747.014.321.035.566.063.733.168 1.622.545 2.73 1.133 3.324.587.594 1.523.89 2.81.89 1.593 0 2.714-.422 3.364-1.268.65-.845.975-2.386.975-4.623V51.582H88.93c-.95 0-1.632-.181-2.044-.545-.413-.363-.619-.95-.619-1.761 0-.825.2-1.412.598-1.761.398-.35 1.086-.524 2.065-.524h10.693c.979 0 1.667.174 2.065.524.399.35.598.936.598 1.761 0 .81-.206 1.398-.619 1.761-.412.364-1.093.545-2.044.545h-1.761zm14.644 0v6.353l6.48-6.478c-.728-.084-1.238-.29-1.531-.619-.294-.328-.44-.85-.44-1.562 0-.825.198-1.419.597-1.782.398-.364 1.073-.545 2.023-.545h5.137c.95 0 1.625.181 2.023.545.399.363.598.957.598 1.782 0 .769-.2 1.345-.598 1.73-.398.384-.982.576-1.75.576h-.483l-6.101 6.06c1.132.839 2.167 1.94 3.103 3.302.937 1.363 2.034 3.456 3.292 6.28h.692c.825 0 1.44.188 1.845.566.405.377.608.943.608 1.698 0 .825-.206 1.419-.619 1.782-.412.364-1.093.546-2.044.546h-2.579c-1.132 0-2.048-.762-2.746-2.286-.126-.28-.224-.503-.294-.67-.923-1.958-1.768-3.467-2.537-4.53a16.616 16.616 0 00-2.705-2.914l-1.97 1.887v3.92h.335c.755 0 1.331.193 1.73.577.398.385.597.947.597 1.688 0 .825-.206 1.419-.618 1.782-.413.364-1.094.546-2.045.546h-5.41c-.964 0-1.649-.179-2.054-.535-.405-.357-.608-.954-.608-1.793 0-.74.196-1.303.587-1.688.391-.384.965-.576 1.72-.576h.356V51.582h-.357c-.74 0-1.303-.195-1.687-.587-.385-.391-.577-.964-.577-1.719 0-.825.2-1.419.598-1.782.398-.364 1.072-.545 2.023-.545h5.41c.936 0 1.614.181 2.033.545.42.363.63.957.63 1.782 0 .755-.2 1.328-.598 1.72-.399.39-.975.586-1.73.586h-.336zM13.44 96.326l4.005-11.889c.251-.782.6-1.352 1.048-1.709.447-.356 1.041-.534 1.782-.534h3.271c.95 0 1.632.182 2.044.545.413.363.619.957.619 1.782 0 .755-.2 1.328-.598 1.72-.398.39-.975.587-1.73.587h-.335l.587 15.641h.357c.754 0 1.32.192 1.698.577.377.384.566.947.566 1.687 0 .825-.2 1.42-.598 1.783-.398.363-1.072.545-2.023.545h-4.718c-.95 0-1.624-.178-2.023-.535-.398-.356-.597-.954-.597-1.793 0-.74.192-1.303.576-1.687.385-.385.954-.577 1.709-.577h.335l-.293-12.79-3.061 9.52c-.224.712-.542 1.226-.954 1.54-.413.315-.982.472-1.709.472-.727 0-1.303-.157-1.73-.472-.426-.314-.751-.828-.975-1.54l-3.04-9.52-.294 12.79h.336c.755 0 1.324.192 1.709.577.384.384.576.947.576 1.687 0 .825-.202 1.42-.608 1.783-.405.363-1.076.545-2.013.545H2.621c-.937 0-1.608-.182-2.013-.545-.405-.364-.608-.958-.608-1.783 0-.74.192-1.303.577-1.687.384-.385.954-.577 1.708-.577h.336l.608-15.641h-.336c-.754 0-1.331-.196-1.73-.588-.398-.39-.597-.964-.597-1.719 0-.825.206-1.419.619-1.782.412-.363 1.093-.545 2.044-.545h3.27c.728 0 1.311.175 1.752.524.44.35.8.923 1.08 1.72l4.109 11.888zm30.454 2.054V86.828H42.74c-.922 0-1.583-.182-1.981-.546-.398-.363-.598-.95-.598-1.76 0-.812.2-1.402.598-1.773.398-.37 1.059-.555 1.981-.555h5.955c.909 0 1.566.185 1.97.555.406.37.609.961.609 1.772 0 .741-.192 1.31-.577 1.709-.384.398-.933.598-1.646.598h-.356v19.038c0 .657-.07 1.069-.21 1.237-.14.167-.454.251-.943.251h-2.097c-.67 0-1.143-.07-1.415-.21-.273-.14-.507-.384-.703-.733l-8.722-15.327v11.385h1.216c.909 0 1.559.175 1.95.524.392.35.587.93.587 1.74 0 .825-.199 1.42-.597 1.783-.399.363-1.045.545-1.94.545h-6.017c-.909 0-1.566-.182-1.971-.545-.406-.364-.608-.958-.608-1.783 0-.74.188-1.303.566-1.687.377-.385.936-.577 1.677-.577h.336V86.828h-.336c-.713 0-1.265-.2-1.656-.598-.392-.398-.587-.968-.587-1.709 0-.81.206-1.401.618-1.772.413-.37 1.066-.555 1.96-.555h3.44c.824 0 1.383.108 1.677.325.293.216.622.653.985 1.31l7.989 14.551zM64.66 86.366c-1.803 0-3.218.727-4.245 2.18-1.028 1.455-1.541 3.474-1.541 6.06 0 2.586.517 4.613 1.551 6.08 1.034 1.468 2.446 2.202 4.235 2.202 1.804 0 3.222-.73 4.257-2.19 1.034-1.461 1.551-3.492 1.551-6.092 0-2.586-.513-4.605-1.54-6.06-1.028-1.453-2.45-2.18-4.268-2.18zm0-4.864c3.44 0 6.27 1.23 8.492 3.69 2.223 2.46 3.334 5.598 3.334 9.414 0 3.844-1.104 6.99-3.313 9.436-2.208 2.446-5.046 3.669-8.513 3.669-3.424 0-6.255-1.234-8.491-3.701-2.237-2.467-3.355-5.602-3.355-9.404 0-3.83 1.108-6.971 3.323-9.424 2.216-2.454 5.057-3.68 8.523-3.68zM87.461 98.17v4.298h2.16c.908 0 1.555.175 1.94.524.384.35.576.93.576 1.74 0 .825-.196 1.42-.587 1.783-.392.363-1.035.545-1.93.545h-7.254c-.922 0-1.583-.182-1.981-.545-.399-.364-.598-.958-.598-1.783 0-.74.189-1.303.566-1.687.378-.385.93-.577 1.657-.577h.356V86.828h-.356c-.713 0-1.262-.2-1.646-.598-.385-.398-.577-.968-.577-1.709 0-.81.203-1.401.608-1.772.406-.37 1.063-.555 1.971-.555h8.66c3.424 0 6.014.657 7.768 1.97 1.754 1.315 2.631 3.25 2.631 5.809 0 2.697-.873 4.738-2.62 6.122-1.748 1.384-4.34 2.076-7.78 2.076h-3.564zm0-11.343v6.625h2.977c1.65 0 2.89-.28 3.722-.839.832-.559 1.248-1.397 1.248-2.516 0-1.048-.43-1.855-1.29-2.421-.86-.566-2.086-.85-3.68-.85h-2.977zm27.267 20.568l-1.636 1.636a12.37 12.37 0 011.772-.44c.58-.098 1.15-.147 1.709-.147 1.104 0 2.268.164 3.491.492 1.223.329 1.967.493 2.233.493.447 0 1.03-.15 1.75-.45.72-.301 1.206-.452 1.458-.452.517 0 .947.2 1.29.598.342.398.513.898.513 1.5 0 .796-.472 1.474-1.415 2.033-.944.56-2.1.839-3.47.839-.937 0-2.139-.22-3.607-.66-1.467-.441-2.53-.661-3.187-.661-.992 0-2.11.272-3.354.817-1.244.546-2.013.818-2.307.818a2.14 2.14 0 01-1.53-.597c-.42-.399-.63-.878-.63-1.437 0-.391.134-.807.4-1.247.265-.44.733-1.01 1.404-1.709l2.118-2.139c-2.335-.852-4.194-2.386-5.578-4.602-1.384-2.215-2.075-4.763-2.075-7.642 0-3.802 1.104-6.909 3.312-9.32 2.209-2.411 5.053-3.617 8.534-3.617 3.467 0 6.304 1.209 8.513 3.627 2.208 2.418 3.312 5.522 3.312 9.31 0 3.774-1.097 6.884-3.291 9.33-2.195 2.446-4.977 3.67-8.345 3.67a22.5 22.5 0 01-1.384-.043zm1.195-21.03c-1.803 0-3.218.727-4.246 2.18-1.027 1.455-1.54 3.474-1.54 6.06 0 2.586.516 4.613 1.55 6.08 1.035 1.468 2.447 2.202 4.236 2.202 1.803 0 3.222-.73 4.256-2.19 1.035-1.461 1.552-3.492 1.552-6.092 0-2.586-.514-4.605-1.541-6.06-1.028-1.453-2.45-2.18-4.267-2.18z\"/></svg>"
        },
        "$:/core/images/mono-line": {
            "title": "$:/core/images/mono-line",
            "tags": "$:/tags/Image",
            "text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-mono-line tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M60.437 84.523h.908c1.922 0 3.381.489 4.378 1.468.997.979 1.495 2.411 1.495 4.298 0 2.1-.525 3.612-1.575 4.538-1.05.925-2.785 1.388-5.206 1.388h-16.07c-2.456 0-4.2-.454-5.232-1.361-1.032-.908-1.548-2.43-1.548-4.565 0-2.065.516-3.542 1.548-4.432 1.032-.89 2.776-1.334 5.232-1.334h1.869l-2.19-6.247H20.983l-2.296 6.247h1.87c2.42 0 4.155.453 5.205 1.361 1.05.908 1.575 2.376 1.575 4.405 0 2.1-.525 3.612-1.575 4.538-1.05.925-2.785 1.388-5.206 1.388H6.781c-2.456 0-4.2-.463-5.233-1.388C.516 93.9 0 92.389 0 90.289c0-1.887.498-3.32 1.495-4.298.997-.979 2.456-1.468 4.378-1.468h.908l14.308-39.83h-4.271c-2.42 0-4.156-.462-5.206-1.387-1.05-.926-1.575-2.42-1.575-4.485 0-2.1.525-3.613 1.575-4.538 1.05-.926 2.785-1.388 5.206-1.388h20.021c3.168 0 5.392 1.708 6.674 5.125v.16l16.924 46.343zm-27.976-39.83L24.72 67.225h15.483l-7.742-22.53zM89.506 68.56v16.284h8.008c5.66 0 9.646-.623 11.96-1.869 2.313-1.245 3.47-3.328 3.47-6.246 0-2.955-1.103-5.055-3.31-6.3-2.207-1.246-6.069-1.869-11.586-1.869h-8.542zm27.229-5.926c3.88 1.423 6.727 3.372 8.542 5.846 1.815 2.474 2.723 5.633 2.723 9.477 0 3.239-.783 6.193-2.35 8.862-1.565 2.67-3.808 4.859-6.726 6.567-1.709.997-3.622 1.718-5.74 2.163-2.118.445-5.116.667-8.996.667h-27.87c-2.349 0-4.03-.463-5.045-1.388-1.014-.926-1.521-2.438-1.521-4.538 0-1.887.48-3.32 1.441-4.298.961-.979 2.367-1.468 4.218-1.468h.907v-39.83h-.907c-1.851 0-3.257-.498-4.218-1.494-.961-.997-1.441-2.456-1.441-4.378 0-2.065.516-3.568 1.548-4.512 1.032-.943 2.705-1.414 5.018-1.414h24.56c7.51 0 13.214 1.459 17.111 4.377 3.898 2.92 5.847 7.19 5.847 12.814 0 2.776-.597 5.223-1.789 7.341-1.192 2.118-2.963 3.853-5.312 5.206zm-27.23-18.26v13.455h7.208c4.378 0 7.466-.516 9.264-1.549 1.797-1.032 2.696-2.776 2.696-5.232 0-2.313-.81-4.004-2.43-5.072-1.619-1.068-4.244-1.602-7.874-1.602h-8.863z\"/></svg>"
        },
        "$:/core/images/new-button": {
            "title": "$:/core/images/new-button",
            "tags": "$:/tags/Image",
            "text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-new-button tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M56 72H8.007C3.591 72 0 68.418 0 64c0-4.41 3.585-8 8.007-8H56V8.007C56 3.591 59.582 0 64 0c4.41 0 8 3.585 8 8.007V56h47.993c4.416 0 8.007 3.582 8.007 8 0 4.41-3.585 8-8.007 8H72v47.993c0 4.416-3.582 8.007-8 8.007-4.41 0-8-3.585-8-8.007V72z\"/></svg>"
        },
        "$:/core/images/new-here-button": {
            "title": "$:/core/images/new-here-button",
            "tags": "$:/tags/Image",
            "text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-new-here-button tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><path d=\"M55.838 20.935l-3.572.938c-3.688.968-8.23 4.43-10.136 7.731L3.37 96.738c-1.905 3.3-.771 7.524 2.534 9.432l33.717 19.466c3.297 1.904 7.53.78 9.435-2.521l38.76-67.134c1.905-3.3 2.632-8.963 1.623-12.646L83.285 20.88c-1.009-3.68-4.821-5.884-8.513-4.915l-7.603 1.995.043.287c.524 3.394 2.053 7.498 4.18 11.55.418.163.829.36 1.23.59a8.864 8.864 0 014.438 8.169c.104.132.21.264.316.395l-.386.318a8.663 8.663 0 01-1.082 3.137c-2.42 4.192-7.816 5.608-12.051 3.163-4.12-2.379-5.624-7.534-3.476-11.671-2.177-4.394-3.788-8.874-4.543-12.964z\"/><path d=\"M69.554 44.76c-5.944-7.476-10.74-17.196-11.955-25.059-1.68-10.875 3.503-18.216 15.082-18.04 10.407.158 19.975 5.851 24.728 13.785 5.208 8.695 2.95 17.868-6.855 20.496l-2.037-7.601c4.232-1.134 4.999-4.248 2.24-8.853-3.37-5.626-10.465-9.848-18.146-9.965-6.392-.097-8.31 2.62-7.323 9.01.999 6.465 5.318 15.138 10.582 21.65l-.072.06c.559 1.553-4.17 6.44-5.938 4.888l-.005.004-.028-.034a1.323 1.323 0 01-.124-.135 2.618 2.618 0 01-.149-.205z\"/><rect width=\"16\" height=\"48\" x=\"96\" y=\"80\" rx=\"8\"/><rect width=\"48\" height=\"16\" x=\"80\" y=\"96\" rx=\"8\"/></g></svg>"
        },
        "$:/core/images/new-image-button": {
            "title": "$:/core/images/new-image-button",
            "tags": "$:/tags/Image",
            "text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-new-image-button tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M81.362 73.627l15.826-27.41a2.626 2.626 0 00-.962-3.59l-50.01-28.872a2.626 2.626 0 00-3.588.961L30.058 36.49l10.04-5.261c3.042-1.595 6.771.114 7.55 3.46l3.607 17.702 9.88.85a5.25 5.25 0 014.571 3.77c.034.115.1.344.199.671.165.553.353 1.172.562 1.843.595 1.914 1.23 3.85 1.872 5.678.207.588.412 1.156.614 1.701.625 1.685 1.209 3.114 1.725 4.207.255.54.485.977.726 1.427.214.212.547.425 1.011.622 1.141.482 2.784.74 4.657.758.864.008 1.71-.034 2.492-.11.448-.043.753-.085.871-.104.315-.053.625-.077.927-.076zM37.47 2.649A5.257 5.257 0 0144.649.725l63.645 36.746a5.257 5.257 0 011.923 7.178L73.47 108.294a5.257 5.257 0 01-7.177 1.923L2.649 73.47a5.257 5.257 0 01-1.924-7.177L37.471 2.649zm42.837 50.49a5.25 5.25 0 105.25-9.092 5.25 5.25 0 00-5.25 9.093zM96 112h-7.993c-4.419 0-8.007-3.582-8.007-8 0-4.41 3.585-8 8.007-8H96v-7.993C96 83.588 99.582 80 104 80c4.41 0 8 3.585 8 8.007V96h7.993c4.419 0 8.007 3.582 8.007 8 0 4.41-3.585 8-8.007 8H112v7.993c0 4.419-3.582 8.007-8 8.007-4.41 0-8-3.585-8-8.007V112zM33.347 51.791c7.428 7.948 9.01 10.69 7.449 13.394-1.56 2.703-13.838-2.328-16.094 1.58-2.256 3.908-.907 3.258-2.437 5.908l19.73 11.39s-5.605-8.255-4.235-10.628c2.515-4.356 8.77-1.256 10.365-4.019 2.414-4.181-5.103-9.639-14.778-17.625z\"/></svg>"
        },
        "$:/core/images/new-journal-button": {
            "title": "$:/core/images/new-journal-button",
            "tags": "$:/tags/Image",
            "text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-new-journal-button tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><path d=\"M102.545 112.818v11.818c0 1.306 1.086 2.364 2.425 2.364h6.06c1.34 0 2.425-1.058 2.425-2.364v-11.818h12.12c1.34 0 2.425-1.058 2.425-2.363v-5.91c0-1.305-1.085-2.363-2.424-2.363h-12.121V90.364c0-1.306-1.086-2.364-2.425-2.364h-6.06c-1.34 0-2.425 1.058-2.425 2.364v11.818h-12.12c-1.34 0-2.425 1.058-2.425 2.363v5.91c0 1.305 1.085 2.363 2.424 2.363h12.121zM60.016 4.965c-4.781-2.76-10.897-1.118-13.656 3.66L5.553 79.305A9.993 9.993 0 009.21 92.963l51.04 29.468c4.78 2.76 10.897 1.118 13.655-3.66l40.808-70.681a9.993 9.993 0 00-3.658-13.656L60.016 4.965zm-3.567 27.963a6 6 0 106-10.393 6 6 0 00-6 10.393zm31.697 17.928a6 6 0 106-10.392 6 6 0 00-6 10.392z\"/><text class=\"tc-fill-background\" font-family=\"Helvetica\" font-size=\"47.172\" font-weight=\"bold\" transform=\"rotate(30 25.742 95.82)\"><tspan x=\"42\" y=\"77.485\" text-anchor=\"middle\"><<now \"DD\">></tspan></text></g></svg>"
        },
        "$:/core/images/opacity": {
            "title": "$:/core/images/opacity",
            "tags": "$:/tags/Image",
            "text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-opacity tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><path d=\"M102.362 65a51.595 51.595 0 01-1.942 6H82.584a35.867 35.867 0 002.997-6h16.78zm.472-2c.423-1.961.734-3.963.929-6H87.656a35.78 35.78 0 01-1.368 6h16.546zm-3.249 10a51.847 51.847 0 01-3.135 6H75.812a36.205 36.205 0 005.432-6h18.341zm-4.416 8c-1.424 2.116-3 4.12-4.71 6H60.46a35.843 35.843 0 0012.874-6h21.834zm-7.513-34h16.107C101.247 20.627 79.033 0 52 0 23.281 0 0 23.281 0 52c0 25.228 17.965 46.26 41.8 51h20.4a51.66 51.66 0 0015.875-6H39v-2h42.25a52.257 52.257 0 007.288-6H39v-2h4.539C27.739 83.194 16 68.968 16 52c0-19.882 16.118-36 36-36 18.186 0 33.222 13.484 35.656 31zm.22 2h16.039a52.823 52.823 0 010 6H87.877a36.483 36.483 0 000-6z\"/><path d=\"M76 128c28.719 0 52-23.281 52-52s-23.281-52-52-52-52 23.281-52 52 23.281 52 52 52zm0-16c19.882 0 36-16.118 36-36S95.882 40 76 40 40 56.118 40 76s16.118 36 36 36z\"/><path d=\"M37 58h53v4H37v-4zm3-8h53v4H40v-4zm0-8h53v4H40v-4zm-8 24h53v4H32v-4zm-2 8h53v4H30v-4zm-3 8h53v4H27v-4z\"/></g></svg>"
        },
        "$:/core/images/open-window": {
            "title": "$:/core/images/open-window",
            "tags": "$:/tags/Image",
            "text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-open-window tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><path d=\"M16 112h88.994c3.87 0 7.006 3.59 7.006 8 0 4.418-3.142 8-7.006 8H7.006C3.136 128 0 124.41 0 120a9.321 9.321 0 010-.01V24.01C0 19.586 3.59 16 8 16c4.418 0 8 3.584 8 8.01V112z\"/><path d=\"M96 43.196V56a8 8 0 1016 0V24c0-4.41-3.585-8-8.007-8H72.007C67.588 16 64 19.582 64 24c0 4.41 3.585 8 8.007 8H84.57l-36.3 36.299a8 8 0 00-.001 11.316c3.117 3.117 8.19 3.123 11.316-.003L96 43.196zM32 7.999C32 3.581 35.588 0 40 0h80c4.419 0 8 3.588 8 8v80c0 4.419-3.588 8-8 8H40c-4.419 0-8-3.588-8-8V8z\"/></g></svg>"
        },
        "$:/core/images/options-button": {
            "title": "$:/core/images/options-button",
            "tags": "$:/tags/Image",
            "text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-options-button tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M110.488 76a47.712 47.712 0 01-5.134 12.384l6.724 6.724c3.123 3.123 3.132 8.192.011 11.313l-5.668 5.668c-3.12 3.12-8.186 3.117-11.313-.01l-6.724-6.725c-3.82 2.258-7.98 4-12.384 5.134v9.505c0 4.417-3.578 8.007-7.992 8.007h-8.016C55.58 128 52 124.415 52 119.993v-9.505a47.712 47.712 0 01-12.384-5.134l-6.724 6.725c-3.123 3.122-8.192 3.131-11.313.01l-5.668-5.668c-3.12-3.12-3.116-8.186.01-11.313l6.725-6.724c-2.257-3.82-4-7.98-5.134-12.384H8.007C3.591 76 0 72.422 0 68.01v-8.017C0 55.58 3.585 52 8.007 52h9.505a47.712 47.712 0 015.134-12.383l-6.724-6.725c-3.123-3.122-3.132-8.191-.011-11.312l5.668-5.669c3.12-3.12 8.186-3.116 11.313.01l6.724 6.725c3.82-2.257 7.98-4 12.384-5.134V8.007C52 3.591 55.578 0 59.992 0h8.016C72.42 0 76 3.585 76 8.007v9.505a47.712 47.712 0 0112.384 5.134l6.724-6.724c3.123-3.123 8.192-3.132 11.313-.01l5.668 5.668c3.12 3.12 3.116 8.186-.01 11.312l-6.725 6.725c2.257 3.82 4 7.979 5.134 12.383h9.505c4.416 0 8.007 3.578 8.007 7.992v8.017c0 4.411-3.585 7.991-8.007 7.991h-9.505zM64 96c17.673 0 32-14.327 32-32 0-17.673-14.327-32-32-32-17.673 0-32 14.327-32 32 0 17.673 14.327 32 32 32z\"/></svg>"
        },
        "$:/core/images/paint": {
            "title": "$:/core/images/paint",
            "tags": "$:/tags/Image",
            "text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-paint tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M83.527 76.19C90.43 69.287 91.892 59 87.91 50.665l37.903-37.902c2.919-2.92 2.913-7.659 0-10.572a7.474 7.474 0 00-10.572 0L77.338 40.093c-8.335-3.982-18.622-2.521-25.526 4.383l31.715 31.715zm-2.643 2.644L49.169 47.119S8.506 81.243 0 80.282c0 0 3.782 5.592 6.827 8.039 14.024-5.69 37.326-24.6 37.326-24.6l.661.66S19.45 90.222 9.18 92.047c1.222 1.44 4.354 4.053 6.247 5.776 5.417-1.488 34.733-28.57 34.733-28.57l.661.66-32.407 31.022 5.285 5.286L56.106 75.2l.662.66s-27.864 30.536-28.684 32.432c0 0 6.032 6.853 7.569 7.824.702-2.836 27.884-33.485 27.884-33.485l.661.66s-20.597 23.755-24.964 36.732c3.21 3.549 7.5 5.137 10.926 6.298-2.19-11.817 30.724-47.487 30.724-47.487z\"/></svg>"
        },
        "$:/core/images/palette": {
            "title": "$:/core/images/palette",
            "tags": "$:/tags/Image",
            "text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-palette tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M80.247 39.182a93.52 93.52 0 00-16.228-1.4C28.662 37.781 0 57.131 0 81.002c0 9.642 4.676 18.546 12.58 25.735C23.504 91.19 26.34 72.395 36.89 63.562c15.183-12.713 26.538-7.828 26.538-7.828l16.82-16.552zm26.535 9.655c13.049 7.913 21.257 19.392 21.257 32.166 0 9.35.519 17.411-11.874 25.08-10.797 6.681-3.824-6.536-11.844-10.898s-19.946 1.308-18.213 7.906c3.2 12.181 19.422 11.455 6.314 16.658-13.107 5.202-18.202 4.476-28.403 4.476-7.821 0-15.315-.947-22.243-2.68 9.844-4.197 27.88-12.539 33.354-19.456C82.788 92.409 87.37 80 83.324 72.484c-.194-.359 11.215-11.668 23.458-23.647zM1.134 123.867l-.66.002c33.479-14.94 22.161-64.226 58.818-64.226.317 1.418.644 2.944 1.062 4.494-25.907-4.166-23.567 48.031-59.22 59.73zm.713-.007c38.872-.506 78.152-22.347 78.152-44.813-9.27 0-14.073-3.48-16.816-7.942-16.597-7.003-30.365 45.715-61.336 52.755zm65.351-64.008c-4.45 4.115 4.886 16.433 11.318 11.318l45.27-45.27c11.317-11.318 0-22.635-11.318-11.318-11.317 11.318-33.518 34.405-45.27 45.27z\"/></svg>"
        },
        "$:/core/images/permalink-button": {
            "title": "$:/core/images/permalink-button",
            "tags": "$:/tags/Image",
            "text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-permalink-button tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M80.483 48l-7.387 32h-25.58l7.388-32h25.58zm3.694-16l5.624-24.358c.993-4.303 5.29-6.996 9.596-6.002 4.296.992 6.988 5.293 5.994 9.602L100.598 32h3.403c4.41 0 7.999 3.582 7.999 8 0 4.41-3.581 8-8 8h-7.096l-7.387 32H104c4.41 0 7.999 3.582 7.999 8 0 4.41-3.581 8-8 8H85.824l-5.624 24.358c-.993 4.303-5.29 6.996-9.596 6.002-4.296-.992-6.988-5.293-5.994-9.602L69.402 96h-25.58L38.2 120.358c-.993 4.303-5.29 6.996-9.596 6.002-4.296-.992-6.988-5.293-5.994-9.602L27.402 96h-3.403C19.59 96 16 92.418 16 88c0-4.41 3.581-8 8-8h7.096l7.387-32H24C19.59 48 16 44.418 16 40c0-4.41 3.581-8 8-8h18.177l5.624-24.358c.993-4.303 5.29-6.996 9.596-6.002 4.296.992 6.988 5.293 5.994 9.602L58.598 32h25.58z\"/></svg>"
        },
        "$:/core/images/permaview-button": {
            "title": "$:/core/images/permaview-button",
            "tags": "$:/tags/Image",
            "text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-permaview-button tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M81.483 48l-1.846 8h-5.58l1.847-8h5.58zm3.694-16l5.624-24.358c.993-4.303 5.29-6.996 9.596-6.002 4.296.992 6.988 5.293 5.994 9.602L101.598 32h2.403c4.41 0 7.999 3.582 7.999 8 0 4.41-3.581 8-8 8h-6.096l-1.847 8h7.944c4.41 0 7.999 3.582 7.999 8 0 4.41-3.581 8-8 8H92.364l-1.846 8H104c4.41 0 7.999 3.582 7.999 8 0 4.41-3.581 8-8 8H86.824l-5.624 24.358c-.993 4.303-5.29 6.996-9.596 6.002-4.296-.992-6.988-5.293-5.994-9.602L70.402 96h-5.58L59.2 120.358c-.993 4.303-5.29 6.996-9.596 6.002-4.296-.992-6.988-5.293-5.994-9.602L48.402 96h-5.58L37.2 120.358c-.993 4.303-5.29 6.996-9.596 6.002-4.296-.992-6.988-5.293-5.994-9.602L26.402 96h-2.403C19.59 96 16 92.418 16 88c0-4.41 3.581-8 8-8h6.096l1.847-8h-7.944C19.59 72 16 68.418 16 64c0-4.41 3.581-8 8-8h11.637l1.846-8H24C19.59 48 16 44.418 16 40c0-4.41 3.581-8 8-8h17.177l5.624-24.358c.993-4.303 5.29-6.996 9.596-6.002 4.296.992 6.988 5.293 5.994 9.602L57.598 32h5.58L68.8 7.642c.993-4.303 5.29-6.996 9.596-6.002 4.296.992 6.988 5.293 5.994 9.602L79.598 32h5.58zM53.904 48l-1.847 8h5.58l1.846-8h-5.579zm22.039 24l-1.847 8h-5.58l1.847-8h5.58zm-27.58 0l-1.846 8h5.579l1.847-8h-5.58z\"/></svg>"
        },
        "$:/core/images/picture": {
            "title": "$:/core/images/picture",
            "tags": "$:/tags/Image",
            "text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-picture tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M112 68.233v-48.23A4.001 4.001 0 00107.997 16H20.003A4.001 4.001 0 0016 20.003v38.31l9.241-14.593c2.8-4.422 9.023-5.008 12.6-1.186l18.247 20.613 13.687-6.407a8 8 0 018.903 1.492 264.97 264.97 0 002.92 2.739 249.44 249.44 0 006.798 6.066 166.5 166.5 0 002.106 1.778c2.108 1.747 3.967 3.188 5.482 4.237.748.518 1.383.92 2.044 1.33.444.117 1.046.144 1.809.05 1.873-.233 4.238-1.144 6.723-2.547a36.016 36.016 0 003.205-2.044c.558-.4.93-.686 1.07-.802.376-.31.765-.577 1.165-.806zM0 8.007A8.01 8.01 0 018.007 0h111.986A8.01 8.01 0 01128 8.007v111.986a8.01 8.01 0 01-8.007 8.007H8.007A8.01 8.01 0 010 119.993V8.007zM95 42a8 8 0 100-16 8 8 0 000 16zM32 76c15.859 4.83 20.035 7.244 20.035 12S32 95.471 32 102.347c0 6.876 1.285 4.99 1.285 9.653H68s-13.685-6.625-13.685-10.8c0-7.665 10.615-8.34 10.615-13.2 0-7.357-14.078-8.833-32.93-12z\"/></svg>"
        },
        "$:/core/images/plugin-generic-language": {
            "title": "$:/core/images/plugin-generic-language",
            "tags": "$:/tags/Image",
            "text": "<svg width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M61.207 68.137c-4.324 2.795-6.999 6.656-6.999 10.921 0 7.906 9.19 14.424 21.042 15.336 2.162 3.902 8.598 6.785 16.318 7.01-5.126-1.125-9.117-3.742-10.62-7.01C92.805 93.487 102 86.967 102 79.059c0-8.53-10.699-15.445-23.896-15.445-6.599 0-12.572 1.729-16.897 4.524zm12.794-14.158c-4.324 2.795-10.298 4.524-16.897 4.524-2.619 0-5.14-.272-7.497-.775-3.312 2.25-8.383 3.69-14.067 3.69l-.255-.002c4.119-.892 7.511-2.747 9.478-5.13-6.925-2.704-11.555-7.617-11.555-13.228 0-8.53 10.699-15.445 23.896-15.445C70.301 27.613 81 34.528 81 43.058c0 4.265-2.675 8.126-6.999 10.921zM64 0l54.56 32v64L64 128 9.44 96V32L64 0z\"/></svg>"
        },
        "$:/core/images/plugin-generic-plugin": {
            "title": "$:/core/images/plugin-generic-plugin",
            "tags": "$:/tags/Image",
            "text": "<svg width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M40.397 76.446V95.34h14.12l-.001-.005a6.912 6.912 0 005.364-11.593l.046-.023a6.912 6.912 0 119.979.526l.086.055a6.914 6.914 0 004.408 10.948l-.023.092h21.32V75.568l-.15.038a6.912 6.912 0 00-11.593-5.364l-.022-.046a6.912 6.912 0 11.526-9.979l.055-.086a6.914 6.914 0 0010.948-4.408c.079.018.158.038.236.059v-15.74h-21.32l.023-.094a6.914 6.914 0 01-4.408-10.947 10.23 10.23 0 00-.086-.055 6.912 6.912 0 10-9.979-.526l-.046.023a6.912 6.912 0 01-5.364 11.593l.001.005h-14.12v12.847A6.912 6.912 0 0129.5 59.843l-.054.086a6.912 6.912 0 10-.526 9.979l.023.046a6.912 6.912 0 0111.455 6.492zM64 0l54.56 32v64L64 128 9.44 96V32L64 0z\"/></svg>"
        },
        "$:/core/images/plugin-generic-theme": {
            "title": "$:/core/images/plugin-generic-theme",
            "tags": "$:/tags/Image",
            "text": "<svg width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M29.408 91.472L51.469 69.41l-.004-.005a2.22 2.22 0 01.004-3.146c.87-.87 2.281-.872 3.147-.005l9.465 9.464a2.22 2.22 0 01-.005 3.147c-.87.87-2.28.871-3.147.005l-.005-.005-22.061 22.062a6.686 6.686 0 11-9.455-9.455zM60.802 66.38c-2.436-2.704-4.465-5.091-5.817-6.869-6.855-9.014-10.313-4.268-14.226 0-3.913 4.268 1.03 7.726-2.683 10.741-3.713 3.015-3.484 4.06-9.752-1.455-6.267-5.516-6.7-7.034-3.823-10.181 2.877-3.147 5.281 1.808 11.159-3.785 5.877-5.593.94-10.55.94-10.55s12.237-25.014 28.588-23.167c16.351 1.848-6.186-2.392-11.792 17.226-2.4 8.4.447 6.42 4.998 9.968 1.394 1.086 6.03 4.401 11.794 8.685l20.677-20.676 1.615-4.766 7.84-4.689 3.151 3.152-4.688 7.84-4.766 1.615-20.224 20.223c12.663 9.547 28.312 22.146 28.312 26.709 0 7.217-3.071 11.526-9.535 9.164-4.693-1.715-18.768-15.192-28.753-25.897l-2.893 2.893-3.151-3.152 3.029-3.029zM63.953 0l54.56 32v64l-54.56 32-54.56-32V32l54.56-32z\"/></svg>"
        },
        "$:/core/images/preview-closed": {
            "title": "$:/core/images/preview-closed",
            "tags": "$:/tags/Image",
            "text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-preview-closed tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><path d=\"M.088 64a7.144 7.144 0 001.378 5.458C16.246 88.818 39.17 100.414 64 100.414c24.83 0 47.753-11.596 62.534-30.956A7.144 7.144 0 00127.912 64C110.582 78.416 88.304 87.086 64 87.086 39.696 87.086 17.418 78.416.088 64z\"/><rect width=\"4\" height=\"16\" x=\"62\" y=\"96\" rx=\"4\"/><rect width=\"4\" height=\"16\" x=\"78\" y=\"93\" rx=\"4\" transform=\"rotate(-5 80 101)\"/><rect width=\"4\" height=\"16\" x=\"46\" y=\"93\" rx=\"4\" transform=\"rotate(5 48 101)\"/><rect width=\"4\" height=\"16\" x=\"30\" y=\"88\" rx=\"4\" transform=\"rotate(10 32 96)\"/><rect width=\"4\" height=\"16\" x=\"94\" y=\"88\" rx=\"4\" transform=\"rotate(-10 96 96)\"/><rect width=\"4\" height=\"16\" x=\"110\" y=\"80\" rx=\"4\" transform=\"rotate(-20 112 88)\"/><rect width=\"4\" height=\"16\" x=\"14\" y=\"80\" rx=\"4\" transform=\"rotate(20 16 88)\"/></g></svg>"
        },
        "$:/core/images/preview-open": {
            "title": "$:/core/images/preview-open",
            "tags": "$:/tags/Image",
            "text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-preview-open tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><path d=\"M64.11 99.588c-24.83 0-47.754-11.596-62.534-30.957a7.148 7.148 0 010-8.675C16.356 40.596 39.28 29 64.11 29c24.83 0 47.753 11.596 62.534 30.956a7.148 7.148 0 010 8.675c-14.78 19.36-37.703 30.957-62.534 30.957zm46.104-32.007c1.44-1.524 1.44-3.638 0-5.162C99.326 50.9 82.439 44 64.147 44S28.968 50.9 18.08 62.42c-1.44 1.523-1.44 3.637 0 5.16C28.968 79.1 45.855 86 64.147 86s35.179-6.9 46.067-18.42z\"/><path d=\"M63.5 88C76.479 88 87 77.479 87 64.5S76.479 41 63.5 41 40 51.521 40 64.5 50.521 88 63.5 88z\"/></g></svg>"
        },
        "$:/core/images/print-button": {
            "title": "$:/core/images/print-button",
            "tags": "$:/tags/Image",
            "text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-print-button tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><path d=\"M112 71V30.5h-.032c-.035-2-.816-3.99-2.343-5.516L86.998 2.357A7.978 7.978 0 0081 .02V0H24a8 8 0 00-8 8v63h8V8h57v14.5c0 4.422 3.582 8 8 8h15V71h8z\"/><rect width=\"64\" height=\"8\" x=\"32\" y=\"36\" rx=\"4\"/><rect width=\"64\" height=\"8\" x=\"32\" y=\"52\" rx=\"4\"/><rect width=\"40\" height=\"8\" x=\"32\" y=\"20\" rx=\"4\"/><path d=\"M0 80.005C0 71.165 7.156 64 16 64h96c8.836 0 16 7.155 16 16.005v31.99c0 8.84-7.156 16.005-16 16.005H16c-8.836 0-16-7.155-16-16.005v-31.99zM104 96a8 8 0 100-16 8 8 0 000 16z\"/></g></svg>"
        },
        "$:/core/images/quote": {
            "title": "$:/core/images/quote",
            "tags": "$:/tags/Image",
            "text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-quote tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M51.219 117.713V62.199H27.427c0-8.891 1.683-16.401 5.047-22.53 3.365-6.127 9.613-10.754 18.745-13.878V2c-7.45.961-14.36 3.184-20.728 6.669-6.368 3.484-11.835 7.87-16.401 13.157C9.524 27.113 5.98 33.241 3.456 40.21.933 47.18-.21 54.63.03 62.56v55.153H51.22zm76.781 0V62.199h-23.791c0-8.891 1.682-16.401 5.046-22.53 3.365-6.127 9.613-10.754 18.745-13.878V2c-7.45.961-14.359 3.184-20.727 6.669-6.369 3.484-11.836 7.87-16.402 13.157-4.566 5.287-8.11 11.415-10.634 18.384-2.523 6.97-3.665 14.42-3.424 22.35v55.153H128z\"/></svg>"
        },
        "$:/core/images/refresh-button": {
            "title": "$:/core/images/refresh-button",
            "tags": "$:/tags/Image",
            "text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-refresh-button tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M106.369 39.433c10.16 20.879 6.57 46.764-10.771 64.106-21.87 21.87-57.327 21.87-79.196 0-21.87-21.87-21.87-57.326 0-79.196a8 8 0 1111.314 11.314c-15.621 15.62-15.621 40.947 0 56.568 15.62 15.621 40.947 15.621 56.568 0C97.72 78.79 99.6 58.175 89.924 42.73l-6.44 12.264a8 8 0 11-14.166-7.437L84.435 18.76a8 8 0 0110.838-3.345l28.873 15.345a8 8 0 11-7.51 14.129l-10.267-5.457zm-8.222-12.368c-.167-.19-.336-.38-.506-.57l.96-.296-.454.866z\"/></svg>"
        },
        "$:/core/images/right-arrow": {
            "title": "$:/core/images/right-arrow",
            "tags": "$:/tags/Image",
            "text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-right-arrow tc-image-button\" viewBox=\"0 0 128 128\"><path d=\"M99.069 64.173c0 2.027-.77 4.054-2.316 5.6l-55.98 55.98a7.92 7.92 0 01-11.196 0c-3.085-3.086-3.092-8.105 0-11.196l50.382-50.382-50.382-50.382a7.92 7.92 0 010-11.195c3.086-3.085 8.104-3.092 11.196 0l55.98 55.98a7.892 7.892 0 012.316 5.595z\"/></svg>"
        },
        "$:/core/images/rotate-left": {
            "title": "$:/core/images/rotate-left",
            "tags": "$:/tags/Image",
            "text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-rotate-left tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><rect width=\"32\" height=\"80\" rx=\"8\"/><rect width=\"80\" height=\"32\" x=\"48\" y=\"96\" rx=\"8\"/><path d=\"M61.32 36.65c19.743 2.45 35.023 19.287 35.023 39.693a4 4 0 01-8 0c0-15.663-11.254-28.698-26.117-31.46l3.916 3.916a4 4 0 11-5.657 5.657L49.172 43.142a4 4 0 010-5.657l11.313-11.313a4 4 0 115.657 5.656l-4.821 4.822z\"/></g></svg>"
        },
        "$:/core/images/save-button": {
            "title": "$:/core/images/save-button",
            "tags": "$:/tags/Image",
            "text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-save-button tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M120.783 34.33c4.641 8.862 7.266 18.948 7.266 29.646 0 35.347-28.653 64-64 64-35.346 0-64-28.653-64-64 0-35.346 28.654-64 64-64 18.808 0 35.72 8.113 47.43 21.03l2.68-2.68c3.13-3.13 8.197-3.132 11.321-.008 3.118 3.118 3.121 8.193-.007 11.32l-4.69 4.691zm-12.058 12.058a47.876 47.876 0 013.324 17.588c0 26.51-21.49 48-48 48s-48-21.49-48-48 21.49-48 48-48c14.39 0 27.3 6.332 36.098 16.362L58.941 73.544 41.976 56.578c-3.127-3.127-8.201-3.123-11.32-.005-3.123 3.124-3.119 8.194.006 11.319l22.617 22.617a7.992 7.992 0 005.659 2.347c2.05 0 4.101-.783 5.667-2.349l44.12-44.12z\"/></svg>"
        },
        "$:/core/images/size": {
            "title": "$:/core/images/size",
            "tags": "$:/tags/Image",
            "text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-size tc-image-button\" viewBox=\"0 0 128 128\"><path d=\"M92.343 26l-9.171 9.172a4 4 0 105.656 5.656l16-16a4 4 0 000-5.656l-16-16a4 4 0 10-5.656 5.656L92.343 18H22a4 4 0 00-4 4v70.343l-9.172-9.171a4 4 0 10-5.656 5.656l16 16a4 4 0 005.656 0l16-16a4 4 0 10-5.656-5.656L26 92.343V22l-4 4h70.343zM112 52v64l4-4H52a4 4 0 100 8h64a4 4 0 004-4V52a4 4 0 10-8 0z\"/></svg>"
        },
        "$:/core/images/spiral": {
            "title": "$:/core/images/spiral",
            "tags": "$:/tags/Image",
            "text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-spiral tc-image-button\" viewBox=\"0 0 128 128\"><path d=\"M64.534 68.348c3.39 0 6.097-2.62 6.476-5.968l-4.755-.538 4.75.583c.377-3.07-1.194-6.054-3.89-7.78-2.757-1.773-6.34-2.01-9.566-.7-3.46 1.403-6.14 4.392-7.35 8.148l-.01.026c-1.3 4.08-.72 8.64 1.58 12.52 2.5 4.2 6.77 7.2 11.76 8.27 5.37 1.15 11.11-.05 15.83-3.31 5.04-3.51 8.46-9.02 9.45-15.3 1.05-6.7-.72-13.63-4.92-19.19l.02.02c-4.42-5.93-11.2-9.82-18.78-10.78-7.96-1.01-16.13 1.31-22.59 6.43-6.81 5.39-11.18 13.41-12.11 22.26-.98 9.27 1.87 18.65 7.93 26.02 6.32 7.69 15.6 12.56 25.74 13.48 10.54.96 21.15-2.42 29.45-9.4l.01-.01c8.58-7.25 13.94-17.78 14.86-29.21.94-11.84-2.96-23.69-10.86-32.9-8.19-9.5-19.95-15.36-32.69-16.27-13.16-.94-26.24 3.49-36.34 12.34l.01-.01c-10.41 9.08-16.78 22.1-17.68 36.15-.93 14.44 4.03 28.77 13.79 39.78 10.03 11.32 24.28 18.2 39.6 19.09 15.73.92 31.31-4.56 43.24-15.234 12.23-10.954 19.61-26.44 20.5-43.074a4.785 4.785 0 00-4.52-5.03 4.778 4.778 0 00-5.03 4.52c-.75 14.1-7 27.2-17.33 36.45-10.03 8.98-23.11 13.58-36.3 12.81-12.79-.75-24.67-6.48-33-15.89-8.07-9.11-12.17-20.94-11.41-32.827.74-11.52 5.942-22.15 14.43-29.54l.01-.01c8.18-7.17 18.74-10.75 29.35-9.998 10.21.726 19.6 5.41 26.11 12.96 6.24 7.273 9.32 16.61 8.573 25.894-.718 8.9-4.88 17.064-11.504 22.66l.01-.007c-6.36 5.342-14.44 7.92-22.425 7.19-7.604-.68-14.52-4.314-19.21-10.027-4.44-5.4-6.517-12.23-5.806-18.94.67-6.3 3.76-11.977 8.54-15.766 4.46-3.54 10.05-5.128 15.44-4.44 5.03.63 9.46 3.18 12.32 7.01l.02.024c2.65 3.5 3.75 7.814 3.1 11.92-.59 3.71-2.58 6.925-5.45 8.924-2.56 1.767-5.61 2.403-8.38 1.81-2.42-.516-4.42-1.92-5.53-3.79-.93-1.56-1.15-3.3-.69-4.75l-4.56-1.446L59.325 65c.36-1.12 1.068-1.905 1.84-2.22.25-.103.48-.14.668-.13.06.006.11.015.14.025.01 0 .01 0-.01-.01a1.047 1.047 0 01-.264-.332c-.15-.29-.23-.678-.18-1.11l-.005.04c.15-1.332 1.38-2.523 3.035-2.523-2.65 0-4.79 2.144-4.79 4.787s2.14 4.785 4.78 4.785z\"/></svg>"
        },
        "$:/core/images/stamp": {
            "title": "$:/core/images/stamp",
            "tags": "$:/tags/Image",
            "text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-stamp tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M49.733 64H16.01C11.584 64 8 67.583 8 72.003V97h112V72.003A8 8 0 00111.99 64H78.267A22.813 22.813 0 0175.5 53.077c0-6.475 2.687-12.324 7.009-16.497A22.818 22.818 0 0087 22.952C87 10.276 76.703 0 64 0S41 10.276 41 22.952c0 5.103 1.669 9.817 4.491 13.628 4.322 4.173 7.009 10.022 7.009 16.497 0 3.954-1.002 7.675-2.767 10.923zM8 104h112v8H8v-8z\"/></svg>"
        },
        "$:/core/images/star-filled": {
            "title": "$:/core/images/star-filled",
            "tags": "$:/tags/Image",
            "text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-star-filled tc-image-button\" viewBox=\"0 0 128 128\"><path d=\"M61.836 96.823l37.327 27.287c2.72 1.99 6.379-.69 5.343-3.912L90.29 75.988l-1.26 3.91 37.285-27.345c2.718-1.993 1.32-6.327-2.041-6.33l-46.113-.036 3.3 2.416L67.176 4.416c-1.04-3.221-5.563-3.221-6.604 0L46.29 48.603l3.3-2.416-46.113.036c-3.362.003-4.759 4.337-2.04 6.33L38.72 79.898l-1.26-3.91-14.216 44.21c-1.036 3.223 2.622 5.901 5.343 3.912l37.326-27.287h-4.078z\"/></svg>"
        },
        "$:/core/images/storyview-classic": {
            "title": "$:/core/images/storyview-classic",
            "tags": "$:/tags/Image",
            "text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-storyview-classic tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M8.007 0A8.01 8.01 0 000 8.007v111.986A8.01 8.01 0 008.007 128h111.986a8.01 8.01 0 008.007-8.007V8.007A8.01 8.01 0 00119.993 0H8.007zm15.992 16C19.581 16 16 19.578 16 23.992v16.016C16 44.422 19.588 48 24 48h80c4.419 0 8-3.578 8-7.992V23.992c0-4.414-3.588-7.992-8-7.992H24zm0 48C19.581 64 16 67.59 16 72c0 4.418 3.588 8 8 8h80c4.419 0 8-3.59 8-8 0-4.418-3.588-8-8-8H24zm0 32C19.581 96 16 99.59 16 104c0 4.418 3.588 8 8 8h80c4.419 0 8-3.59 8-8 0-4.418-3.588-8-8-8H24z\"/></svg>"
        },
        "$:/core/images/storyview-pop": {
            "title": "$:/core/images/storyview-pop",
            "tags": "$:/tags/Image",
            "text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-storyview-pop tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M8.007 0A8.01 8.01 0 000 8.007v111.986A8.01 8.01 0 008.007 128h111.986a8.01 8.01 0 008.007-8.007V8.007A8.01 8.01 0 00119.993 0H8.007zm15.992 16C19.581 16 16 19.578 16 23.992v16.016C16 44.422 19.588 48 24 48h80c4.419 0 8-3.578 8-7.992V23.992c0-4.414-3.588-7.992-8-7.992H24zm-7.99 40C11.587 56 8 59.578 8 63.992v16.016C8 84.422 11.584 88 16.01 88h95.98c4.424 0 8.01-3.578 8.01-7.992V63.992c0-4.414-3.584-7.992-8.01-7.992H16.01zM24 96C19.581 96 16 99.59 16 104c0 4.418 3.588 8 8 8h80c4.419 0 8-3.59 8-8 0-4.418-3.588-8-8-8H24zm0-32C19.581 64 16 67.59 16 72c0 4.418 3.588 8 8 8h80c4.419 0 8-3.59 8-8 0-4.418-3.588-8-8-8H24z\"/></svg>"
        },
        "$:/core/images/storyview-zoomin": {
            "title": "$:/core/images/storyview-zoomin",
            "tags": "$:/tags/Image",
            "text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-storyview-zoomin tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M8.007 0A8.01 8.01 0 000 8.007v111.986A8.01 8.01 0 008.007 128h111.986a8.01 8.01 0 008.007-8.007V8.007A8.01 8.01 0 00119.993 0H8.007zm15.992 16A8 8 0 0016 24.009V71.99C16 76.414 19.588 80 24 80h80a8 8 0 008-8.009V24.01c0-4.423-3.588-8.009-8-8.009H24z\"/></svg>"
        },
        "$:/core/images/strikethrough": {
            "title": "$:/core/images/strikethrough",
            "tags": "$:/tags/Image",
            "text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-strikethrough tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><path d=\"M92.794 38.726h15.422c-.229-6.74-1.514-12.538-3.856-17.393-2.342-4.855-5.54-8.881-9.596-12.08-4.055-3.199-8.767-5.54-14.136-7.025C75.258.743 69.433 0 63.15 0a62.76 62.76 0 00-16.364 2.142C41.474 3.57 36.733 5.74 32.564 8.653c-4.17 2.913-7.511 6.626-10.025 11.138-2.513 4.512-3.77 9.853-3.77 16.022 0 5.597 1.115 10.252 3.342 13.965 2.228 3.712 5.198 6.74 8.91 9.081 3.713 2.342 7.911 4.227 12.595 5.655a194.641 194.641 0 0014.308 3.77c4.855 1.085 9.624 2.142 14.308 3.17 4.683 1.028 8.881 2.37 12.594 4.027 3.713 1.656 6.683 3.798 8.91 6.425 2.228 2.628 3.342 6.055 3.342 10.281 0 4.456-.914 8.111-2.742 10.967a19.953 19.953 0 01-7.197 6.768c-2.97 1.657-6.311 2.828-10.024 3.513a60.771 60.771 0 01-11.052 1.028c-4.57 0-9.025-.571-13.366-1.713-4.34-1.143-8.139-2.913-11.394-5.312-3.256-2.4-5.884-5.455-7.883-9.168-1.999-3.712-2.998-8.139-2.998-13.28H15c0 7.426 1.342 13.852 4.027 19.278 2.684 5.426 6.34 9.881 10.966 13.365 4.627 3.484 9.996 6.083 16.107 7.797 6.112 1.713 12.595 2.57 19.449 2.57 5.597 0 11.223-.657 16.878-1.97 5.655-1.314 10.767-3.428 15.336-6.34 4.57-2.914 8.31-6.683 11.224-11.31 2.913-4.626 4.37-10.195 4.37-16.707 0-6.054-1.115-11.08-3.342-15.079-2.228-3.998-5.198-7.31-8.91-9.938-3.713-2.627-7.911-4.712-12.595-6.254a170.83 170.83 0 00-14.308-4.027 549.669 549.669 0 00-14.308-3.17c-4.683-.971-8.881-2.2-12.594-3.684-3.713-1.485-6.683-3.399-8.91-5.74-2.228-2.342-3.342-5.398-3.342-9.168 0-3.998.771-7.34 2.313-10.024 1.543-2.685 3.599-4.826 6.17-6.426 2.57-1.599 5.51-2.741 8.824-3.427a49.767 49.767 0 0110.11-1.028c8.453 0 15.393 1.97 20.819 5.912 5.426 3.94 8.596 10.31 9.51 19.106z\"/><path d=\"M5 54h118v16H5z\"/></g></svg>"
        },
        "$:/core/images/subscript": {
            "title": "$:/core/images/subscript",
            "tags": "$:/tags/Image",
            "text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-subscript tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M2.272 16h19.91l21.649 33.675L66.414 16h18.708L53.585 61.969l33.809 49.443H67.082L43.296 74.93l-24.187 36.48H0L33.808 61.97 2.272 16zM127.91 128.412H85.328c.059-5.168 1.306-9.681 3.741-13.542 2.435-3.86 5.761-7.216 9.978-10.066a112.388 112.388 0 016.325-4.321 50.09 50.09 0 006.058-4.499c1.841-1.603 3.356-3.34 4.543-5.211 1.188-1.871 1.812-4.024 1.871-6.46 0-1.128-.133-2.33-.4-3.607a9.545 9.545 0 00-1.56-3.564c-.772-1.098-1.84-2.019-3.207-2.761-1.366-.743-3.148-1.114-5.345-1.114-2.02 0-3.697.4-5.033 1.203-1.337.801-2.406 1.9-3.208 3.296-.801 1.396-1.395 3.044-1.781 4.944-.386 1.9-.609 3.95-.668 6.147H86.486c0-3.445.46-6.637 1.38-9.577.921-2.94 2.302-5.478 4.143-7.617 1.841-2.138 4.083-3.815 6.726-5.033 2.643-1.217 5.716-1.826 9.22-1.826 3.802 0 6.979.623 9.533 1.87 2.554 1.248 4.617 2.822 6.191 4.722 1.574 1.9 2.688 3.965 3.341 6.192.653 2.227.98 4.35.98 6.37 0 2.494-.386 4.75-1.158 6.77a21.803 21.803 0 01-3.118 5.568 31.516 31.516 0 01-4.454 4.677 66.788 66.788 0 01-5.167 4.009 139.198 139.198 0 01-5.346 3.563 79.237 79.237 0 00-4.944 3.386c-1.514 1.128-2.836 2.3-3.964 3.518-1.129 1.218-1.9 2.51-2.317 3.876h30.379v9.087z\"/></svg>"
        },
        "$:/core/images/superscript": {
            "title": "$:/core/images/superscript",
            "tags": "$:/tags/Image",
            "text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-superscript tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M2.272 16h19.91l21.649 33.675L66.414 16h18.708L53.585 61.969l33.809 49.443H67.082L43.296 74.93l-24.187 36.48H0L33.808 61.97 2.272 16zM127.91 63.412H85.328c.059-5.168 1.306-9.681 3.741-13.542 2.435-3.86 5.761-7.216 9.978-10.066a112.388 112.388 0 016.325-4.321 50.09 50.09 0 006.058-4.499c1.841-1.603 3.356-3.34 4.543-5.211 1.188-1.871 1.812-4.024 1.871-6.46 0-1.128-.133-2.33-.4-3.607a9.545 9.545 0 00-1.56-3.564c-.772-1.098-1.84-2.019-3.207-2.761-1.366-.743-3.148-1.114-5.345-1.114-2.02 0-3.697.4-5.033 1.203-1.337.801-2.406 1.9-3.208 3.296-.801 1.396-1.395 3.044-1.781 4.944-.386 1.9-.609 3.95-.668 6.147H86.486c0-3.445.46-6.637 1.38-9.577.921-2.94 2.302-5.478 4.143-7.617 1.841-2.138 4.083-3.815 6.726-5.033 2.643-1.217 5.716-1.826 9.22-1.826 3.802 0 6.979.623 9.533 1.87 2.554 1.248 4.617 2.822 6.191 4.722 1.574 1.9 2.688 3.965 3.341 6.192.653 2.227.98 4.35.98 6.37 0 2.494-.386 4.75-1.158 6.77a21.803 21.803 0 01-3.118 5.568 31.516 31.516 0 01-4.454 4.677 66.788 66.788 0 01-5.167 4.009 139.198 139.198 0 01-5.346 3.563 79.237 79.237 0 00-4.944 3.386c-1.514 1.128-2.836 2.3-3.964 3.518-1.129 1.218-1.9 2.51-2.317 3.876h30.379v9.087z\"/></svg>"
        },
        "$:/core/images/tag-button": {
            "title": "$:/core/images/tag-button",
            "tags": "$:/tags/Image",
            "text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-tag-button tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><path d=\"M18.164 47.66l.004 4.105c.003 3.823 2.19 9.097 4.885 11.792l61.85 61.85c2.697 2.697 7.068 2.69 9.769-.01L125.767 94.3a6.903 6.903 0 00.01-9.77L63.928 22.683c-2.697-2.697-7.976-4.88-11.796-4.881l-27.076-.007a6.902 6.902 0 00-6.91 6.91l.008 9.96.287.033c3.73.411 8.489-.044 13.365-1.153a9.702 9.702 0 0111.14-3.662l.291-.13.128.285a9.7 9.7 0 013.3 2.17c3.796 3.796 3.801 9.945.012 13.734-3.618 3.618-9.386 3.777-13.204.482-5.365 1.122-10.674 1.596-15.309 1.237z\"/><path d=\"M47.633 39.532l.023.051c-9.689 4.356-21.584 6.799-30.396 5.828C5.273 44.089-1.028 36.43 2.443 24.078 5.562 12.976 14.3 4.361 24.047 1.548c10.68-3.083 19.749 1.968 19.749 13.225h-8.623c0-4.859-3.078-6.573-8.735-4.94-6.91 1.995-13.392 8.383-15.694 16.577-1.915 6.818.417 9.653 7.46 10.43 7.126.785 17.531-1.352 25.917-5.121l.027.06.036-.017c1.76-.758 6.266 6.549 3.524 7.74a2.8 2.8 0 01-.075.03z\"/></g></svg>"
        },
        "$:/core/images/theme-button": {
            "title": "$:/core/images/theme-button",
            "tags": "$:/tags/Image",
            "text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-theme-button tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><path d=\"M55.854 66.945a122.626 122.626 0 01-3.9-4.819c-11.064-14.548-16.645-6.888-22.96 0-6.315 6.888 1.664 12.47-4.33 17.335-5.993 4.866-5.623 6.552-15.737-2.35-10.115-8.9-10.815-11.351-6.172-16.43 4.644-5.08 8.524 2.918 18.01-6.108 9.485-9.026 1.517-17.026 1.517-17.026S42.03-2.824 68.42.157c26.39 2.982-9.984-3.86-19.031 27.801-3.874 13.556.72 10.362 8.066 16.087 1.707 1.33 6.428 4.732 12.671 9.318-6.129 5.879-11.157 10.669-14.273 13.582zm11.641 12.947c16.013 17.036 37.742 37.726 45.117 40.42 10.432 3.813 15.388-3.141 15.388-14.79 0-7.151-23.83-26.542-43.924-41.769-7.408 7.156-13.376 12.953-16.58 16.139z\"/><path d=\"M11.069 109.828L46.31 74.587a3.56 3.56 0 115.037-5.032l15.098 15.098a3.56 3.56 0 11-5.032 5.037l-35.24 35.241c-4.171 4.17-10.933 4.17-15.104 0-4.17-4.17-4.17-10.933 0-15.103zM124.344 6.622l5.034 5.034-7.49 12.524-7.613 2.58L61.413 79.62l-5.034-5.034 52.861-52.862 2.58-7.614 12.524-7.49z\"/></g></svg>"
        },
        "$:/core/images/timestamp-off": {
            "title": "$:/core/images/timestamp-off",
            "tags": "$:/tags/Image",
            "text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-timestamp-off tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><path d=\"M58.25 11C26.08 11 0 37.082 0 69.25s26.08 58.25 58.25 58.25c32.175 0 58.25-26.082 58.25-58.25S90.425 11 58.25 11zm0 100.5C34.914 111.5 16 92.586 16 69.25 16 45.92 34.914 27 58.25 27s42.25 18.92 42.25 42.25c0 23.336-18.914 42.25-42.25 42.25zM49.704 10a5 5 0 010-10H66.69a5 5 0 015 5c.006 2.757-2.238 5-5 5H49.705z\"/><path d=\"M58.25 35.88c-18.777 0-33.998 15.224-33.998 33.998 0 18.773 15.22 34.002 33.998 34.002 18.784 0 34.002-15.23 34.002-34.002 0-18.774-15.218-33.998-34.002-33.998zm-3.03 50.123H44.196v-34H55.22v34zm16.976 0H61.17v-34h11.025v34z\"/></g></svg>"
        },
        "$:/core/images/timestamp-on": {
            "title": "$:/core/images/timestamp-on",
            "tags": "$:/tags/Image",
            "text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-timestamp-on tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><path d=\"M58.25 11C26.08 11 0 37.082 0 69.25s26.08 58.25 58.25 58.25c32.175 0 58.25-26.082 58.25-58.25S90.425 11 58.25 11zm0 100.5C34.914 111.5 16 92.586 16 69.25 16 45.92 34.914 27 58.25 27s42.25 18.92 42.25 42.25c0 23.336-18.914 42.25-42.25 42.25zM49.704 10a5 5 0 010-10H66.69a5 5 0 015 5c.006 2.757-2.238 5-5 5H49.705z\"/><path d=\"M13.41 27.178a5.005 5.005 0 01-7.045-.613 5.008 5.008 0 01.616-7.047l9.95-8.348a5 5 0 016.429 7.661l-9.95 8.348zm89.573 0a5.005 5.005 0 007.045-.613 5.008 5.008 0 00-.616-7.047l-9.95-8.348a5 5 0 00-6.428 7.661l9.95 8.348zM65.097 71.072c0 3.826-3.09 6.928-6.897 6.928-3.804.006-6.9-3.102-6.903-6.928 0 0 4.76-39.072 6.903-39.072s6.897 39.072 6.897 39.072z\"/></g></svg>"
        },
        "$:/core/images/tip": {
            "title": "$:/core/images/tip",
            "tags": "$:/tags/Image",
            "text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-tip tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M64 128.242c35.346 0 64-28.654 64-64 0-35.346-28.654-64-64-64-35.346 0-64 28.654-64 64 0 35.346 28.654 64 64 64zm11.936-36.789c-.624 4.129-5.73 7.349-11.936 7.349-6.206 0-11.312-3.22-11.936-7.349C54.33 94.05 58.824 95.82 64 95.82c5.175 0 9.67-1.769 11.936-4.366zm0 4.492c-.624 4.13-5.73 7.349-11.936 7.349-6.206 0-11.312-3.22-11.936-7.349 2.266 2.597 6.76 4.366 11.936 4.366 5.175 0 9.67-1.769 11.936-4.366zm0 4.456c-.624 4.129-5.73 7.349-11.936 7.349-6.206 0-11.312-3.22-11.936-7.349 2.266 2.597 6.76 4.366 11.936 4.366 5.175 0 9.67-1.769 11.936-4.366zm0 4.492c-.624 4.13-5.73 7.349-11.936 7.349-6.206 0-11.312-3.22-11.936-7.349 2.266 2.597 6.76 4.366 11.936 4.366 5.175 0 9.67-1.769 11.936-4.366zM64.3 24.242c11.618 0 23.699 7.82 23.699 24.2S75.92 71.754 75.92 83.576c0 5.873-5.868 9.26-11.92 9.26s-12.027-3.006-12.027-9.26C51.973 71.147 40 65.47 40 48.442s12.683-24.2 24.301-24.2z\"/></svg>"
        },
        "$:/core/images/transcludify": {
            "title": "$:/core/images/transcludify",
            "tags": "$:/tags/Image",
            "text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-transcludify-button tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M0 59.482c.591 0 1.36-.089 2.306-.266a10.417 10.417 0 002.75-.932 6.762 6.762 0 002.306-1.907c.651-.828.976-1.863.976-3.104V35.709c0-2.01.414-3.74 1.242-5.19.828-1.448 1.833-2.66 3.016-3.636s2.425-1.7 3.726-2.173c1.3-.473 2.424-.71 3.37-.71h8.073v7.451h-4.88c-1.241 0-2.232.207-2.97.621-.74.414-1.302.932-1.686 1.552a4.909 4.909 0 00-.71 1.996c-.089.71-.133 1.39-.133 2.04v16.677c0 1.715-.325 3.134-.976 4.258-.65 1.123-1.434 2.025-2.35 2.705-.917.68-1.863 1.168-2.839 1.464-.976.296-1.818.473-2.528.532v.178c.71.059 1.552.207 2.528.443.976.237 1.922.68 2.839 1.33.916.651 1.7 1.583 2.35 2.795.65 1.212.976 2.853.976 4.923v16.144c0 .65.044 1.33.133 2.04.089.71.325 1.375.71 1.996.384.621.946 1.139 1.685 1.553.74.414 1.73.62 2.972.62h4.879v7.452h-8.073c-.946 0-2.07-.237-3.37-.71-1.301-.473-2.543-1.197-3.726-2.173-1.183-.976-2.188-2.188-3.016-3.637-.828-1.449-1.242-3.179-1.242-5.19V74.119c0-1.42-.325-2.572-.976-3.46-.65-.886-1.419-1.581-2.306-2.084a8.868 8.868 0 00-2.75-1.02C1.36 67.377.591 67.288 0 67.288v-7.806zm24.66 0c.591 0 1.36-.089 2.306-.266a10.417 10.417 0 002.75-.932 6.762 6.762 0 002.306-1.907c.65-.828.976-1.863.976-3.104V35.709c0-2.01.414-3.74 1.242-5.19.828-1.448 1.833-2.66 3.016-3.636s2.425-1.7 3.726-2.173c1.3-.473 2.424-.71 3.37-.71h8.073v7.451h-4.88c-1.241 0-2.232.207-2.97.621-.74.414-1.302.932-1.686 1.552a4.909 4.909 0 00-.71 1.996c-.089.71-.133 1.39-.133 2.04v16.677c0 1.715-.325 3.134-.976 4.258-.65 1.123-1.434 2.025-2.35 2.705-.917.68-1.863 1.168-2.839 1.464-.976.296-1.818.473-2.528.532v.178c.71.059 1.552.207 2.528.443.976.237 1.922.68 2.839 1.33.916.651 1.7 1.583 2.35 2.795.65 1.212.976 2.853.976 4.923v16.144c0 .65.044 1.33.133 2.04.089.71.325 1.375.71 1.996.384.621.946 1.139 1.685 1.553.74.414 1.73.62 2.972.62h4.879v7.452h-8.073c-.946 0-2.07-.237-3.37-.71-1.301-.473-2.543-1.197-3.726-2.173-1.183-.976-2.188-2.188-3.016-3.637-.828-1.449-1.242-3.179-1.242-5.19V74.119c0-1.42-.325-2.572-.976-3.46-.65-.886-1.419-1.581-2.306-2.084a8.868 8.868 0 00-2.75-1.02c-.946-.177-1.715-.266-2.306-.266v-7.806zm43.965-3.538L80.6 52.041l2.306 7.097-12.063 3.903 7.628 10.378-6.12 4.435-7.63-10.467-7.45 10.201-5.943-4.524 7.628-10.023-12.152-4.17 2.306-7.096 12.064 4.17V43.347h7.451v12.596zm34.425 11.344c-.65 0-1.449.089-2.395.266-.946.177-1.863.488-2.75.931a6.356 6.356 0 00-2.262 1.908c-.62.828-.931 1.862-.931 3.104v17.564c0 2.01-.414 3.74-1.242 5.189-.828 1.449-1.833 2.661-3.016 3.637s-2.425 1.7-3.726 2.173c-1.3.473-2.424.71-3.37.71h-8.073v-7.451h4.88c1.241 0 2.232-.207 2.97-.621.74-.414 1.302-.932 1.686-1.553a4.9 4.9 0 00.71-1.995c.089-.71.133-1.39.133-2.04V72.432c0-1.715.325-3.134.976-4.258.65-1.124 1.434-2.01 2.35-2.661.917-.65 1.863-1.124 2.839-1.42.976-.295 1.818-.502 2.528-.62v-.178c-.71-.059-1.552-.207-2.528-.443-.976-.237-1.922-.68-2.839-1.33-.916-.651-1.7-1.583-2.35-2.795-.65-1.212-.976-2.853-.976-4.923V37.66c0-.651-.044-1.331-.133-2.04a4.909 4.909 0 00-.71-1.997c-.384-.62-.946-1.138-1.685-1.552-.74-.414-1.73-.62-2.972-.62h-4.879V24h8.073c.946 0 2.07.237 3.37.71 1.301.473 2.543 1.197 3.726 2.173 1.183.976 2.188 2.188 3.016 3.637.828 1.449 1.242 3.178 1.242 5.189v16.943c0 1.419.31 2.572.931 3.46a6.897 6.897 0 002.262 2.084 8.868 8.868 0 002.75 1.02c.946.177 1.745.266 2.395.266v7.806zm24.66 0c-.65 0-1.449.089-2.395.266-.946.177-1.863.488-2.75.931a6.356 6.356 0 00-2.262 1.908c-.62.828-.931 1.862-.931 3.104v17.564c0 2.01-.414 3.74-1.242 5.189-.828 1.449-1.833 2.661-3.016 3.637s-2.425 1.7-3.726 2.173c-1.3.473-2.424.71-3.37.71h-8.073v-7.451h4.88c1.241 0 2.232-.207 2.97-.621.74-.414 1.302-.932 1.686-1.553a4.9 4.9 0 00.71-1.995c.089-.71.133-1.39.133-2.04V72.432c0-1.715.325-3.134.976-4.258.65-1.124 1.434-2.01 2.35-2.661.917-.65 1.863-1.124 2.839-1.42.976-.295 1.818-.502 2.528-.62v-.178c-.71-.059-1.552-.207-2.528-.443-.976-.237-1.922-.68-2.839-1.33-.916-.651-1.7-1.583-2.35-2.795-.65-1.212-.976-2.853-.976-4.923V37.66c0-.651-.044-1.331-.133-2.04a4.909 4.909 0 00-.71-1.997c-.384-.62-.946-1.138-1.685-1.552-.74-.414-1.73-.62-2.972-.62h-4.879V24h8.073c.946 0 2.07.237 3.37.71 1.301.473 2.543 1.197 3.726 2.173 1.183.976 2.188 2.188 3.016 3.637.828 1.449 1.242 3.178 1.242 5.189v16.943c0 1.419.31 2.572.931 3.46a6.897 6.897 0 002.262 2.084 8.868 8.868 0 002.75 1.02c.946.177 1.745.266 2.395.266v7.806z\"/></svg>"
        },
        "$:/core/images/twitter": {
            "title": "$:/core/images/twitter",
            "tags": "$:/tags/Image",
            "text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-twitter tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M41.626 115.803A73.376 73.376 0 012 104.235c2.022.238 4.08.36 6.166.36 12.111 0 23.258-4.117 32.105-11.023-11.312-.208-20.859-7.653-24.148-17.883a25.98 25.98 0 0011.674-.441C15.971 72.881 7.061 62.474 7.061 49.997c0-.108 0-.216.002-.323a25.824 25.824 0 0011.709 3.22c-6.936-4.617-11.5-12.5-11.5-21.433 0-4.719 1.274-9.142 3.5-12.945 12.75 15.579 31.797 25.83 53.281 26.904-.44-1.884-.67-3.85-.67-5.868 0-14.22 11.575-25.75 25.852-25.75a25.865 25.865 0 0118.869 8.132 51.892 51.892 0 0016.415-6.248c-1.93 6.012-6.029 11.059-11.366 14.246A51.844 51.844 0 00128 25.878a52.428 52.428 0 01-12.9 13.33c.05 1.104.075 2.214.075 3.33 0 34.028-26 73.265-73.549 73.265\"/></svg>"
        },
        "$:/core/images/underline": {
            "title": "$:/core/images/underline",
            "tags": "$:/tags/Image",
            "text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-underline tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M7 117.421h114.248V128H7v-10.579zm97.871-18.525V0h-16.26v55.856c0 4.463-.605 8.576-1.816 12.338-1.212 3.762-3.03 7.046-5.452 9.851-2.423 2.806-5.452 4.974-9.086 6.504-3.635 1.53-7.939 2.296-12.912 2.296-6.25 0-11.159-1.786-14.73-5.356-3.57-3.571-5.356-8.417-5.356-14.538V0H23v65.038c0 5.356.542 10.234 1.626 14.633 1.084 4.4 2.965 8.194 5.643 11.382 2.678 3.188 6.185 5.643 10.52 7.365 4.337 1.721 9.756 2.582 16.26 2.582 7.27 0 13.582-1.435 18.938-4.304 5.356-2.87 9.755-7.365 13.199-13.486h.382v15.686h15.303z\"/></svg>"
        },
        "$:/core/images/unfold-all-button": {
            "title": "$:/core/images/unfold-all-button",
            "tags": "$:/tags/Image",
            "text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-unfold-all tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><rect width=\"128\" height=\"16\" rx=\"8\"/><rect width=\"128\" height=\"16\" y=\"64\" rx=\"8\"/><path d=\"M63.945 60.624c-2.05 0-4.101-.78-5.666-2.345L35.662 35.662c-3.125-3.125-3.13-8.195-.005-11.319 3.118-3.118 8.192-3.122 11.319.005L63.94 41.314l16.966-16.966c3.124-3.124 8.194-3.129 11.318-.005 3.118 3.118 3.122 8.192-.005 11.319L69.603 58.279a7.986 7.986 0 01-5.663 2.346zM64.004 124.565c-2.05 0-4.102-.78-5.666-2.345L35.721 99.603c-3.125-3.125-3.13-8.195-.005-11.319 3.118-3.118 8.191-3.122 11.318.005L64 105.255l16.966-16.966c3.124-3.124 8.194-3.129 11.318-.005 3.118 3.118 3.122 8.192-.005 11.319L69.662 122.22a7.986 7.986 0 01-5.663 2.346z\"/></g></svg>"
        },
        "$:/core/images/unfold-button": {
            "title": "$:/core/images/unfold-button",
            "tags": "$:/tags/Image",
            "text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-unfold tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><rect width=\"128\" height=\"16\" rx=\"8\"/><path d=\"M63.945 63.624c-2.05 0-4.101-.78-5.666-2.345L35.662 38.662c-3.125-3.125-3.13-8.195-.005-11.319 3.118-3.118 8.192-3.122 11.319.005L63.94 44.314l16.966-16.966c3.124-3.124 8.194-3.129 11.318-.005 3.118 3.118 3.122 8.192-.005 11.319L69.603 61.279a7.986 7.986 0 01-5.663 2.346zM64.004 105.682c-2.05.001-4.102-.78-5.666-2.344L35.721 80.721c-3.125-3.125-3.13-8.195-.005-11.319 3.118-3.118 8.191-3.122 11.318.005L64 86.373l16.966-16.966c3.124-3.125 8.194-3.13 11.318-.005 3.118 3.118 3.122 8.192-.005 11.319l-22.617 22.617a7.986 7.986 0 01-5.663 2.346z\"/></g></svg>"
        },
        "$:/core/images/unlocked-padlock": {
            "title": "$:/core/images/unlocked-padlock",
            "tags": "$:/tags/Image",
            "text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-unlocked-padlock tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M48.627 64H105v32.01C105 113.674 90.674 128 73.001 128H56C38.318 128 24 113.677 24 96.01V64h6.136c-10.455-12.651-27.364-35.788-4.3-55.142 24.636-20.672 45.835 4.353 55.777 16.201 9.943 11.85-2.676 22.437-12.457 9.892-9.78-12.545-21.167-24.146-33.207-14.043-12.041 10.104-1.757 22.36 8.813 34.958 2.467 2.94 3.641 5.732 3.865 8.134zm19.105 28.364A8.503 8.503 0 0064.5 76a8.5 8.5 0 00-3.498 16.25l-5.095 22.77H72.8l-5.07-22.656z\"/></svg>"
        },
        "$:/core/images/up-arrow": {
            "title": "$:/core/images/up-arrow",
            "created": "20150316000544368",
            "modified": "20150316000831867",
            "tags": "$:/tags/Image",
            "text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-up-arrow tc-image-button\" viewBox=\"0 0 128 128\"><path d=\"M63.892.281c2.027 0 4.054.77 5.6 2.316l55.98 55.98a7.92 7.92 0 010 11.196c-3.086 3.085-8.104 3.092-11.196 0L63.894 19.393 13.513 69.774a7.92 7.92 0 01-11.196 0c-3.085-3.086-3.092-8.105 0-11.196l55.98-55.98A7.892 7.892 0 0163.893.28z\"/></svg>"
        },
        "$:/core/images/video": {
            "title": "$:/core/images/video",
            "tags": "$:/tags/Image",
            "text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-video tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M64 12c-34.91 0-55.273 2.917-58.182 5.833C2.91 20.75 0 41.167 0 64.5c0 23.333 2.91 43.75 5.818 46.667C8.728 114.083 29.091 117 64 117c34.91 0 55.273-2.917 58.182-5.833C125.09 108.25 128 87.833 128 64.5c0-23.333-2.91-43.75-5.818-46.667C119.272 14.917 98.909 12 64 12zm-9.084 32.618c-3.813-2.542-6.905-.879-6.905 3.698v31.368c0 4.585 3.099 6.235 6.905 3.698l22.168-14.779c3.813-2.542 3.806-6.669 0-9.206L54.916 44.618z\"/></svg>"
        },
        "$:/core/images/warning": {
            "title": "$:/core/images/warning",
            "tags": "$:/tags/Image",
            "text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-warning tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M57.072 11c3.079-5.333 10.777-5.333 13.856 0l55.426 96c3.079 5.333-.77 12-6.928 12H8.574c-6.158 0-10.007-6.667-6.928-12l55.426-96zM64 37c-4.418 0-8 3.582-8 7.994v28.012C56 77.421 59.59 81 64 81c4.418 0 8-3.582 8-7.994V44.994C72 40.579 68.41 37 64 37zm0 67a8 8 0 100-16 8 8 0 000 16z\"/></svg>"
        },
        "$:/language/Buttons/AdvancedSearch/Caption": {
            "title": "$:/language/Buttons/AdvancedSearch/Caption",
            "text": "advanced search"
        },
        "$:/language/Buttons/AdvancedSearch/Hint": {
            "title": "$:/language/Buttons/AdvancedSearch/Hint",
            "text": "Advanced search"
        },
        "$:/language/Buttons/Cancel/Caption": {
            "title": "$:/language/Buttons/Cancel/Caption",
            "text": "cancel"
        },
        "$:/language/Buttons/Cancel/Hint": {
            "title": "$:/language/Buttons/Cancel/Hint",
            "text": "Discard changes to this tiddler"
        },
        "$:/language/Buttons/Clone/Caption": {
            "title": "$:/language/Buttons/Clone/Caption",
            "text": "clone"
        },
        "$:/language/Buttons/Clone/Hint": {
            "title": "$:/language/Buttons/Clone/Hint",
            "text": "Clone this tiddler"
        },
        "$:/language/Buttons/Close/Caption": {
            "title": "$:/language/Buttons/Close/Caption",
            "text": "close"
        },
        "$:/language/Buttons/Close/Hint": {
            "title": "$:/language/Buttons/Close/Hint",
            "text": "Close this tiddler"
        },
        "$:/language/Buttons/CloseAll/Caption": {
            "title": "$:/language/Buttons/CloseAll/Caption",
            "text": "close all"
        },
        "$:/language/Buttons/CloseAll/Hint": {
            "title": "$:/language/Buttons/CloseAll/Hint",
            "text": "Close all tiddlers"
        },
        "$:/language/Buttons/CloseOthers/Caption": {
            "title": "$:/language/Buttons/CloseOthers/Caption",
            "text": "close others"
        },
        "$:/language/Buttons/CloseOthers/Hint": {
            "title": "$:/language/Buttons/CloseOthers/Hint",
            "text": "Close other tiddlers"
        },
        "$:/language/Buttons/ControlPanel/Caption": {
            "title": "$:/language/Buttons/ControlPanel/Caption",
            "text": "control panel"
        },
        "$:/language/Buttons/ControlPanel/Hint": {
            "title": "$:/language/Buttons/ControlPanel/Hint",
            "text": "Open control panel"
        },
        "$:/language/Buttons/CopyToClipboard/Caption": {
            "title": "$:/language/Buttons/CopyToClipboard/Caption",
            "text": "copy to clipboard"
        },
        "$:/language/Buttons/CopyToClipboard/Hint": {
            "title": "$:/language/Buttons/CopyToClipboard/Hint",
            "text": "Copy this text to the clipboard"
        },
        "$:/language/Buttons/Delete/Caption": {
            "title": "$:/language/Buttons/Delete/Caption",
            "text": "delete"
        },
        "$:/language/Buttons/Delete/Hint": {
            "title": "$:/language/Buttons/Delete/Hint",
            "text": "Delete this tiddler"
        },
        "$:/language/Buttons/Edit/Caption": {
            "title": "$:/language/Buttons/Edit/Caption",
            "text": "edit"
        },
        "$:/language/Buttons/Edit/Hint": {
            "title": "$:/language/Buttons/Edit/Hint",
            "text": "Edit this tiddler"
        },
        "$:/language/Buttons/Encryption/Caption": {
            "title": "$:/language/Buttons/Encryption/Caption",
            "text": "encryption"
        },
        "$:/language/Buttons/Encryption/Hint": {
            "title": "$:/language/Buttons/Encryption/Hint",
            "text": "Set or clear a password for saving this wiki"
        },
        "$:/language/Buttons/Encryption/ClearPassword/Caption": {
            "title": "$:/language/Buttons/Encryption/ClearPassword/Caption",
            "text": "clear password"
        },
        "$:/language/Buttons/Encryption/ClearPassword/Hint": {
            "title": "$:/language/Buttons/Encryption/ClearPassword/Hint",
            "text": "Clear the password and save this wiki without encryption"
        },
        "$:/language/Buttons/Encryption/SetPassword/Caption": {
            "title": "$:/language/Buttons/Encryption/SetPassword/Caption",
            "text": "set password"
        },
        "$:/language/Buttons/Encryption/SetPassword/Hint": {
            "title": "$:/language/Buttons/Encryption/SetPassword/Hint",
            "text": "Set a password for saving this wiki with encryption"
        },
        "$:/language/Buttons/ExportPage/Caption": {
            "title": "$:/language/Buttons/ExportPage/Caption",
            "text": "export all"
        },
        "$:/language/Buttons/ExportPage/Hint": {
            "title": "$:/language/Buttons/ExportPage/Hint",
            "text": "Export all tiddlers"
        },
        "$:/language/Buttons/ExportTiddler/Caption": {
            "title": "$:/language/Buttons/ExportTiddler/Caption",
            "text": "export tiddler"
        },
        "$:/language/Buttons/ExportTiddler/Hint": {
            "title": "$:/language/Buttons/ExportTiddler/Hint",
            "text": "Export tiddler"
        },
        "$:/language/Buttons/ExportTiddlers/Caption": {
            "title": "$:/language/Buttons/ExportTiddlers/Caption",
            "text": "export tiddlers"
        },
        "$:/language/Buttons/ExportTiddlers/Hint": {
            "title": "$:/language/Buttons/ExportTiddlers/Hint",
            "text": "Export tiddlers"
        },
        "$:/language/Buttons/SidebarSearch/Hint": {
            "title": "$:/language/Buttons/SidebarSearch/Hint",
            "text": "Select the sidebar search field"
        },
        "$:/language/Buttons/Fold/Caption": {
            "title": "$:/language/Buttons/Fold/Caption",
            "text": "fold tiddler"
        },
        "$:/language/Buttons/Fold/Hint": {
            "title": "$:/language/Buttons/Fold/Hint",
            "text": "Fold the body of this tiddler"
        },
        "$:/language/Buttons/Fold/FoldBar/Caption": {
            "title": "$:/language/Buttons/Fold/FoldBar/Caption",
            "text": "fold-bar"
        },
        "$:/language/Buttons/Fold/FoldBar/Hint": {
            "title": "$:/language/Buttons/Fold/FoldBar/Hint",
            "text": "Optional bars to fold and unfold tiddlers"
        },
        "$:/language/Buttons/Unfold/Caption": {
            "title": "$:/language/Buttons/Unfold/Caption",
            "text": "unfold tiddler"
        },
        "$:/language/Buttons/Unfold/Hint": {
            "title": "$:/language/Buttons/Unfold/Hint",
            "text": "Unfold the body of this tiddler"
        },
        "$:/language/Buttons/FoldOthers/Caption": {
            "title": "$:/language/Buttons/FoldOthers/Caption",
            "text": "fold other tiddlers"
        },
        "$:/language/Buttons/FoldOthers/Hint": {
            "title": "$:/language/Buttons/FoldOthers/Hint",
            "text": "Fold the bodies of other opened tiddlers"
        },
        "$:/language/Buttons/FoldAll/Caption": {
            "title": "$:/language/Buttons/FoldAll/Caption",
            "text": "fold all tiddlers"
        },
        "$:/language/Buttons/FoldAll/Hint": {
            "title": "$:/language/Buttons/FoldAll/Hint",
            "text": "Fold the bodies of all opened tiddlers"
        },
        "$:/language/Buttons/UnfoldAll/Caption": {
            "title": "$:/language/Buttons/UnfoldAll/Caption",
            "text": "unfold all tiddlers"
        },
        "$:/language/Buttons/UnfoldAll/Hint": {
            "title": "$:/language/Buttons/UnfoldAll/Hint",
            "text": "Unfold the bodies of all opened tiddlers"
        },
        "$:/language/Buttons/FullScreen/Caption": {
            "title": "$:/language/Buttons/FullScreen/Caption",
            "text": "full-screen"
        },
        "$:/language/Buttons/FullScreen/Hint": {
            "title": "$:/language/Buttons/FullScreen/Hint",
            "text": "Enter or leave full-screen mode"
        },
        "$:/language/Buttons/Help/Caption": {
            "title": "$:/language/Buttons/Help/Caption",
            "text": "help"
        },
        "$:/language/Buttons/Help/Hint": {
            "title": "$:/language/Buttons/Help/Hint",
            "text": "Show help panel"
        },
        "$:/language/Buttons/Import/Caption": {
            "title": "$:/language/Buttons/Import/Caption",
            "text": "import"
        },
        "$:/language/Buttons/Import/Hint": {
            "title": "$:/language/Buttons/Import/Hint",
            "text": "Import many types of file including text, image, TiddlyWiki or JSON"
        },
        "$:/language/Buttons/Info/Caption": {
            "title": "$:/language/Buttons/Info/Caption",
            "text": "info"
        },
        "$:/language/Buttons/Info/Hint": {
            "title": "$:/language/Buttons/Info/Hint",
            "text": "Show information for this tiddler"
        },
        "$:/language/Buttons/Home/Caption": {
            "title": "$:/language/Buttons/Home/Caption",
            "text": "home"
        },
        "$:/language/Buttons/Home/Hint": {
            "title": "$:/language/Buttons/Home/Hint",
            "text": "Open the default tiddlers"
        },
        "$:/language/Buttons/Language/Caption": {
            "title": "$:/language/Buttons/Language/Caption",
            "text": "language"
        },
        "$:/language/Buttons/Language/Hint": {
            "title": "$:/language/Buttons/Language/Hint",
            "text": "Choose the user interface language"
        },
        "$:/language/Buttons/Manager/Caption": {
            "title": "$:/language/Buttons/Manager/Caption",
            "text": "tiddler manager"
        },
        "$:/language/Buttons/Manager/Hint": {
            "title": "$:/language/Buttons/Manager/Hint",
            "text": "Open tiddler manager"
        },
        "$:/language/Buttons/More/Caption": {
            "title": "$:/language/Buttons/More/Caption",
            "text": "more"
        },
        "$:/language/Buttons/More/Hint": {
            "title": "$:/language/Buttons/More/Hint",
            "text": "More actions"
        },
        "$:/language/Buttons/NewHere/Caption": {
            "title": "$:/language/Buttons/NewHere/Caption",
            "text": "new here"
        },
        "$:/language/Buttons/NewHere/Hint": {
            "title": "$:/language/Buttons/NewHere/Hint",
            "text": "Create a new tiddler tagged with this one"
        },
        "$:/language/Buttons/NewJournal/Caption": {
            "title": "$:/language/Buttons/NewJournal/Caption",
            "text": "new journal"
        },
        "$:/language/Buttons/NewJournal/Hint": {
            "title": "$:/language/Buttons/NewJournal/Hint",
            "text": "Create a new journal tiddler"
        },
        "$:/language/Buttons/NewJournalHere/Caption": {
            "title": "$:/language/Buttons/NewJournalHere/Caption",
            "text": "new journal here"
        },
        "$:/language/Buttons/NewJournalHere/Hint": {
            "title": "$:/language/Buttons/NewJournalHere/Hint",
            "text": "Create a new journal tiddler tagged with this one"
        },
        "$:/language/Buttons/NewImage/Caption": {
            "title": "$:/language/Buttons/NewImage/Caption",
            "text": "new image"
        },
        "$:/language/Buttons/NewImage/Hint": {
            "title": "$:/language/Buttons/NewImage/Hint",
            "text": "Create a new image tiddler"
        },
        "$:/language/Buttons/NewMarkdown/Caption": {
            "title": "$:/language/Buttons/NewMarkdown/Caption",
            "text": "new Markdown tiddler"
        },
        "$:/language/Buttons/NewMarkdown/Hint": {
            "title": "$:/language/Buttons/NewMarkdown/Hint",
            "text": "Create a new Markdown tiddler"
        },
        "$:/language/Buttons/NewTiddler/Caption": {
            "title": "$:/language/Buttons/NewTiddler/Caption",
            "text": "new tiddler"
        },
        "$:/language/Buttons/NewTiddler/Hint": {
            "title": "$:/language/Buttons/NewTiddler/Hint",
            "text": "Create a new tiddler"
        },
        "$:/language/Buttons/OpenWindow/Caption": {
            "title": "$:/language/Buttons/OpenWindow/Caption",
            "text": "open in new window"
        },
        "$:/language/Buttons/OpenWindow/Hint": {
            "title": "$:/language/Buttons/OpenWindow/Hint",
            "text": "Open tiddler in new window"
        },
        "$:/language/Buttons/Palette/Caption": {
            "title": "$:/language/Buttons/Palette/Caption",
            "text": "palette"
        },
        "$:/language/Buttons/Palette/Hint": {
            "title": "$:/language/Buttons/Palette/Hint",
            "text": "Choose the colour palette"
        },
        "$:/language/Buttons/Permalink/Caption": {
            "title": "$:/language/Buttons/Permalink/Caption",
            "text": "permalink"
        },
        "$:/language/Buttons/Permalink/Hint": {
            "title": "$:/language/Buttons/Permalink/Hint",
            "text": "Set browser address bar to a direct link to this tiddler"
        },
        "$:/language/Buttons/Permaview/Caption": {
            "title": "$:/language/Buttons/Permaview/Caption",
            "text": "permaview"
        },
        "$:/language/Buttons/Permaview/Hint": {
            "title": "$:/language/Buttons/Permaview/Hint",
            "text": "Set browser address bar to a direct link to all the tiddlers in this story"
        },
        "$:/language/Buttons/Print/Caption": {
            "title": "$:/language/Buttons/Print/Caption",
            "text": "print page"
        },
        "$:/language/Buttons/Print/Hint": {
            "title": "$:/language/Buttons/Print/Hint",
            "text": "Print the current page"
        },
        "$:/language/Buttons/Refresh/Caption": {
            "title": "$:/language/Buttons/Refresh/Caption",
            "text": "refresh"
        },
        "$:/language/Buttons/Refresh/Hint": {
            "title": "$:/language/Buttons/Refresh/Hint",
            "text": "Perform a full refresh of the wiki"
        },
        "$:/language/Buttons/Save/Caption": {
            "title": "$:/language/Buttons/Save/Caption",
            "text": "ok"
        },
        "$:/language/Buttons/Save/Hint": {
            "title": "$:/language/Buttons/Save/Hint",
            "text": "Confirm changes to this tiddler"
        },
        "$:/language/Buttons/SaveWiki/Caption": {
            "title": "$:/language/Buttons/SaveWiki/Caption",
            "text": "save changes"
        },
        "$:/language/Buttons/SaveWiki/Hint": {
            "title": "$:/language/Buttons/SaveWiki/Hint",
            "text": "Save changes"
        },
        "$:/language/Buttons/StoryView/Caption": {
            "title": "$:/language/Buttons/StoryView/Caption",
            "text": "storyview"
        },
        "$:/language/Buttons/StoryView/Hint": {
            "title": "$:/language/Buttons/StoryView/Hint",
            "text": "Choose the story visualisation"
        },
        "$:/language/Buttons/HideSideBar/Caption": {
            "title": "$:/language/Buttons/HideSideBar/Caption",
            "text": "hide sidebar"
        },
        "$:/language/Buttons/HideSideBar/Hint": {
            "title": "$:/language/Buttons/HideSideBar/Hint",
            "text": "Hide sidebar"
        },
        "$:/language/Buttons/ShowSideBar/Caption": {
            "title": "$:/language/Buttons/ShowSideBar/Caption",
            "text": "show sidebar"
        },
        "$:/language/Buttons/ShowSideBar/Hint": {
            "title": "$:/language/Buttons/ShowSideBar/Hint",
            "text": "Show sidebar"
        },
        "$:/language/Buttons/TagManager/Caption": {
            "title": "$:/language/Buttons/TagManager/Caption",
            "text": "tag manager"
        },
        "$:/language/Buttons/TagManager/Hint": {
            "title": "$:/language/Buttons/TagManager/Hint",
            "text": "Open tag manager"
        },
        "$:/language/Buttons/Timestamp/Caption": {
            "title": "$:/language/Buttons/Timestamp/Caption",
            "text": "timestamps"
        },
        "$:/language/Buttons/Timestamp/Hint": {
            "title": "$:/language/Buttons/Timestamp/Hint",
            "text": "Choose whether modifications update timestamps"
        },
        "$:/language/Buttons/Timestamp/On/Caption": {
            "title": "$:/language/Buttons/Timestamp/On/Caption",
            "text": "timestamps are on"
        },
        "$:/language/Buttons/Timestamp/On/Hint": {
            "title": "$:/language/Buttons/Timestamp/On/Hint",
            "text": "Update timestamps when tiddlers are modified"
        },
        "$:/language/Buttons/Timestamp/Off/Caption": {
            "title": "$:/language/Buttons/Timestamp/Off/Caption",
            "text": "timestamps are off"
        },
        "$:/language/Buttons/Timestamp/Off/Hint": {
            "title": "$:/language/Buttons/Timestamp/Off/Hint",
            "text": "Don't update timestamps when tiddlers are modified"
        },
        "$:/language/Buttons/Theme/Caption": {
            "title": "$:/language/Buttons/Theme/Caption",
            "text": "theme"
        },
        "$:/language/Buttons/Theme/Hint": {
            "title": "$:/language/Buttons/Theme/Hint",
            "text": "Choose the display theme"
        },
        "$:/language/Buttons/Bold/Caption": {
            "title": "$:/language/Buttons/Bold/Caption",
            "text": "bold"
        },
        "$:/language/Buttons/Bold/Hint": {
            "title": "$:/language/Buttons/Bold/Hint",
            "text": "Apply bold formatting to selection"
        },
        "$:/language/Buttons/Clear/Caption": {
            "title": "$:/language/Buttons/Clear/Caption",
            "text": "clear"
        },
        "$:/language/Buttons/Clear/Hint": {
            "title": "$:/language/Buttons/Clear/Hint",
            "text": "Clear image to solid colour"
        },
        "$:/language/Buttons/EditorHeight/Caption": {
            "title": "$:/language/Buttons/EditorHeight/Caption",
            "text": "editor height"
        },
        "$:/language/Buttons/EditorHeight/Caption/Auto": {
            "title": "$:/language/Buttons/EditorHeight/Caption/Auto",
            "text": "Automatically adjust height to fit content"
        },
        "$:/language/Buttons/EditorHeight/Caption/Fixed": {
            "title": "$:/language/Buttons/EditorHeight/Caption/Fixed",
            "text": "Fixed height:"
        },
        "$:/language/Buttons/EditorHeight/Hint": {
            "title": "$:/language/Buttons/EditorHeight/Hint",
            "text": "Choose the height of the text editor"
        },
        "$:/language/Buttons/Excise/Caption": {
            "title": "$:/language/Buttons/Excise/Caption",
            "text": "excise"
        },
        "$:/language/Buttons/Excise/Caption/Excise": {
            "title": "$:/language/Buttons/Excise/Caption/Excise",
            "text": "Perform excision"
        },
        "$:/language/Buttons/Excise/Caption/MacroName": {
            "title": "$:/language/Buttons/Excise/Caption/MacroName",
            "text": "Macro name:"
        },
        "$:/language/Buttons/Excise/Caption/NewTitle": {
            "title": "$:/language/Buttons/Excise/Caption/NewTitle",
            "text": "Title of new tiddler:"
        },
        "$:/language/Buttons/Excise/Caption/Replace": {
            "title": "$:/language/Buttons/Excise/Caption/Replace",
            "text": "Replace excised text with:"
        },
        "$:/language/Buttons/Excise/Caption/Replace/Macro": {
            "title": "$:/language/Buttons/Excise/Caption/Replace/Macro",
            "text": "macro"
        },
        "$:/language/Buttons/Excise/Caption/Replace/Link": {
            "title": "$:/language/Buttons/Excise/Caption/Replace/Link",
            "text": "link"
        },
        "$:/language/Buttons/Excise/Caption/Replace/Transclusion": {
            "title": "$:/language/Buttons/Excise/Caption/Replace/Transclusion",
            "text": "transclusion"
        },
        "$:/language/Buttons/Excise/Caption/Tag": {
            "title": "$:/language/Buttons/Excise/Caption/Tag",
            "text": "Tag new tiddler with the title of this tiddler"
        },
        "$:/language/Buttons/Excise/Caption/TiddlerExists": {
            "title": "$:/language/Buttons/Excise/Caption/TiddlerExists",
            "text": "Warning: tiddler already exists"
        },
        "$:/language/Buttons/Excise/Hint": {
            "title": "$:/language/Buttons/Excise/Hint",
            "text": "Excise the selected text into a new tiddler"
        },
        "$:/language/Buttons/Heading1/Caption": {
            "title": "$:/language/Buttons/Heading1/Caption",
            "text": "heading 1"
        },
        "$:/language/Buttons/Heading1/Hint": {
            "title": "$:/language/Buttons/Heading1/Hint",
            "text": "Apply heading level 1 formatting to lines containing selection"
        },
        "$:/language/Buttons/Heading2/Caption": {
            "title": "$:/language/Buttons/Heading2/Caption",
            "text": "heading 2"
        },
        "$:/language/Buttons/Heading2/Hint": {
            "title": "$:/language/Buttons/Heading2/Hint",
            "text": "Apply heading level 2 formatting to lines containing selection"
        },
        "$:/language/Buttons/Heading3/Caption": {
            "title": "$:/language/Buttons/Heading3/Caption",
            "text": "heading 3"
        },
        "$:/language/Buttons/Heading3/Hint": {
            "title": "$:/language/Buttons/Heading3/Hint",
            "text": "Apply heading level 3 formatting to lines containing selection"
        },
        "$:/language/Buttons/Heading4/Caption": {
            "title": "$:/language/Buttons/Heading4/Caption",
            "text": "heading 4"
        },
        "$:/language/Buttons/Heading4/Hint": {
            "title": "$:/language/Buttons/Heading4/Hint",
            "text": "Apply heading level 4 formatting to lines containing selection"
        },
        "$:/language/Buttons/Heading5/Caption": {
            "title": "$:/language/Buttons/Heading5/Caption",
            "text": "heading 5"
        },
        "$:/language/Buttons/Heading5/Hint": {
            "title": "$:/language/Buttons/Heading5/Hint",
            "text": "Apply heading level 5 formatting to lines containing selection"
        },
        "$:/language/Buttons/Heading6/Caption": {
            "title": "$:/language/Buttons/Heading6/Caption",
            "text": "heading 6"
        },
        "$:/language/Buttons/Heading6/Hint": {
            "title": "$:/language/Buttons/Heading6/Hint",
            "text": "Apply heading level 6 formatting to lines containing selection"
        },
        "$:/language/Buttons/Italic/Caption": {
            "title": "$:/language/Buttons/Italic/Caption",
            "text": "italic"
        },
        "$:/language/Buttons/Italic/Hint": {
            "title": "$:/language/Buttons/Italic/Hint",
            "text": "Apply italic formatting to selection"
        },
        "$:/language/Buttons/LineWidth/Caption": {
            "title": "$:/language/Buttons/LineWidth/Caption",
            "text": "line width"
        },
        "$:/language/Buttons/LineWidth/Hint": {
            "title": "$:/language/Buttons/LineWidth/Hint",
            "text": "Set line width for painting"
        },
        "$:/language/Buttons/Link/Caption": {
            "title": "$:/language/Buttons/Link/Caption",
            "text": "link"
        },
        "$:/language/Buttons/Link/Hint": {
            "title": "$:/language/Buttons/Link/Hint",
            "text": "Create wikitext link"
        },
        "$:/language/Buttons/Linkify/Caption": {
            "title": "$:/language/Buttons/Linkify/Caption",
            "text": "wikilink"
        },
        "$:/language/Buttons/Linkify/Hint": {
            "title": "$:/language/Buttons/Linkify/Hint",
            "text": "Wrap selection in square brackets"
        },
        "$:/language/Buttons/ListBullet/Caption": {
            "title": "$:/language/Buttons/ListBullet/Caption",
            "text": "bulleted list"
        },
        "$:/language/Buttons/ListBullet/Hint": {
            "title": "$:/language/Buttons/ListBullet/Hint",
            "text": "Apply bulleted list formatting to lines containing selection"
        },
        "$:/language/Buttons/ListNumber/Caption": {
            "title": "$:/language/Buttons/ListNumber/Caption",
            "text": "numbered list"
        },
        "$:/language/Buttons/ListNumber/Hint": {
            "title": "$:/language/Buttons/ListNumber/Hint",
            "text": "Apply numbered list formatting to lines containing selection"
        },
        "$:/language/Buttons/MonoBlock/Caption": {
            "title": "$:/language/Buttons/MonoBlock/Caption",
            "text": "monospaced block"
        },
        "$:/language/Buttons/MonoBlock/Hint": {
            "title": "$:/language/Buttons/MonoBlock/Hint",
            "text": "Apply monospaced block formatting to lines containing selection"
        },
        "$:/language/Buttons/MonoLine/Caption": {
            "title": "$:/language/Buttons/MonoLine/Caption",
            "text": "monospaced"
        },
        "$:/language/Buttons/MonoLine/Hint": {
            "title": "$:/language/Buttons/MonoLine/Hint",
            "text": "Apply monospaced character formatting to selection"
        },
        "$:/language/Buttons/Opacity/Caption": {
            "title": "$:/language/Buttons/Opacity/Caption",
            "text": "opacity"
        },
        "$:/language/Buttons/Opacity/Hint": {
            "title": "$:/language/Buttons/Opacity/Hint",
            "text": "Set painting opacity"
        },
        "$:/language/Buttons/Paint/Caption": {
            "title": "$:/language/Buttons/Paint/Caption",
            "text": "paint colour"
        },
        "$:/language/Buttons/Paint/Hint": {
            "title": "$:/language/Buttons/Paint/Hint",
            "text": "Set painting colour"
        },
        "$:/language/Buttons/Picture/Caption": {
            "title": "$:/language/Buttons/Picture/Caption",
            "text": "picture"
        },
        "$:/language/Buttons/Picture/Hint": {
            "title": "$:/language/Buttons/Picture/Hint",
            "text": "Insert picture"
        },
        "$:/language/Buttons/Preview/Caption": {
            "title": "$:/language/Buttons/Preview/Caption",
            "text": "preview"
        },
        "$:/language/Buttons/Preview/Hint": {
            "title": "$:/language/Buttons/Preview/Hint",
            "text": "Show preview pane"
        },
        "$:/language/Buttons/PreviewType/Caption": {
            "title": "$:/language/Buttons/PreviewType/Caption",
            "text": "preview type"
        },
        "$:/language/Buttons/PreviewType/Hint": {
            "title": "$:/language/Buttons/PreviewType/Hint",
            "text": "Choose preview type"
        },
        "$:/language/Buttons/Quote/Caption": {
            "title": "$:/language/Buttons/Quote/Caption",
            "text": "quote"
        },
        "$:/language/Buttons/Quote/Hint": {
            "title": "$:/language/Buttons/Quote/Hint",
            "text": "Apply quoted text formatting to lines containing selection"
        },
        "$:/language/Buttons/RotateLeft/Caption": {
            "title": "$:/language/Buttons/RotateLeft/Caption",
            "text": "rotate left"
        },
        "$:/language/Buttons/RotateLeft/Hint": {
            "title": "$:/language/Buttons/RotateLeft/Hint",
            "text": "Rotate image left by 90 degrees"
        },
        "$:/language/Buttons/Size/Caption": {
            "title": "$:/language/Buttons/Size/Caption",
            "text": "image size"
        },
        "$:/language/Buttons/Size/Caption/Height": {
            "title": "$:/language/Buttons/Size/Caption/Height",
            "text": "Height:"
        },
        "$:/language/Buttons/Size/Caption/Resize": {
            "title": "$:/language/Buttons/Size/Caption/Resize",
            "text": "Resize image"
        },
        "$:/language/Buttons/Size/Caption/Width": {
            "title": "$:/language/Buttons/Size/Caption/Width",
            "text": "Width:"
        },
        "$:/language/Buttons/Size/Hint": {
            "title": "$:/language/Buttons/Size/Hint",
            "text": "Set image size"
        },
        "$:/language/Buttons/Stamp/Caption": {
            "title": "$:/language/Buttons/Stamp/Caption",
            "text": "stamp"
        },
        "$:/language/Buttons/Stamp/Caption/New": {
            "title": "$:/language/Buttons/Stamp/Caption/New",
            "text": "Add your own"
        },
        "$:/language/Buttons/Stamp/Hint": {
            "title": "$:/language/Buttons/Stamp/Hint",
            "text": "Insert a preconfigured snippet of text"
        },
        "$:/language/Buttons/Stamp/New/Title": {
            "title": "$:/language/Buttons/Stamp/New/Title",
            "text": "Name as shown in menu"
        },
        "$:/language/Buttons/Stamp/New/Text": {
            "title": "$:/language/Buttons/Stamp/New/Text",
            "text": "Text of snippet. (Remember to add a descriptive title in the caption field)."
        },
        "$:/language/Buttons/Strikethrough/Caption": {
            "title": "$:/language/Buttons/Strikethrough/Caption",
            "text": "strikethrough"
        },
        "$:/language/Buttons/Strikethrough/Hint": {
            "title": "$:/language/Buttons/Strikethrough/Hint",
            "text": "Apply strikethrough formatting to selection"
        },
        "$:/language/Buttons/Subscript/Caption": {
            "title": "$:/language/Buttons/Subscript/Caption",
            "text": "subscript"
        },
        "$:/language/Buttons/Subscript/Hint": {
            "title": "$:/language/Buttons/Subscript/Hint",
            "text": "Apply subscript formatting to selection"
        },
        "$:/language/Buttons/Superscript/Caption": {
            "title": "$:/language/Buttons/Superscript/Caption",
            "text": "superscript"
        },
        "$:/language/Buttons/Superscript/Hint": {
            "title": "$:/language/Buttons/Superscript/Hint",
            "text": "Apply superscript formatting to selection"
        },
        "$:/language/Buttons/ToggleSidebar/Hint": {
            "title": "$:/language/Buttons/ToggleSidebar/Hint",
            "text": "Toggle the sidebar visibility"
        },
        "$:/language/Buttons/Transcludify/Caption": {
            "title": "$:/language/Buttons/Transcludify/Caption",
            "text": "transclusion"
        },
        "$:/language/Buttons/Transcludify/Hint": {
            "title": "$:/language/Buttons/Transcludify/Hint",
            "text": "Wrap selection in curly brackets"
        },
        "$:/language/Buttons/Underline/Caption": {
            "title": "$:/language/Buttons/Underline/Caption",
            "text": "underline"
        },
        "$:/language/Buttons/Underline/Hint": {
            "title": "$:/language/Buttons/Underline/Hint",
            "text": "Apply underline formatting to selection"
        },
        "$:/language/ControlPanel/Advanced/Caption": {
            "title": "$:/language/ControlPanel/Advanced/Caption",
            "text": "Advanced"
        },
        "$:/language/ControlPanel/Advanced/Hint": {
            "title": "$:/language/ControlPanel/Advanced/Hint",
            "text": "Internal information about this TiddlyWiki"
        },
        "$:/language/ControlPanel/Appearance/Caption": {
            "title": "$:/language/ControlPanel/Appearance/Caption",
            "text": "Appearance"
        },
        "$:/language/ControlPanel/Appearance/Hint": {
            "title": "$:/language/ControlPanel/Appearance/Hint",
            "text": "Ways to customise the appearance of your TiddlyWiki."
        },
        "$:/language/ControlPanel/Basics/AnimDuration/Prompt": {
            "title": "$:/language/ControlPanel/Basics/AnimDuration/Prompt",
            "text": "Animation duration"
        },
        "$:/language/ControlPanel/Basics/AutoFocus/Prompt": {
            "title": "$:/language/ControlPanel/Basics/AutoFocus/Prompt",
            "text": "Default focus field for new tiddlers"
        },
        "$:/language/ControlPanel/Basics/Caption": {
            "title": "$:/language/ControlPanel/Basics/Caption",
            "text": "Basics"
        },
        "$:/language/ControlPanel/Basics/DefaultTiddlers/BottomHint": {
            "title": "$:/language/ControlPanel/Basics/DefaultTiddlers/BottomHint",
            "text": "Use &#91;&#91;double square brackets&#93;&#93; for titles with spaces. Or you can choose to <$button set=\"$:/DefaultTiddlers\" setTo=\"[list[$:/StoryList]]\">retain story ordering</$button>"
        },
        "$:/language/ControlPanel/Basics/DefaultTiddlers/Prompt": {
            "title": "$:/language/ControlPanel/Basics/DefaultTiddlers/Prompt",
            "text": "Default tiddlers"
        },
        "$:/language/ControlPanel/Basics/DefaultTiddlers/TopHint": {
            "title": "$:/language/ControlPanel/Basics/DefaultTiddlers/TopHint",
            "text": "Choose which tiddlers are displayed at startup"
        },
        "$:/language/ControlPanel/Basics/Language/Prompt": {
            "title": "$:/language/ControlPanel/Basics/Language/Prompt",
            "text": "Hello! Current language:"
        },
        "$:/language/ControlPanel/Basics/NewJournal/Title/Prompt": {
            "title": "$:/language/ControlPanel/Basics/NewJournal/Title/Prompt",
            "text": "Title of new journal tiddlers"
        },
        "$:/language/ControlPanel/Basics/NewJournal/Text/Prompt": {
            "title": "$:/language/ControlPanel/Basics/NewJournal/Text/Prompt",
            "text": "Text for new journal tiddlers"
        },
        "$:/language/ControlPanel/Basics/NewJournal/Tags/Prompt": {
            "title": "$:/language/ControlPanel/Basics/NewJournal/Tags/Prompt",
            "text": "Tags for new journal tiddlers"
        },
        "$:/language/ControlPanel/Basics/NewTiddler/Title/Prompt": {
            "title": "$:/language/ControlPanel/Basics/NewTiddler/Title/Prompt",
            "text": "Title of new tiddlers"
        },
        "$:/language/ControlPanel/Basics/NewTiddler/Tags/Prompt": {
            "title": "$:/language/ControlPanel/Basics/NewTiddler/Tags/Prompt",
            "text": "Tags for new tiddlers"
        },
        "$:/language/ControlPanel/Basics/OverriddenShadowTiddlers/Prompt": {
            "title": "$:/language/ControlPanel/Basics/OverriddenShadowTiddlers/Prompt",
            "text": "Number of overridden shadow tiddlers"
        },
        "$:/language/ControlPanel/Basics/RemoveTags": {
            "title": "$:/language/ControlPanel/Basics/RemoveTags",
            "text": "Update to current format"
        },
        "$:/language/ControlPanel/Basics/RemoveTags/Hint": {
            "title": "$:/language/ControlPanel/Basics/RemoveTags/Hint",
            "text": "Update the tags configuration to the latest format"
        },
        "$:/language/ControlPanel/Basics/ShadowTiddlers/Prompt": {
            "title": "$:/language/ControlPanel/Basics/ShadowTiddlers/Prompt",
            "text": "Number of shadow tiddlers"
        },
        "$:/language/ControlPanel/Basics/Subtitle/Prompt": {
            "title": "$:/language/ControlPanel/Basics/Subtitle/Prompt",
            "text": "Subtitle"
        },
        "$:/language/ControlPanel/Basics/SystemTiddlers/Prompt": {
            "title": "$:/language/ControlPanel/Basics/SystemTiddlers/Prompt",
            "text": "Number of system tiddlers"
        },
        "$:/language/ControlPanel/Basics/Tags/Prompt": {
            "title": "$:/language/ControlPanel/Basics/Tags/Prompt",
            "text": "Number of tags"
        },
        "$:/language/ControlPanel/Basics/Tiddlers/Prompt": {
            "title": "$:/language/ControlPanel/Basics/Tiddlers/Prompt",
            "text": "Number of tiddlers"
        },
        "$:/language/ControlPanel/Basics/Title/Prompt": {
            "title": "$:/language/ControlPanel/Basics/Title/Prompt",
            "text": "Title of this ~TiddlyWiki"
        },
        "$:/language/ControlPanel/Basics/Username/Prompt": {
            "title": "$:/language/ControlPanel/Basics/Username/Prompt",
            "text": "Username for signing edits"
        },
        "$:/language/ControlPanel/Basics/Version/Prompt": {
            "title": "$:/language/ControlPanel/Basics/Version/Prompt",
            "text": "~TiddlyWiki version"
        },
        "$:/language/ControlPanel/EditorTypes/Caption": {
            "title": "$:/language/ControlPanel/EditorTypes/Caption",
            "text": "Editor Types"
        },
        "$:/language/ControlPanel/EditorTypes/Editor/Caption": {
            "title": "$:/language/ControlPanel/EditorTypes/Editor/Caption",
            "text": "Editor"
        },
        "$:/language/ControlPanel/EditorTypes/Hint": {
            "title": "$:/language/ControlPanel/EditorTypes/Hint",
            "text": "These tiddlers determine which editor is used to edit specific tiddler types."
        },
        "$:/language/ControlPanel/EditorTypes/Type/Caption": {
            "title": "$:/language/ControlPanel/EditorTypes/Type/Caption",
            "text": "Type"
        },
        "$:/language/ControlPanel/Info/Caption": {
            "title": "$:/language/ControlPanel/Info/Caption",
            "text": "Info"
        },
        "$:/language/ControlPanel/Info/Hint": {
            "title": "$:/language/ControlPanel/Info/Hint",
            "text": "Information about this TiddlyWiki"
        },
        "$:/language/ControlPanel/KeyboardShortcuts/Add/Prompt": {
            "title": "$:/language/ControlPanel/KeyboardShortcuts/Add/Prompt",
            "text": "Type shortcut here"
        },
        "$:/language/ControlPanel/KeyboardShortcuts/Add/Caption": {
            "title": "$:/language/ControlPanel/KeyboardShortcuts/Add/Caption",
            "text": "add shortcut"
        },
        "$:/language/ControlPanel/KeyboardShortcuts/Caption": {
            "title": "$:/language/ControlPanel/KeyboardShortcuts/Caption",
            "text": "Keyboard Shortcuts"
        },
        "$:/language/ControlPanel/KeyboardShortcuts/Hint": {
            "title": "$:/language/ControlPanel/KeyboardShortcuts/Hint",
            "text": "Manage keyboard shortcut assignments"
        },
        "$:/language/ControlPanel/KeyboardShortcuts/NoShortcuts/Caption": {
            "title": "$:/language/ControlPanel/KeyboardShortcuts/NoShortcuts/Caption",
            "text": "No keyboard shortcuts assigned"
        },
        "$:/language/ControlPanel/KeyboardShortcuts/Remove/Hint": {
            "title": "$:/language/ControlPanel/KeyboardShortcuts/Remove/Hint",
            "text": "remove keyboard shortcut"
        },
        "$:/language/ControlPanel/KeyboardShortcuts/Platform/All": {
            "title": "$:/language/ControlPanel/KeyboardShortcuts/Platform/All",
            "text": "All platforms"
        },
        "$:/language/ControlPanel/KeyboardShortcuts/Platform/Mac": {
            "title": "$:/language/ControlPanel/KeyboardShortcuts/Platform/Mac",
            "text": "Macintosh platform only"
        },
        "$:/language/ControlPanel/KeyboardShortcuts/Platform/NonMac": {
            "title": "$:/language/ControlPanel/KeyboardShortcuts/Platform/NonMac",
            "text": "Non-Macintosh platforms only"
        },
        "$:/language/ControlPanel/KeyboardShortcuts/Platform/Linux": {
            "title": "$:/language/ControlPanel/KeyboardShortcuts/Platform/Linux",
            "text": "Linux platform only"
        },
        "$:/language/ControlPanel/KeyboardShortcuts/Platform/NonLinux": {
            "title": "$:/language/ControlPanel/KeyboardShortcuts/Platform/NonLinux",
            "text": "Non-Linux platforms only"
        },
        "$:/language/ControlPanel/KeyboardShortcuts/Platform/Windows": {
            "title": "$:/language/ControlPanel/KeyboardShortcuts/Platform/Windows",
            "text": "Windows platform only"
        },
        "$:/language/ControlPanel/KeyboardShortcuts/Platform/NonWindows": {
            "title": "$:/language/ControlPanel/KeyboardShortcuts/Platform/NonWindows",
            "text": "Non-Windows platforms only"
        },
        "$:/language/ControlPanel/LayoutSwitcher/Caption": {
            "title": "$:/language/ControlPanel/LayoutSwitcher/Caption",
            "text": "Layout"
        },
        "$:/language/ControlPanel/LoadedModules/Caption": {
            "title": "$:/language/ControlPanel/LoadedModules/Caption",
            "text": "Loaded Modules"
        },
        "$:/language/ControlPanel/LoadedModules/Hint": {
            "title": "$:/language/ControlPanel/LoadedModules/Hint",
            "text": "These are the currently loaded tiddler modules linked to their source tiddlers. Any italicised modules lack a source tiddler, typically because they were setup during the boot process."
        },
        "$:/language/ControlPanel/Palette/Caption": {
            "title": "$:/language/ControlPanel/Palette/Caption",
            "text": "Palette"
        },
        "$:/language/ControlPanel/Palette/Editor/Clone/Caption": {
            "title": "$:/language/ControlPanel/Palette/Editor/Clone/Caption",
            "text": "clone"
        },
        "$:/language/ControlPanel/Palette/Editor/Clone/Prompt": {
            "title": "$:/language/ControlPanel/Palette/Editor/Clone/Prompt",
            "text": "It is recommended that you clone this shadow palette before editing it"
        },
        "$:/language/ControlPanel/Palette/Editor/Delete/Hint": {
            "title": "$:/language/ControlPanel/Palette/Editor/Delete/Hint",
            "text": "delete this entry from the current palette"
        },
        "$:/language/ControlPanel/Palette/Editor/Names/External/Show": {
            "title": "$:/language/ControlPanel/Palette/Editor/Names/External/Show",
            "text": "Show color names that are not part of the current palette"
        },
        "$:/language/ControlPanel/Palette/Editor/Prompt/Modified": {
            "title": "$:/language/ControlPanel/Palette/Editor/Prompt/Modified",
            "text": "This shadow palette has been modified"
        },
        "$:/language/ControlPanel/Palette/Editor/Prompt": {
            "title": "$:/language/ControlPanel/Palette/Editor/Prompt",
            "text": "Editing"
        },
        "$:/language/ControlPanel/Palette/Editor/Reset/Caption": {
            "title": "$:/language/ControlPanel/Palette/Editor/Reset/Caption",
            "text": "reset"
        },
        "$:/language/ControlPanel/Palette/HideEditor/Caption": {
            "title": "$:/language/ControlPanel/Palette/HideEditor/Caption",
            "text": "hide editor"
        },
        "$:/language/ControlPanel/Palette/Prompt": {
            "title": "$:/language/ControlPanel/Palette/Prompt",
            "text": "Current palette:"
        },
        "$:/language/ControlPanel/Palette/ShowEditor/Caption": {
            "title": "$:/language/ControlPanel/Palette/ShowEditor/Caption",
            "text": "show editor"
        },
        "$:/language/ControlPanel/Parsing/Caption": {
            "title": "$:/language/ControlPanel/Parsing/Caption",
            "text": "Parsing"
        },
        "$:/language/ControlPanel/Parsing/Hint": {
            "title": "$:/language/ControlPanel/Parsing/Hint",
            "text": "Here you can globally disable/enable wiki parser rules. For changes to take effect, save and reload your wiki. Disabling certain parser rules can prevent <$text text=\"TiddlyWiki\"/> from functioning correctly. Use [[safe mode|https://tiddlywiki.com/#SafeMode]] to restore normal operation."
        },
        "$:/language/ControlPanel/Parsing/Block/Caption": {
            "title": "$:/language/ControlPanel/Parsing/Block/Caption",
            "text": "Block Parse Rules"
        },
        "$:/language/ControlPanel/Parsing/Inline/Caption": {
            "title": "$:/language/ControlPanel/Parsing/Inline/Caption",
            "text": "Inline Parse Rules"
        },
        "$:/language/ControlPanel/Parsing/Pragma/Caption": {
            "title": "$:/language/ControlPanel/Parsing/Pragma/Caption",
            "text": "Pragma Parse Rules"
        },
        "$:/language/ControlPanel/Plugins/Add/Caption": {
            "title": "$:/language/ControlPanel/Plugins/Add/Caption",
            "text": "Get more plugins"
        },
        "$:/language/ControlPanel/Plugins/Add/Hint": {
            "title": "$:/language/ControlPanel/Plugins/Add/Hint",
            "text": "Install plugins from the official library"
        },
        "$:/language/ControlPanel/Plugins/AlreadyInstalled/Hint": {
            "title": "$:/language/ControlPanel/Plugins/AlreadyInstalled/Hint",
            "text": "This plugin is already installed at version <$text text=<<installedVersion>>/>"
        },
        "$:/language/ControlPanel/Plugins/AlsoRequires": {
            "title": "$:/language/ControlPanel/Plugins/AlsoRequires",
            "text": "Also requires:"
        },
        "$:/language/ControlPanel/Plugins/Caption": {
            "title": "$:/language/ControlPanel/Plugins/Caption",
            "text": "Plugins"
        },
        "$:/language/ControlPanel/Plugins/Disable/Caption": {
            "title": "$:/language/ControlPanel/Plugins/Disable/Caption",
            "text": "disable"
        },
        "$:/language/ControlPanel/Plugins/Disable/Hint": {
            "title": "$:/language/ControlPanel/Plugins/Disable/Hint",
            "text": "Disable this plugin when reloading page"
        },
        "$:/language/ControlPanel/Plugins/Disabled/Status": {
            "title": "$:/language/ControlPanel/Plugins/Disabled/Status",
            "text": "(disabled)"
        },
        "$:/language/ControlPanel/Plugins/Downgrade/Caption": {
            "title": "$:/language/ControlPanel/Plugins/Downgrade/Caption",
            "text": "downgrade"
        },
        "$:/language/ControlPanel/Plugins/Empty/Hint": {
            "title": "$:/language/ControlPanel/Plugins/Empty/Hint",
            "text": "None"
        },
        "$:/language/ControlPanel/Plugins/Enable/Caption": {
            "title": "$:/language/ControlPanel/Plugins/Enable/Caption",
            "text": "enable"
        },
        "$:/language/ControlPanel/Plugins/Enable/Hint": {
            "title": "$:/language/ControlPanel/Plugins/Enable/Hint",
            "text": "Enable this plugin when reloading page"
        },
        "$:/language/ControlPanel/Plugins/Install/Caption": {
            "title": "$:/language/ControlPanel/Plugins/Install/Caption",
            "text": "install"
        },
        "$:/language/ControlPanel/Plugins/Installed/Hint": {
            "title": "$:/language/ControlPanel/Plugins/Installed/Hint",
            "text": "Currently installed plugins:"
        },
        "$:/language/ControlPanel/Plugins/Languages/Caption": {
            "title": "$:/language/ControlPanel/Plugins/Languages/Caption",
            "text": "Languages"
        },
        "$:/language/ControlPanel/Plugins/Languages/Hint": {
            "title": "$:/language/ControlPanel/Plugins/Languages/Hint",
            "text": "Language pack plugins"
        },
        "$:/language/ControlPanel/Plugins/NoInfoFound/Hint": {
            "title": "$:/language/ControlPanel/Plugins/NoInfoFound/Hint",
            "text": "No ''\"<$text text=<<currentTab>>/>\"'' found"
        },
        "$:/language/ControlPanel/Plugins/NotInstalled/Hint": {
            "title": "$:/language/ControlPanel/Plugins/NotInstalled/Hint",
            "text": "This plugin is not currently installed"
        },
        "$:/language/ControlPanel/Plugins/OpenPluginLibrary": {
            "title": "$:/language/ControlPanel/Plugins/OpenPluginLibrary",
            "text": "open plugin library"
        },
        "$:/language/ControlPanel/Plugins/ClosePluginLibrary": {
            "title": "$:/language/ControlPanel/Plugins/ClosePluginLibrary",
            "text": "close plugin library"
        },
        "$:/language/ControlPanel/Plugins/PluginWillRequireReload": {
            "title": "$:/language/ControlPanel/Plugins/PluginWillRequireReload",
            "text": "(requires reload)"
        },
        "$:/language/ControlPanel/Plugins/Plugins/Caption": {
            "title": "$:/language/ControlPanel/Plugins/Plugins/Caption",
            "text": "Plugins"
        },
        "$:/language/ControlPanel/Plugins/Plugins/Hint": {
            "title": "$:/language/ControlPanel/Plugins/Plugins/Hint",
            "text": "Plugins"
        },
        "$:/language/ControlPanel/Plugins/Reinstall/Caption": {
            "title": "$:/language/ControlPanel/Plugins/Reinstall/Caption",
            "text": "reinstall"
        },
        "$:/language/ControlPanel/Plugins/Themes/Caption": {
            "title": "$:/language/ControlPanel/Plugins/Themes/Caption",
            "text": "Themes"
        },
        "$:/language/ControlPanel/Plugins/Themes/Hint": {
            "title": "$:/language/ControlPanel/Plugins/Themes/Hint",
            "text": "Theme plugins"
        },
        "$:/language/ControlPanel/Plugins/Update/Caption": {
            "title": "$:/language/ControlPanel/Plugins/Update/Caption",
            "text": "update"
        },
        "$:/language/ControlPanel/Plugins/Updates/Caption": {
            "title": "$:/language/ControlPanel/Plugins/Updates/Caption",
            "text": "Updates"
        },
        "$:/language/ControlPanel/Plugins/Updates/Hint": {
            "title": "$:/language/ControlPanel/Plugins/Updates/Hint",
            "text": "Available updates to installed plugins"
        },
        "$:/language/ControlPanel/Plugins/Updates/UpdateAll/Caption": {
            "title": "$:/language/ControlPanel/Plugins/Updates/UpdateAll/Caption",
            "text": "Update <<update-count>> plugins"
        },
        "$:/language/ControlPanel/Plugins/SubPluginPrompt": {
            "title": "$:/language/ControlPanel/Plugins/SubPluginPrompt",
            "text": "With <<count>> sub-plugins available"
        },
        "$:/language/ControlPanel/Saving/Caption": {
            "title": "$:/language/ControlPanel/Saving/Caption",
            "text": "Saving"
        },
        "$:/language/ControlPanel/Saving/DownloadSaver/AutoSave/Description": {
            "title": "$:/language/ControlPanel/Saving/DownloadSaver/AutoSave/Description",
            "text": "Permit automatic saving for the download saver"
        },
        "$:/language/ControlPanel/Saving/DownloadSaver/AutoSave/Hint": {
            "title": "$:/language/ControlPanel/Saving/DownloadSaver/AutoSave/Hint",
            "text": "Enable Autosave for Download Saver"
        },
        "$:/language/ControlPanel/Saving/DownloadSaver/Caption": {
            "title": "$:/language/ControlPanel/Saving/DownloadSaver/Caption",
            "text": "Download Saver"
        },
        "$:/language/ControlPanel/Saving/DownloadSaver/Hint": {
            "title": "$:/language/ControlPanel/Saving/DownloadSaver/Hint",
            "text": "These settings apply to the HTML5-compatible download saver"
        },
        "$:/language/ControlPanel/Saving/General/Caption": {
            "title": "$:/language/ControlPanel/Saving/General/Caption",
            "text": "General"
        },
        "$:/language/ControlPanel/Saving/General/Hint": {
            "title": "$:/language/ControlPanel/Saving/General/Hint",
            "text": "These settings apply to all the loaded savers"
        },
        "$:/language/ControlPanel/Saving/Hint": {
            "title": "$:/language/ControlPanel/Saving/Hint",
            "text": "Settings used for saving the entire TiddlyWiki as a single file via a saver module"
        },
        "$:/language/ControlPanel/Saving/GitService/Branch": {
            "title": "$:/language/ControlPanel/Saving/GitService/Branch",
            "text": "Target branch for saving"
        },
        "$:/language/ControlPanel/Saving/GitService/CommitMessage": {
            "title": "$:/language/ControlPanel/Saving/GitService/CommitMessage",
            "text": "Saved by TiddlyWiki"
        },
        "$:/language/ControlPanel/Saving/GitService/Description": {
            "title": "$:/language/ControlPanel/Saving/GitService/Description",
            "text": "These settings are only used when saving to <<service-name>>"
        },
        "$:/language/ControlPanel/Saving/GitService/Filename": {
            "title": "$:/language/ControlPanel/Saving/GitService/Filename",
            "text": "Filename of target file (e.g. `index.html`)"
        },
        "$:/language/ControlPanel/Saving/GitService/Path": {
            "title": "$:/language/ControlPanel/Saving/GitService/Path",
            "text": "Path to target file (e.g. `/wiki/`)"
        },
        "$:/language/ControlPanel/Saving/GitService/Repo": {
            "title": "$:/language/ControlPanel/Saving/GitService/Repo",
            "text": "Target repository (e.g. `Jermolene/TiddlyWiki5`)"
        },
        "$:/language/ControlPanel/Saving/GitService/ServerURL": {
            "title": "$:/language/ControlPanel/Saving/GitService/ServerURL",
            "text": "Server API URL"
        },
        "$:/language/ControlPanel/Saving/GitService/UserName": {
            "title": "$:/language/ControlPanel/Saving/GitService/UserName",
            "text": "Username"
        },
        "$:/language/ControlPanel/Saving/GitService/GitHub/Caption": {
            "title": "$:/language/ControlPanel/Saving/GitService/GitHub/Caption",
            "text": "~GitHub Saver"
        },
        "$:/language/ControlPanel/Saving/GitService/GitHub/Password": {
            "title": "$:/language/ControlPanel/Saving/GitService/GitHub/Password",
            "text": "Password, OAUTH token, or personal access token (see [[GitHub help page|https://help.github.com/en/articles/creating-a-personal-access-token-for-the-command-line]] for details)"
        },
        "$:/language/ControlPanel/Saving/GitService/GitLab/Caption": {
            "title": "$:/language/ControlPanel/Saving/GitService/GitLab/Caption",
            "text": "~GitLab Saver"
        },
        "$:/language/ControlPanel/Saving/GitService/GitLab/Password": {
            "title": "$:/language/ControlPanel/Saving/GitService/GitLab/Password",
            "text": "Personal access token for API (see [[GitLab help page|https://docs.gitlab.com/ee/user/profile/personal_access_tokens.html]] for details)"
        },
        "$:/language/ControlPanel/Saving/GitService/Gitea/Caption": {
            "title": "$:/language/ControlPanel/Saving/GitService/Gitea/Caption",
            "text": "Gitea Saver"
        },
        "$:/language/ControlPanel/Saving/GitService/Gitea/Password": {
            "title": "$:/language/ControlPanel/Saving/GitService/Gitea/Password",
            "text": "Personal access token for API (via Gitea’s web interface: `Settings | Applications | Generate New Token`)"
        },
        "$:/language/ControlPanel/Saving/TiddlySpot/Advanced/Heading": {
            "title": "$:/language/ControlPanel/Saving/TiddlySpot/Advanced/Heading",
            "text": "Advanced Settings"
        },
        "$:/language/ControlPanel/Saving/TiddlySpot/BackupDir": {
            "title": "$:/language/ControlPanel/Saving/TiddlySpot/BackupDir",
            "text": "Backup Directory"
        },
        "$:/language/ControlPanel/Saving/TiddlySpot/ControlPanel": {
            "title": "$:/language/ControlPanel/Saving/TiddlySpot/ControlPanel",
            "text": "~TiddlySpot Control Panel"
        },
        "$:/language/ControlPanel/Saving/TiddlySpot/Backups": {
            "title": "$:/language/ControlPanel/Saving/TiddlySpot/Backups",
            "text": "Backups"
        },
        "$:/language/ControlPanel/Saving/TiddlySpot/Caption": {
            "title": "$:/language/ControlPanel/Saving/TiddlySpot/Caption",
            "text": "~TiddlySpot Saver"
        },
        "$:/language/ControlPanel/Saving/TiddlySpot/Description": {
            "title": "$:/language/ControlPanel/Saving/TiddlySpot/Description",
            "text": "These settings are only used when saving to http://tiddlyspot.com or a compatible remote server"
        },
        "$:/language/ControlPanel/Saving/TiddlySpot/Filename": {
            "title": "$:/language/ControlPanel/Saving/TiddlySpot/Filename",
            "text": "Upload Filename"
        },
        "$:/language/ControlPanel/Saving/TiddlySpot/Heading": {
            "title": "$:/language/ControlPanel/Saving/TiddlySpot/Heading",
            "text": "~TiddlySpot"
        },
        "$:/language/ControlPanel/Saving/TiddlySpot/Hint": {
            "title": "$:/language/ControlPanel/Saving/TiddlySpot/Hint",
            "text": "//The server URL defaults to `http://<wikiname>.tiddlyspot.com/store.cgi` and can be changed to use a custom server address, e.g. `http://example.com/store.php`.//"
        },
        "$:/language/ControlPanel/Saving/TiddlySpot/Password": {
            "title": "$:/language/ControlPanel/Saving/TiddlySpot/Password",
            "text": "Password"
        },
        "$:/language/ControlPanel/Saving/TiddlySpot/ReadOnly": {
            "title": "$:/language/ControlPanel/Saving/TiddlySpot/ReadOnly",
            "text": "The ~TiddlySpot service is currently only available in read-only form. Please see http://tiddlyspot.com/ for the latest details. The ~TiddlySpot saver can still be used to save to compatible servers."
        },
        "$:/language/ControlPanel/Saving/TiddlySpot/ServerURL": {
            "title": "$:/language/ControlPanel/Saving/TiddlySpot/ServerURL",
            "text": "Server URL"
        },
        "$:/language/ControlPanel/Saving/TiddlySpot/UploadDir": {
            "title": "$:/language/ControlPanel/Saving/TiddlySpot/UploadDir",
            "text": "Upload Directory"
        },
        "$:/language/ControlPanel/Saving/TiddlySpot/UserName": {
            "title": "$:/language/ControlPanel/Saving/TiddlySpot/UserName",
            "text": "Wiki Name"
        },
        "$:/language/ControlPanel/Settings/AutoSave/Caption": {
            "title": "$:/language/ControlPanel/Settings/AutoSave/Caption",
            "text": "Autosave"
        },
        "$:/language/ControlPanel/Settings/AutoSave/Disabled/Description": {
            "title": "$:/language/ControlPanel/Settings/AutoSave/Disabled/Description",
            "text": "Do not save changes automatically"
        },
        "$:/language/ControlPanel/Settings/AutoSave/Enabled/Description": {
            "title": "$:/language/ControlPanel/Settings/AutoSave/Enabled/Description",
            "text": "Save changes automatically"
        },
        "$:/language/ControlPanel/Settings/AutoSave/Hint": {
            "title": "$:/language/ControlPanel/Settings/AutoSave/Hint",
            "text": "Attempt to automatically save changes during editing when using a supporting saver"
        },
        "$:/language/ControlPanel/Settings/CamelCase/Caption": {
            "title": "$:/language/ControlPanel/Settings/CamelCase/Caption",
            "text": "Camel Case Wiki Links"
        },
        "$:/language/ControlPanel/Settings/CamelCase/Hint": {
            "title": "$:/language/ControlPanel/Settings/CamelCase/Hint",
            "text": "You can globally disable automatic linking of ~CamelCase phrases. Requires reload to take effect"
        },
        "$:/language/ControlPanel/Settings/CamelCase/Description": {
            "title": "$:/language/ControlPanel/Settings/CamelCase/Description",
            "text": "Enable automatic ~CamelCase linking"
        },
        "$:/language/ControlPanel/Settings/Caption": {
            "title": "$:/language/ControlPanel/Settings/Caption",
            "text": "Settings"
        },
        "$:/language/ControlPanel/Settings/EditorToolbar/Caption": {
            "title": "$:/language/ControlPanel/Settings/EditorToolbar/Caption",
            "text": "Editor Toolbar"
        },
        "$:/language/ControlPanel/Settings/EditorToolbar/Hint": {
            "title": "$:/language/ControlPanel/Settings/EditorToolbar/Hint",
            "text": "Enable or disable the editor toolbar:"
        },
        "$:/language/ControlPanel/Settings/EditorToolbar/Description": {
            "title": "$:/language/ControlPanel/Settings/EditorToolbar/Description",
            "text": "Show editor toolbar"
        },
        "$:/language/ControlPanel/Settings/InfoPanelMode/Caption": {
            "title": "$:/language/ControlPanel/Settings/InfoPanelMode/Caption",
            "text": "Tiddler Info Panel Mode"
        },
        "$:/language/ControlPanel/Settings/InfoPanelMode/Hint": {
            "title": "$:/language/ControlPanel/Settings/InfoPanelMode/Hint",
            "text": "Control when the tiddler info panel closes:"
        },
        "$:/language/ControlPanel/Settings/InfoPanelMode/Popup/Description": {
            "title": "$:/language/ControlPanel/Settings/InfoPanelMode/Popup/Description",
            "text": "Tiddler info panel closes automatically"
        },
        "$:/language/ControlPanel/Settings/InfoPanelMode/Sticky/Description": {
            "title": "$:/language/ControlPanel/Settings/InfoPanelMode/Sticky/Description",
            "text": "Tiddler info panel stays open until explicitly closed"
        },
        "$:/language/ControlPanel/Settings/Hint": {
            "title": "$:/language/ControlPanel/Settings/Hint",
            "text": "These settings let you customise the behaviour of TiddlyWiki."
        },
        "$:/language/ControlPanel/Settings/NavigationAddressBar/Caption": {
            "title": "$:/language/ControlPanel/Settings/NavigationAddressBar/Caption",
            "text": "Navigation Address Bar"
        },
        "$:/language/ControlPanel/Settings/NavigationAddressBar/Hint": {
            "title": "$:/language/ControlPanel/Settings/NavigationAddressBar/Hint",
            "text": "Behaviour of the browser address bar when navigating to a tiddler:"
        },
        "$:/language/ControlPanel/Settings/NavigationAddressBar/No/Description": {
            "title": "$:/language/ControlPanel/Settings/NavigationAddressBar/No/Description",
            "text": "Do not update the address bar"
        },
        "$:/language/ControlPanel/Settings/NavigationAddressBar/Permalink/Description": {
            "title": "$:/language/ControlPanel/Settings/NavigationAddressBar/Permalink/Description",
            "text": "Include the target tiddler"
        },
        "$:/language/ControlPanel/Settings/NavigationAddressBar/Permaview/Description": {
            "title": "$:/language/ControlPanel/Settings/NavigationAddressBar/Permaview/Description",
            "text": "Include the target tiddler and the current story sequence"
        },
        "$:/language/ControlPanel/Settings/NavigationHistory/Caption": {
            "title": "$:/language/ControlPanel/Settings/NavigationHistory/Caption",
            "text": "Navigation History"
        },
        "$:/language/ControlPanel/Settings/NavigationHistory/Hint": {
            "title": "$:/language/ControlPanel/Settings/NavigationHistory/Hint",
            "text": "Update browser history when navigating to a tiddler:"
        },
        "$:/language/ControlPanel/Settings/NavigationHistory/No/Description": {
            "title": "$:/language/ControlPanel/Settings/NavigationHistory/No/Description",
            "text": "Do not update history"
        },
        "$:/language/ControlPanel/Settings/NavigationHistory/Yes/Description": {
            "title": "$:/language/ControlPanel/Settings/NavigationHistory/Yes/Description",
            "text": "Update history"
        },
        "$:/language/ControlPanel/Settings/NavigationPermalinkviewMode/Caption": {
            "title": "$:/language/ControlPanel/Settings/NavigationPermalinkviewMode/Caption",
            "text": "Permalink/permaview Mode"
        },
        "$:/language/ControlPanel/Settings/NavigationPermalinkviewMode/Hint": {
            "title": "$:/language/ControlPanel/Settings/NavigationPermalinkviewMode/Hint",
            "text": "Choose how permalink/permaview is handled:"
        },
        "$:/language/ControlPanel/Settings/NavigationPermalinkviewMode/CopyToClipboard/Description": {
            "title": "$:/language/ControlPanel/Settings/NavigationPermalinkviewMode/CopyToClipboard/Description",
            "text": "Copy permalink/permaview URL to clipboard"
        },
        "$:/language/ControlPanel/Settings/NavigationPermalinkviewMode/UpdateAddressBar/Description": {
            "title": "$:/language/ControlPanel/Settings/NavigationPermalinkviewMode/UpdateAddressBar/Description",
            "text": "Update address bar with permalink/permaview URL"
        },
        "$:/language/ControlPanel/Settings/PerformanceInstrumentation/Caption": {
            "title": "$:/language/ControlPanel/Settings/PerformanceInstrumentation/Caption",
            "text": "Performance Instrumentation"
        },
        "$:/language/ControlPanel/Settings/PerformanceInstrumentation/Hint": {
            "title": "$:/language/ControlPanel/Settings/PerformanceInstrumentation/Hint",
            "text": "Displays performance statistics in the browser developer console. Requires reload to take effect"
        },
        "$:/language/ControlPanel/Settings/PerformanceInstrumentation/Description": {
            "title": "$:/language/ControlPanel/Settings/PerformanceInstrumentation/Description",
            "text": "Enable performance instrumentation"
        },
        "$:/language/ControlPanel/Settings/ToolbarButtonStyle/Caption": {
            "title": "$:/language/ControlPanel/Settings/ToolbarButtonStyle/Caption",
            "text": "Toolbar Button Style"
        },
        "$:/language/ControlPanel/Settings/ToolbarButtonStyle/Hint": {
            "title": "$:/language/ControlPanel/Settings/ToolbarButtonStyle/Hint",
            "text": "Choose the style for toolbar buttons:"
        },
        "$:/language/ControlPanel/Settings/ToolbarButtonStyle/Styles/Borderless": {
            "title": "$:/language/ControlPanel/Settings/ToolbarButtonStyle/Styles/Borderless",
            "text": "Borderless"
        },
        "$:/language/ControlPanel/Settings/ToolbarButtonStyle/Styles/Boxed": {
            "title": "$:/language/ControlPanel/Settings/ToolbarButtonStyle/Styles/Boxed",
            "text": "Boxed"
        },
        "$:/language/ControlPanel/Settings/ToolbarButtonStyle/Styles/Rounded": {
            "title": "$:/language/ControlPanel/Settings/ToolbarButtonStyle/Styles/Rounded",
            "text": "Rounded"
        },
        "$:/language/ControlPanel/Settings/ToolbarButtons/Caption": {
            "title": "$:/language/ControlPanel/Settings/ToolbarButtons/Caption",
            "text": "Toolbar Buttons"
        },
        "$:/language/ControlPanel/Settings/ToolbarButtons/Hint": {
            "title": "$:/language/ControlPanel/Settings/ToolbarButtons/Hint",
            "text": "Default toolbar button appearance:"
        },
        "$:/language/ControlPanel/Settings/ToolbarButtons/Icons/Description": {
            "title": "$:/language/ControlPanel/Settings/ToolbarButtons/Icons/Description",
            "text": "Include icon"
        },
        "$:/language/ControlPanel/Settings/ToolbarButtons/Text/Description": {
            "title": "$:/language/ControlPanel/Settings/ToolbarButtons/Text/Description",
            "text": "Include text"
        },
        "$:/language/ControlPanel/Settings/DefaultSidebarTab/Caption": {
            "title": "$:/language/ControlPanel/Settings/DefaultSidebarTab/Caption",
            "text": "Default Sidebar Tab"
        },
        "$:/language/ControlPanel/Settings/DefaultSidebarTab/Hint": {
            "title": "$:/language/ControlPanel/Settings/DefaultSidebarTab/Hint",
            "text": "Specify which sidebar tab is displayed by default"
        },
        "$:/language/ControlPanel/Settings/DefaultMoreSidebarTab/Caption": {
            "title": "$:/language/ControlPanel/Settings/DefaultMoreSidebarTab/Caption",
            "text": "Default More Sidebar Tab"
        },
        "$:/language/ControlPanel/Settings/DefaultMoreSidebarTab/Hint": {
            "title": "$:/language/ControlPanel/Settings/DefaultMoreSidebarTab/Hint",
            "text": "Specify which More sidebar tab is displayed by default"
        },
        "$:/language/ControlPanel/Settings/LinkToBehaviour/Caption": {
            "title": "$:/language/ControlPanel/Settings/LinkToBehaviour/Caption",
            "text": "Tiddler Opening Behaviour"
        },
        "$:/language/ControlPanel/Settings/LinkToBehaviour/InsideRiver/Hint": {
            "title": "$:/language/ControlPanel/Settings/LinkToBehaviour/InsideRiver/Hint",
            "text": "Navigation from //within// the story river"
        },
        "$:/language/ControlPanel/Settings/LinkToBehaviour/OutsideRiver/Hint": {
            "title": "$:/language/ControlPanel/Settings/LinkToBehaviour/OutsideRiver/Hint",
            "text": "Navigation from //outside// the story river"
        },
        "$:/language/ControlPanel/Settings/LinkToBehaviour/OpenAbove": {
            "title": "$:/language/ControlPanel/Settings/LinkToBehaviour/OpenAbove",
            "text": "Open above the current tiddler"
        },
        "$:/language/ControlPanel/Settings/LinkToBehaviour/OpenBelow": {
            "title": "$:/language/ControlPanel/Settings/LinkToBehaviour/OpenBelow",
            "text": "Open below the current tiddler"
        },
        "$:/language/ControlPanel/Settings/LinkToBehaviour/OpenAtTop": {
            "title": "$:/language/ControlPanel/Settings/LinkToBehaviour/OpenAtTop",
            "text": "Open at the top of the story river"
        },
        "$:/language/ControlPanel/Settings/LinkToBehaviour/OpenAtBottom": {
            "title": "$:/language/ControlPanel/Settings/LinkToBehaviour/OpenAtBottom",
            "text": "Open at the bottom of the story river"
        },
        "$:/language/ControlPanel/Settings/TitleLinks/Caption": {
            "title": "$:/language/ControlPanel/Settings/TitleLinks/Caption",
            "text": "Tiddler Titles"
        },
        "$:/language/ControlPanel/Settings/TitleLinks/Hint": {
            "title": "$:/language/ControlPanel/Settings/TitleLinks/Hint",
            "text": "Optionally display tiddler titles as links"
        },
        "$:/language/ControlPanel/Settings/TitleLinks/No/Description": {
            "title": "$:/language/ControlPanel/Settings/TitleLinks/No/Description",
            "text": "Do not display tiddler titles as links"
        },
        "$:/language/ControlPanel/Settings/TitleLinks/Yes/Description": {
            "title": "$:/language/ControlPanel/Settings/TitleLinks/Yes/Description",
            "text": "Display tiddler titles as links"
        },
        "$:/language/ControlPanel/Settings/MissingLinks/Caption": {
            "title": "$:/language/ControlPanel/Settings/MissingLinks/Caption",
            "text": "Wiki Links"
        },
        "$:/language/ControlPanel/Settings/MissingLinks/Hint": {
            "title": "$:/language/ControlPanel/Settings/MissingLinks/Hint",
            "text": "Choose whether to link to tiddlers that do not exist yet"
        },
        "$:/language/ControlPanel/Settings/MissingLinks/Description": {
            "title": "$:/language/ControlPanel/Settings/MissingLinks/Description",
            "text": "Enable links to missing tiddlers"
        },
        "$:/language/ControlPanel/StoryView/Caption": {
            "title": "$:/language/ControlPanel/StoryView/Caption",
            "text": "Story View"
        },
        "$:/language/ControlPanel/StoryView/Prompt": {
            "title": "$:/language/ControlPanel/StoryView/Prompt",
            "text": "Current view:"
        },
        "$:/language/ControlPanel/Stylesheets/Caption": {
            "title": "$:/language/ControlPanel/Stylesheets/Caption",
            "text": "Stylesheets"
        },
        "$:/language/ControlPanel/Stylesheets/Expand/Caption": {
            "title": "$:/language/ControlPanel/Stylesheets/Expand/Caption",
            "text": "Expand All"
        },
        "$:/language/ControlPanel/Stylesheets/Hint": {
            "title": "$:/language/ControlPanel/Stylesheets/Hint",
            "text": "This is the rendered CSS of the current stylesheet tiddlers tagged with <<tag \"$:/tags/Stylesheet\">>"
        },
        "$:/language/ControlPanel/Stylesheets/Restore/Caption": {
            "title": "$:/language/ControlPanel/Stylesheets/Restore/Caption",
            "text": "Restore"
        },
        "$:/language/ControlPanel/Theme/Caption": {
            "title": "$:/language/ControlPanel/Theme/Caption",
            "text": "Theme"
        },
        "$:/language/ControlPanel/Theme/Prompt": {
            "title": "$:/language/ControlPanel/Theme/Prompt",
            "text": "Current theme:"
        },
        "$:/language/ControlPanel/TiddlerFields/Caption": {
            "title": "$:/language/ControlPanel/TiddlerFields/Caption",
            "text": "Tiddler Fields"
        },
        "$:/language/ControlPanel/TiddlerFields/Hint": {
            "title": "$:/language/ControlPanel/TiddlerFields/Hint",
            "text": "This is the full set of TiddlerFields in use in this wiki (including system tiddlers but excluding shadow tiddlers)."
        },
        "$:/language/ControlPanel/Toolbars/Caption": {
            "title": "$:/language/ControlPanel/Toolbars/Caption",
            "text": "Toolbars"
        },
        "$:/language/ControlPanel/Toolbars/EditToolbar/Caption": {
            "title": "$:/language/ControlPanel/Toolbars/EditToolbar/Caption",
            "text": "Edit Toolbar"
        },
        "$:/language/ControlPanel/Toolbars/EditToolbar/Hint": {
            "title": "$:/language/ControlPanel/Toolbars/EditToolbar/Hint",
            "text": "Choose which buttons are displayed for tiddlers in edit mode. Drag and drop to change the ordering"
        },
        "$:/language/ControlPanel/Toolbars/Hint": {
            "title": "$:/language/ControlPanel/Toolbars/Hint",
            "text": "Select which toolbar buttons are displayed"
        },
        "$:/language/ControlPanel/Toolbars/PageControls/Caption": {
            "title": "$:/language/ControlPanel/Toolbars/PageControls/Caption",
            "text": "Page Toolbar"
        },
        "$:/language/ControlPanel/Toolbars/PageControls/Hint": {
            "title": "$:/language/ControlPanel/Toolbars/PageControls/Hint",
            "text": "Choose which buttons are displayed on the main page toolbar. Drag and drop to change the ordering"
        },
        "$:/language/ControlPanel/Toolbars/EditorToolbar/Caption": {
            "title": "$:/language/ControlPanel/Toolbars/EditorToolbar/Caption",
            "text": "Editor Toolbar"
        },
        "$:/language/ControlPanel/Toolbars/EditorToolbar/Hint": {
            "title": "$:/language/ControlPanel/Toolbars/EditorToolbar/Hint",
            "text": "Choose which buttons are displayed in the editor toolbar. Note that some buttons will only appear when editing tiddlers of a certain type. Drag and drop to change the ordering"
        },
        "$:/language/ControlPanel/Toolbars/ViewToolbar/Caption": {
            "title": "$:/language/ControlPanel/Toolbars/ViewToolbar/Caption",
            "text": "View Toolbar"
        },
        "$:/language/ControlPanel/Toolbars/ViewToolbar/Hint": {
            "title": "$:/language/ControlPanel/Toolbars/ViewToolbar/Hint",
            "text": "Choose which buttons are displayed for tiddlers in view mode. Drag and drop to change the ordering"
        },
        "$:/language/ControlPanel/Tools/Download/Full/Caption": {
            "title": "$:/language/ControlPanel/Tools/Download/Full/Caption",
            "text": "Download full wiki"
        },
        "$:/language/Date/DaySuffix/1": {
            "title": "$:/language/Date/DaySuffix/1",
            "text": "st"
        },
        "$:/language/Date/DaySuffix/2": {
            "title": "$:/language/Date/DaySuffix/2",
            "text": "nd"
        },
        "$:/language/Date/DaySuffix/3": {
            "title": "$:/language/Date/DaySuffix/3",
            "text": "rd"
        },
        "$:/language/Date/DaySuffix/4": {
            "title": "$:/language/Date/DaySuffix/4",
            "text": "th"
        },
        "$:/language/Date/DaySuffix/5": {
            "title": "$:/language/Date/DaySuffix/5",
            "text": "th"
        },
        "$:/language/Date/DaySuffix/6": {
            "title": "$:/language/Date/DaySuffix/6",
            "text": "th"
        },
        "$:/language/Date/DaySuffix/7": {
            "title": "$:/language/Date/DaySuffix/7",
            "text": "th"
        },
        "$:/language/Date/DaySuffix/8": {
            "title": "$:/language/Date/DaySuffix/8",
            "text": "th"
        },
        "$:/language/Date/DaySuffix/9": {
            "title": "$:/language/Date/DaySuffix/9",
            "text": "th"
        },
        "$:/language/Date/DaySuffix/10": {
            "title": "$:/language/Date/DaySuffix/10",
            "text": "th"
        },
        "$:/language/Date/DaySuffix/11": {
            "title": "$:/language/Date/DaySuffix/11",
            "text": "th"
        },
        "$:/language/Date/DaySuffix/12": {
            "title": "$:/language/Date/DaySuffix/12",
            "text": "th"
        },
        "$:/language/Date/DaySuffix/13": {
            "title": "$:/language/Date/DaySuffix/13",
            "text": "th"
        },
        "$:/language/Date/DaySuffix/14": {
            "title": "$:/language/Date/DaySuffix/14",
            "text": "th"
        },
        "$:/language/Date/DaySuffix/15": {
            "title": "$:/language/Date/DaySuffix/15",
            "text": "th"
        },
        "$:/language/Date/DaySuffix/16": {
            "title": "$:/language/Date/DaySuffix/16",
            "text": "th"
        },
        "$:/language/Date/DaySuffix/17": {
            "title": "$:/language/Date/DaySuffix/17",
            "text": "th"
        },
        "$:/language/Date/DaySuffix/18": {
            "title": "$:/language/Date/DaySuffix/18",
            "text": "th"
        },
        "$:/language/Date/DaySuffix/19": {
            "title": "$:/language/Date/DaySuffix/19",
            "text": "th"
        },
        "$:/language/Date/DaySuffix/20": {
            "title": "$:/language/Date/DaySuffix/20",
            "text": "th"
        },
        "$:/language/Date/DaySuffix/21": {
            "title": "$:/language/Date/DaySuffix/21",
            "text": "st"
        },
        "$:/language/Date/DaySuffix/22": {
            "title": "$:/language/Date/DaySuffix/22",
            "text": "nd"
        },
        "$:/language/Date/DaySuffix/23": {
            "title": "$:/language/Date/DaySuffix/23",
            "text": "rd"
        },
        "$:/language/Date/DaySuffix/24": {
            "title": "$:/language/Date/DaySuffix/24",
            "text": "th"
        },
        "$:/language/Date/DaySuffix/25": {
            "title": "$:/language/Date/DaySuffix/25",
            "text": "th"
        },
        "$:/language/Date/DaySuffix/26": {
            "title": "$:/language/Date/DaySuffix/26",
            "text": "th"
        },
        "$:/language/Date/DaySuffix/27": {
            "title": "$:/language/Date/DaySuffix/27",
            "text": "th"
        },
        "$:/language/Date/DaySuffix/28": {
            "title": "$:/language/Date/DaySuffix/28",
            "text": "th"
        },
        "$:/language/Date/DaySuffix/29": {
            "title": "$:/language/Date/DaySuffix/29",
            "text": "th"
        },
        "$:/language/Date/DaySuffix/30": {
            "title": "$:/language/Date/DaySuffix/30",
            "text": "th"
        },
        "$:/language/Date/DaySuffix/31": {
            "title": "$:/language/Date/DaySuffix/31",
            "text": "st"
        },
        "$:/language/Date/Long/Day/0": {
            "title": "$:/language/Date/Long/Day/0",
            "text": "Sunday"
        },
        "$:/language/Date/Long/Day/1": {
            "title": "$:/language/Date/Long/Day/1",
            "text": "Monday"
        },
        "$:/language/Date/Long/Day/2": {
            "title": "$:/language/Date/Long/Day/2",
            "text": "Tuesday"
        },
        "$:/language/Date/Long/Day/3": {
            "title": "$:/language/Date/Long/Day/3",
            "text": "Wednesday"
        },
        "$:/language/Date/Long/Day/4": {
            "title": "$:/language/Date/Long/Day/4",
            "text": "Thursday"
        },
        "$:/language/Date/Long/Day/5": {
            "title": "$:/language/Date/Long/Day/5",
            "text": "Friday"
        },
        "$:/language/Date/Long/Day/6": {
            "title": "$:/language/Date/Long/Day/6",
            "text": "Saturday"
        },
        "$:/language/Date/Long/Month/1": {
            "title": "$:/language/Date/Long/Month/1",
            "text": "January"
        },
        "$:/language/Date/Long/Month/2": {
            "title": "$:/language/Date/Long/Month/2",
            "text": "February"
        },
        "$:/language/Date/Long/Month/3": {
            "title": "$:/language/Date/Long/Month/3",
            "text": "March"
        },
        "$:/language/Date/Long/Month/4": {
            "title": "$:/language/Date/Long/Month/4",
            "text": "April"
        },
        "$:/language/Date/Long/Month/5": {
            "title": "$:/language/Date/Long/Month/5",
            "text": "May"
        },
        "$:/language/Date/Long/Month/6": {
            "title": "$:/language/Date/Long/Month/6",
            "text": "June"
        },
        "$:/language/Date/Long/Month/7": {
            "title": "$:/language/Date/Long/Month/7",
            "text": "July"
        },
        "$:/language/Date/Long/Month/8": {
            "title": "$:/language/Date/Long/Month/8",
            "text": "August"
        },
        "$:/language/Date/Long/Month/9": {
            "title": "$:/language/Date/Long/Month/9",
            "text": "September"
        },
        "$:/language/Date/Long/Month/10": {
            "title": "$:/language/Date/Long/Month/10",
            "text": "October"
        },
        "$:/language/Date/Long/Month/11": {
            "title": "$:/language/Date/Long/Month/11",
            "text": "November"
        },
        "$:/language/Date/Long/Month/12": {
            "title": "$:/language/Date/Long/Month/12",
            "text": "December"
        },
        "$:/language/Date/Period/am": {
            "title": "$:/language/Date/Period/am",
            "text": "am"
        },
        "$:/language/Date/Period/pm": {
            "title": "$:/language/Date/Period/pm",
            "text": "pm"
        },
        "$:/language/Date/Short/Day/0": {
            "title": "$:/language/Date/Short/Day/0",
            "text": "Sun"
        },
        "$:/language/Date/Short/Day/1": {
            "title": "$:/language/Date/Short/Day/1",
            "text": "Mon"
        },
        "$:/language/Date/Short/Day/2": {
            "title": "$:/language/Date/Short/Day/2",
            "text": "Tue"
        },
        "$:/language/Date/Short/Day/3": {
            "title": "$:/language/Date/Short/Day/3",
            "text": "Wed"
        },
        "$:/language/Date/Short/Day/4": {
            "title": "$:/language/Date/Short/Day/4",
            "text": "Thu"
        },
        "$:/language/Date/Short/Day/5": {
            "title": "$:/language/Date/Short/Day/5",
            "text": "Fri"
        },
        "$:/language/Date/Short/Day/6": {
            "title": "$:/language/Date/Short/Day/6",
            "text": "Sat"
        },
        "$:/language/Date/Short/Month/1": {
            "title": "$:/language/Date/Short/Month/1",
            "text": "Jan"
        },
        "$:/language/Date/Short/Month/2": {
            "title": "$:/language/Date/Short/Month/2",
            "text": "Feb"
        },
        "$:/language/Date/Short/Month/3": {
            "title": "$:/language/Date/Short/Month/3",
            "text": "Mar"
        },
        "$:/language/Date/Short/Month/4": {
            "title": "$:/language/Date/Short/Month/4",
            "text": "Apr"
        },
        "$:/language/Date/Short/Month/5": {
            "title": "$:/language/Date/Short/Month/5",
            "text": "May"
        },
        "$:/language/Date/Short/Month/6": {
            "title": "$:/language/Date/Short/Month/6",
            "text": "Jun"
        },
        "$:/language/Date/Short/Month/7": {
            "title": "$:/language/Date/Short/Month/7",
            "text": "Jul"
        },
        "$:/language/Date/Short/Month/8": {
            "title": "$:/language/Date/Short/Month/8",
            "text": "Aug"
        },
        "$:/language/Date/Short/Month/9": {
            "title": "$:/language/Date/Short/Month/9",
            "text": "Sep"
        },
        "$:/language/Date/Short/Month/10": {
            "title": "$:/language/Date/Short/Month/10",
            "text": "Oct"
        },
        "$:/language/Date/Short/Month/11": {
            "title": "$:/language/Date/Short/Month/11",
            "text": "Nov"
        },
        "$:/language/Date/Short/Month/12": {
            "title": "$:/language/Date/Short/Month/12",
            "text": "Dec"
        },
        "$:/language/RelativeDate/Future/Days": {
            "title": "$:/language/RelativeDate/Future/Days",
            "text": "<<period>> days from now"
        },
        "$:/language/RelativeDate/Future/Hours": {
            "title": "$:/language/RelativeDate/Future/Hours",
            "text": "<<period>> hours from now"
        },
        "$:/language/RelativeDate/Future/Minutes": {
            "title": "$:/language/RelativeDate/Future/Minutes",
            "text": "<<period>> minutes from now"
        },
        "$:/language/RelativeDate/Future/Months": {
            "title": "$:/language/RelativeDate/Future/Months",
            "text": "<<period>> months from now"
        },
        "$:/language/RelativeDate/Future/Second": {
            "title": "$:/language/RelativeDate/Future/Second",
            "text": "1 second from now"
        },
        "$:/language/RelativeDate/Future/Seconds": {
            "title": "$:/language/RelativeDate/Future/Seconds",
            "text": "<<period>> seconds from now"
        },
        "$:/language/RelativeDate/Future/Years": {
            "title": "$:/language/RelativeDate/Future/Years",
            "text": "<<period>> years from now"
        },
        "$:/language/RelativeDate/Past/Days": {
            "title": "$:/language/RelativeDate/Past/Days",
            "text": "<<period>> days ago"
        },
        "$:/language/RelativeDate/Past/Hours": {
            "title": "$:/language/RelativeDate/Past/Hours",
            "text": "<<period>> hours ago"
        },
        "$:/language/RelativeDate/Past/Minutes": {
            "title": "$:/language/RelativeDate/Past/Minutes",
            "text": "<<period>> minutes ago"
        },
        "$:/language/RelativeDate/Past/Months": {
            "title": "$:/language/RelativeDate/Past/Months",
            "text": "<<period>> months ago"
        },
        "$:/language/RelativeDate/Past/Second": {
            "title": "$:/language/RelativeDate/Past/Second",
            "text": "1 second ago"
        },
        "$:/language/RelativeDate/Past/Seconds": {
            "title": "$:/language/RelativeDate/Past/Seconds",
            "text": "<<period>> seconds ago"
        },
        "$:/language/RelativeDate/Past/Years": {
            "title": "$:/language/RelativeDate/Past/Years",
            "text": "<<period>> years ago"
        },
        "$:/language/Docs/ModuleTypes/allfilteroperator": {
            "title": "$:/language/Docs/ModuleTypes/allfilteroperator",
            "text": "A sub-operator for the ''all'' filter operator."
        },
        "$:/language/Docs/ModuleTypes/animation": {
            "title": "$:/language/Docs/ModuleTypes/animation",
            "text": "Animations that may be used with the RevealWidget."
        },
        "$:/language/Docs/ModuleTypes/authenticator": {
            "title": "$:/language/Docs/ModuleTypes/authenticator",
            "text": "Defines how requests are authenticated by the built-in HTTP server."
        },
        "$:/language/Docs/ModuleTypes/bitmapeditoroperation": {
            "title": "$:/language/Docs/ModuleTypes/bitmapeditoroperation",
            "text": "A bitmap editor toolbar operation."
        },
        "$:/language/Docs/ModuleTypes/command": {
            "title": "$:/language/Docs/ModuleTypes/command",
            "text": "Commands that can be executed under Node.js."
        },
        "$:/language/Docs/ModuleTypes/config": {
            "title": "$:/language/Docs/ModuleTypes/config",
            "text": "Data to be inserted into `$tw.config`."
        },
        "$:/language/Docs/ModuleTypes/filteroperator": {
            "title": "$:/language/Docs/ModuleTypes/filteroperator",
            "text": "Individual filter operator methods."
        },
        "$:/language/Docs/ModuleTypes/global": {
            "title": "$:/language/Docs/ModuleTypes/global",
            "text": "Global data to be inserted into `$tw`."
        },
        "$:/language/Docs/ModuleTypes/info": {
            "title": "$:/language/Docs/ModuleTypes/info",
            "text": "Publishes system information via the [[$:/temp/info-plugin]] pseudo-plugin."
        },
        "$:/language/Docs/ModuleTypes/isfilteroperator": {
            "title": "$:/language/Docs/ModuleTypes/isfilteroperator",
            "text": "Operands for the ''is'' filter operator."
        },
        "$:/language/Docs/ModuleTypes/library": {
            "title": "$:/language/Docs/ModuleTypes/library",
            "text": "Generic module type for general purpose JavaScript modules."
        },
        "$:/language/Docs/ModuleTypes/macro": {
            "title": "$:/language/Docs/ModuleTypes/macro",
            "text": "JavaScript macro definitions."
        },
        "$:/language/Docs/ModuleTypes/parser": {
            "title": "$:/language/Docs/ModuleTypes/parser",
            "text": "Parsers for different content types."
        },
        "$:/language/Docs/ModuleTypes/route": {
            "title": "$:/language/Docs/ModuleTypes/route",
            "text": "Defines how individual URL patterns are handled by the built-in HTTP server."
        },
        "$:/language/Docs/ModuleTypes/saver": {
            "title": "$:/language/Docs/ModuleTypes/saver",
            "text": "Savers handle different methods for saving files from the browser."
        },
        "$:/language/Docs/ModuleTypes/startup": {
            "title": "$:/language/Docs/ModuleTypes/startup",
            "text": "Startup functions."
        },
        "$:/language/Docs/ModuleTypes/storyview": {
            "title": "$:/language/Docs/ModuleTypes/storyview",
            "text": "Story views customise the animation and behaviour of list widgets."
        },
        "$:/language/Docs/ModuleTypes/texteditoroperation": {
            "title": "$:/language/Docs/ModuleTypes/texteditoroperation",
            "text": "A text editor toolbar operation."
        },
        "$:/language/Docs/ModuleTypes/tiddlerdeserializer": {
            "title": "$:/language/Docs/ModuleTypes/tiddlerdeserializer",
            "text": "Converts different content types into tiddlers."
        },
        "$:/language/Docs/ModuleTypes/tiddlerfield": {
            "title": "$:/language/Docs/ModuleTypes/tiddlerfield",
            "text": "Defines the behaviour of an individual tiddler field."
        },
        "$:/language/Docs/ModuleTypes/tiddlermethod": {
            "title": "$:/language/Docs/ModuleTypes/tiddlermethod",
            "text": "Adds methods to the `$tw.Tiddler` prototype."
        },
        "$:/language/Docs/ModuleTypes/upgrader": {
            "title": "$:/language/Docs/ModuleTypes/upgrader",
            "text": "Applies upgrade processing to tiddlers during an upgrade/import."
        },
        "$:/language/Docs/ModuleTypes/utils": {
            "title": "$:/language/Docs/ModuleTypes/utils",
            "text": "Adds methods to `$tw.utils`."
        },
        "$:/language/Docs/ModuleTypes/utils-node": {
            "title": "$:/language/Docs/ModuleTypes/utils-node",
            "text": "Adds Node.js-specific methods to `$tw.utils`."
        },
        "$:/language/Docs/ModuleTypes/widget": {
            "title": "$:/language/Docs/ModuleTypes/widget",
            "text": "Widgets encapsulate DOM rendering and refreshing."
        },
        "$:/language/Docs/ModuleTypes/wikimethod": {
            "title": "$:/language/Docs/ModuleTypes/wikimethod",
            "text": "Adds methods to `$tw.Wiki`."
        },
        "$:/language/Docs/ModuleTypes/wikirule": {
            "title": "$:/language/Docs/ModuleTypes/wikirule",
            "text": "Individual parser rules for the main WikiText parser."
        },
        "$:/language/Docs/PaletteColours/alert-background": {
            "title": "$:/language/Docs/PaletteColours/alert-background",
            "text": "Alert background"
        },
        "$:/language/Docs/PaletteColours/alert-border": {
            "title": "$:/language/Docs/PaletteColours/alert-border",
            "text": "Alert border"
        },
        "$:/language/Docs/PaletteColours/alert-highlight": {
            "title": "$:/language/Docs/PaletteColours/alert-highlight",
            "text": "Alert highlight"
        },
        "$:/language/Docs/PaletteColours/alert-muted-foreground": {
            "title": "$:/language/Docs/PaletteColours/alert-muted-foreground",
            "text": "Alert muted foreground"
        },
        "$:/language/Docs/PaletteColours/background": {
            "title": "$:/language/Docs/PaletteColours/background",
            "text": "General background"
        },
        "$:/language/Docs/PaletteColours/blockquote-bar": {
            "title": "$:/language/Docs/PaletteColours/blockquote-bar",
            "text": "Blockquote bar"
        },
        "$:/language/Docs/PaletteColours/button-background": {
            "title": "$:/language/Docs/PaletteColours/button-background",
            "text": "Default button background"
        },
        "$:/language/Docs/PaletteColours/button-border": {
            "title": "$:/language/Docs/PaletteColours/button-border",
            "text": "Default button border"
        },
        "$:/language/Docs/PaletteColours/button-foreground": {
            "title": "$:/language/Docs/PaletteColours/button-foreground",
            "text": "Default button foreground"
        },
        "$:/language/Docs/PaletteColours/dirty-indicator": {
            "title": "$:/language/Docs/PaletteColours/dirty-indicator",
            "text": "Unsaved changes indicator"
        },
        "$:/language/Docs/PaletteColours/code-background": {
            "title": "$:/language/Docs/PaletteColours/code-background",
            "text": "Code background"
        },
        "$:/language/Docs/PaletteColours/code-border": {
            "title": "$:/language/Docs/PaletteColours/code-border",
            "text": "Code border"
        },
        "$:/language/Docs/PaletteColours/code-foreground": {
            "title": "$:/language/Docs/PaletteColours/code-foreground",
            "text": "Code foreground"
        },
        "$:/language/Docs/PaletteColours/download-background": {
            "title": "$:/language/Docs/PaletteColours/download-background",
            "text": "Download button background"
        },
        "$:/language/Docs/PaletteColours/download-foreground": {
            "title": "$:/language/Docs/PaletteColours/download-foreground",
            "text": "Download button foreground"
        },
        "$:/language/Docs/PaletteColours/dragger-background": {
            "title": "$:/language/Docs/PaletteColours/dragger-background",
            "text": "Dragger background"
        },
        "$:/language/Docs/PaletteColours/dragger-foreground": {
            "title": "$:/language/Docs/PaletteColours/dragger-foreground",
            "text": "Dragger foreground"
        },
        "$:/language/Docs/PaletteColours/dropdown-background": {
            "title": "$:/language/Docs/PaletteColours/dropdown-background",
            "text": "Dropdown background"
        },
        "$:/language/Docs/PaletteColours/dropdown-border": {
            "title": "$:/language/Docs/PaletteColours/dropdown-border",
            "text": "Dropdown border"
        },
        "$:/language/Docs/PaletteColours/dropdown-tab-background-selected": {
            "title": "$:/language/Docs/PaletteColours/dropdown-tab-background-selected",
            "text": "Dropdown tab background for selected tabs"
        },
        "$:/language/Docs/PaletteColours/dropdown-tab-background": {
            "title": "$:/language/Docs/PaletteColours/dropdown-tab-background",
            "text": "Dropdown tab background"
        },
        "$:/language/Docs/PaletteColours/dropzone-background": {
            "title": "$:/language/Docs/PaletteColours/dropzone-background",
            "text": "Dropzone background"
        },
        "$:/language/Docs/PaletteColours/external-link-background-hover": {
            "title": "$:/language/Docs/PaletteColours/external-link-background-hover",
            "text": "External link background hover"
        },
        "$:/language/Docs/PaletteColours/external-link-background-visited": {
            "title": "$:/language/Docs/PaletteColours/external-link-background-visited",
            "text": "External link background visited"
        },
        "$:/language/Docs/PaletteColours/external-link-background": {
            "title": "$:/language/Docs/PaletteColours/external-link-background",
            "text": "External link background"
        },
        "$:/language/Docs/PaletteColours/external-link-foreground-hover": {
            "title": "$:/language/Docs/PaletteColours/external-link-foreground-hover",
            "text": "External link foreground hover"
        },
        "$:/language/Docs/PaletteColours/external-link-foreground-visited": {
            "title": "$:/language/Docs/PaletteColours/external-link-foreground-visited",
            "text": "External link foreground visited"
        },
        "$:/language/Docs/PaletteColours/external-link-foreground": {
            "title": "$:/language/Docs/PaletteColours/external-link-foreground",
            "text": "External link foreground"
        },
        "$:/language/Docs/PaletteColours/foreground": {
            "title": "$:/language/Docs/PaletteColours/foreground",
            "text": "General foreground"
        },
        "$:/language/Docs/PaletteColours/menubar-background": {
            "title": "$:/language/Docs/PaletteColours/menubar-background",
            "text": "Menu bar background"
        },
        "$:/language/Docs/PaletteColours/menubar-foreground": {
            "title": "$:/language/Docs/PaletteColours/menubar-foreground",
            "text": "Menu bar foreground"
        },
        "$:/language/Docs/PaletteColours/message-background": {
            "title": "$:/language/Docs/PaletteColours/message-background",
            "text": "Message box background"
        },
        "$:/language/Docs/PaletteColours/message-border": {
            "title": "$:/language/Docs/PaletteColours/message-border",
            "text": "Message box border"
        },
        "$:/language/Docs/PaletteColours/message-foreground": {
            "title": "$:/language/Docs/PaletteColours/message-foreground",
            "text": "Message box foreground"
        },
        "$:/language/Docs/PaletteColours/modal-backdrop": {
            "title": "$:/language/Docs/PaletteColours/modal-backdrop",
            "text": "Modal backdrop"
        },
        "$:/language/Docs/PaletteColours/modal-background": {
            "title": "$:/language/Docs/PaletteColours/modal-background",
            "text": "Modal background"
        },
        "$:/language/Docs/PaletteColours/modal-border": {
            "title": "$:/language/Docs/PaletteColours/modal-border",
            "text": "Modal border"
        },
        "$:/language/Docs/PaletteColours/modal-footer-background": {
            "title": "$:/language/Docs/PaletteColours/modal-footer-background",
            "text": "Modal footer background"
        },
        "$:/language/Docs/PaletteColours/modal-footer-border": {
            "title": "$:/language/Docs/PaletteColours/modal-footer-border",
            "text": "Modal footer border"
        },
        "$:/language/Docs/PaletteColours/modal-header-border": {
            "title": "$:/language/Docs/PaletteColours/modal-header-border",
            "text": "Modal header border"
        },
        "$:/language/Docs/PaletteColours/muted-foreground": {
            "title": "$:/language/Docs/PaletteColours/muted-foreground",
            "text": "General muted foreground"
        },
        "$:/language/Docs/PaletteColours/notification-background": {
            "title": "$:/language/Docs/PaletteColours/notification-background",
            "text": "Notification background"
        },
        "$:/language/Docs/PaletteColours/notification-border": {
            "title": "$:/language/Docs/PaletteColours/notification-border",
            "text": "Notification border"
        },
        "$:/language/Docs/PaletteColours/page-background": {
            "title": "$:/language/Docs/PaletteColours/page-background",
            "text": "Page background"
        },
        "$:/language/Docs/PaletteColours/pre-background": {
            "title": "$:/language/Docs/PaletteColours/pre-background",
            "text": "Preformatted code background"
        },
        "$:/language/Docs/PaletteColours/pre-border": {
            "title": "$:/language/Docs/PaletteColours/pre-border",
            "text": "Preformatted code border"
        },
        "$:/language/Docs/PaletteColours/primary": {
            "title": "$:/language/Docs/PaletteColours/primary",
            "text": "General primary"
        },
        "$:/language/Docs/PaletteColours/select-tag-background": {
            "title": "$:/language/Docs/PaletteColours/select-tag-background",
            "text": "`<select>` element background"
        },
        "$:/language/Docs/PaletteColours/select-tag-foreground": {
            "title": "$:/language/Docs/PaletteColours/select-tag-foreground",
            "text": "`<select>` element text"
        },
        "$:/language/Docs/PaletteColours/sidebar-button-foreground": {
            "title": "$:/language/Docs/PaletteColours/sidebar-button-foreground",
            "text": "Sidebar button foreground"
        },
        "$:/language/Docs/PaletteColours/sidebar-controls-foreground-hover": {
            "title": "$:/language/Docs/PaletteColours/sidebar-controls-foreground-hover",
            "text": "Sidebar controls foreground hover"
        },
        "$:/language/Docs/PaletteColours/sidebar-controls-foreground": {
            "title": "$:/language/Docs/PaletteColours/sidebar-controls-foreground",
            "text": "Sidebar controls foreground"
        },
        "$:/language/Docs/PaletteColours/sidebar-foreground-shadow": {
            "title": "$:/language/Docs/PaletteColours/sidebar-foreground-shadow",
            "text": "Sidebar foreground shadow"
        },
        "$:/language/Docs/PaletteColours/sidebar-foreground": {
            "title": "$:/language/Docs/PaletteColours/sidebar-foreground",
            "text": "Sidebar foreground"
        },
        "$:/language/Docs/PaletteColours/sidebar-muted-foreground-hover": {
            "title": "$:/language/Docs/PaletteColours/sidebar-muted-foreground-hover",
            "text": "Sidebar muted foreground hover"
        },
        "$:/language/Docs/PaletteColours/sidebar-muted-foreground": {
            "title": "$:/language/Docs/PaletteColours/sidebar-muted-foreground",
            "text": "Sidebar muted foreground"
        },
        "$:/language/Docs/PaletteColours/sidebar-tab-background-selected": {
            "title": "$:/language/Docs/PaletteColours/sidebar-tab-background-selected",
            "text": "Sidebar tab background for selected tabs"
        },
        "$:/language/Docs/PaletteColours/sidebar-tab-background": {
            "title": "$:/language/Docs/PaletteColours/sidebar-tab-background",
            "text": "Sidebar tab background"
        },
        "$:/language/Docs/PaletteColours/sidebar-tab-border-selected": {
            "title": "$:/language/Docs/PaletteColours/sidebar-tab-border-selected",
            "text": "Sidebar tab border for selected tabs"
        },
        "$:/language/Docs/PaletteColours/sidebar-tab-border": {
            "title": "$:/language/Docs/PaletteColours/sidebar-tab-border",
            "text": "Sidebar tab border"
        },
        "$:/language/Docs/PaletteColours/sidebar-tab-divider": {
            "title": "$:/language/Docs/PaletteColours/sidebar-tab-divider",
            "text": "Sidebar tab divider"
        },
        "$:/language/Docs/PaletteColours/sidebar-tab-foreground-selected": {
            "title": "$:/language/Docs/PaletteColours/sidebar-tab-foreground-selected",
            "text": "Sidebar tab foreground for selected tabs"
        },
        "$:/language/Docs/PaletteColours/sidebar-tab-foreground": {
            "title": "$:/language/Docs/PaletteColours/sidebar-tab-foreground",
            "text": "Sidebar tab foreground"
        },
        "$:/language/Docs/PaletteColours/sidebar-tiddler-link-foreground-hover": {
            "title": "$:/language/Docs/PaletteColours/sidebar-tiddler-link-foreground-hover",
            "text": "Sidebar tiddler link foreground hover"
        },
        "$:/language/Docs/PaletteColours/sidebar-tiddler-link-foreground": {
            "title": "$:/language/Docs/PaletteColours/sidebar-tiddler-link-foreground",
            "text": "Sidebar tiddler link foreground"
        },
        "$:/language/Docs/PaletteColours/site-title-foreground": {
            "title": "$:/language/Docs/PaletteColours/site-title-foreground",
            "text": "Site title foreground"
        },
        "$:/language/Docs/PaletteColours/static-alert-foreground": {
            "title": "$:/language/Docs/PaletteColours/static-alert-foreground",
            "text": "Static alert foreground"
        },
        "$:/language/Docs/PaletteColours/tab-background-selected": {
            "title": "$:/language/Docs/PaletteColours/tab-background-selected",
            "text": "Tab background for selected tabs"
        },
        "$:/language/Docs/PaletteColours/tab-background": {
            "title": "$:/language/Docs/PaletteColours/tab-background",
            "text": "Tab background"
        },
        "$:/language/Docs/PaletteColours/tab-border-selected": {
            "title": "$:/language/Docs/PaletteColours/tab-border-selected",
            "text": "Tab border for selected tabs"
        },
        "$:/language/Docs/PaletteColours/tab-border": {
            "title": "$:/language/Docs/PaletteColours/tab-border",
            "text": "Tab border"
        },
        "$:/language/Docs/PaletteColours/tab-divider": {
            "title": "$:/language/Docs/PaletteColours/tab-divider",
            "text": "Tab divider"
        },
        "$:/language/Docs/PaletteColours/tab-foreground-selected": {
            "title": "$:/language/Docs/PaletteColours/tab-foreground-selected",
            "text": "Tab foreground for selected tabs"
        },
        "$:/language/Docs/PaletteColours/tab-foreground": {
            "title": "$:/language/Docs/PaletteColours/tab-foreground",
            "text": "Tab foreground"
        },
        "$:/language/Docs/PaletteColours/table-border": {
            "title": "$:/language/Docs/PaletteColours/table-border",
            "text": "Table border"
        },
        "$:/language/Docs/PaletteColours/table-footer-background": {
            "title": "$:/language/Docs/PaletteColours/table-footer-background",
            "text": "Table footer background"
        },
        "$:/language/Docs/PaletteColours/table-header-background": {
            "title": "$:/language/Docs/PaletteColours/table-header-background",
            "text": "Table header background"
        },
        "$:/language/Docs/PaletteColours/tag-background": {
            "title": "$:/language/Docs/PaletteColours/tag-background",
            "text": "Tag background"
        },
        "$:/language/Docs/PaletteColours/tag-foreground": {
            "title": "$:/language/Docs/PaletteColours/tag-foreground",
            "text": "Tag foreground"
        },
        "$:/language/Docs/PaletteColours/tiddler-background": {
            "title": "$:/language/Docs/PaletteColours/tiddler-background",
            "text": "Tiddler background"
        },
        "$:/language/Docs/PaletteColours/tiddler-border": {
            "title": "$:/language/Docs/PaletteColours/tiddler-border",
            "text": "Tiddler border"
        },
        "$:/language/Docs/PaletteColours/tiddler-controls-foreground-hover": {
            "title": "$:/language/Docs/PaletteColours/tiddler-controls-foreground-hover",
            "text": "Tiddler controls foreground hover"
        },
        "$:/language/Docs/PaletteColours/tiddler-controls-foreground-selected": {
            "title": "$:/language/Docs/PaletteColours/tiddler-controls-foreground-selected",
            "text": "Tiddler controls foreground for selected controls"
        },
        "$:/language/Docs/PaletteColours/tiddler-controls-foreground": {
            "title": "$:/language/Docs/PaletteColours/tiddler-controls-foreground",
            "text": "Tiddler controls foreground"
        },
        "$:/language/Docs/PaletteColours/tiddler-editor-background": {
            "title": "$:/language/Docs/PaletteColours/tiddler-editor-background",
            "text": "Tiddler editor background"
        },
        "$:/language/Docs/PaletteColours/tiddler-editor-border-image": {
            "title": "$:/language/Docs/PaletteColours/tiddler-editor-border-image",
            "text": "Tiddler editor border image"
        },
        "$:/language/Docs/PaletteColours/tiddler-editor-border": {
            "title": "$:/language/Docs/PaletteColours/tiddler-editor-border",
            "text": "Tiddler editor border"
        },
        "$:/language/Docs/PaletteColours/tiddler-editor-fields-even": {
            "title": "$:/language/Docs/PaletteColours/tiddler-editor-fields-even",
            "text": "Tiddler editor background for even fields"
        },
        "$:/language/Docs/PaletteColours/tiddler-editor-fields-odd": {
            "title": "$:/language/Docs/PaletteColours/tiddler-editor-fields-odd",
            "text": "Tiddler editor background for odd fields"
        },
        "$:/language/Docs/PaletteColours/tiddler-info-background": {
            "title": "$:/language/Docs/PaletteColours/tiddler-info-background",
            "text": "Tiddler info panel background"
        },
        "$:/language/Docs/PaletteColours/tiddler-info-border": {
            "title": "$:/language/Docs/PaletteColours/tiddler-info-border",
            "text": "Tiddler info panel border"
        },
        "$:/language/Docs/PaletteColours/tiddler-info-tab-background": {
            "title": "$:/language/Docs/PaletteColours/tiddler-info-tab-background",
            "text": "Tiddler info panel tab background"
        },
        "$:/language/Docs/PaletteColours/tiddler-link-background": {
            "title": "$:/language/Docs/PaletteColours/tiddler-link-background",
            "text": "Tiddler link background"
        },
        "$:/language/Docs/PaletteColours/tiddler-link-foreground": {
            "title": "$:/language/Docs/PaletteColours/tiddler-link-foreground",
            "text": "Tiddler link foreground"
        },
        "$:/language/Docs/PaletteColours/tiddler-subtitle-foreground": {
            "title": "$:/language/Docs/PaletteColours/tiddler-subtitle-foreground",
            "text": "Tiddler subtitle foreground"
        },
        "$:/language/Docs/PaletteColours/tiddler-title-foreground": {
            "title": "$:/language/Docs/PaletteColours/tiddler-title-foreground",
            "text": "Tiddler title foreground"
        },
        "$:/language/Docs/PaletteColours/toolbar-new-button": {
            "title": "$:/language/Docs/PaletteColours/toolbar-new-button",
            "text": "Toolbar 'new tiddler' button foreground"
        },
        "$:/language/Docs/PaletteColours/toolbar-options-button": {
            "title": "$:/language/Docs/PaletteColours/toolbar-options-button",
            "text": "Toolbar 'options' button foreground"
        },
        "$:/language/Docs/PaletteColours/toolbar-save-button": {
            "title": "$:/language/Docs/PaletteColours/toolbar-save-button",
            "text": "Toolbar 'save' button foreground"
        },
        "$:/language/Docs/PaletteColours/toolbar-info-button": {
            "title": "$:/language/Docs/PaletteColours/toolbar-info-button",
            "text": "Toolbar 'info' button foreground"
        },
        "$:/language/Docs/PaletteColours/toolbar-edit-button": {
            "title": "$:/language/Docs/PaletteColours/toolbar-edit-button",
            "text": "Toolbar 'edit' button foreground"
        },
        "$:/language/Docs/PaletteColours/toolbar-close-button": {
            "title": "$:/language/Docs/PaletteColours/toolbar-close-button",
            "text": "Toolbar 'close' button foreground"
        },
        "$:/language/Docs/PaletteColours/toolbar-delete-button": {
            "title": "$:/language/Docs/PaletteColours/toolbar-delete-button",
            "text": "Toolbar 'delete' button foreground"
        },
        "$:/language/Docs/PaletteColours/toolbar-cancel-button": {
            "title": "$:/language/Docs/PaletteColours/toolbar-cancel-button",
            "text": "Toolbar 'cancel' button foreground"
        },
        "$:/language/Docs/PaletteColours/toolbar-done-button": {
            "title": "$:/language/Docs/PaletteColours/toolbar-done-button",
            "text": "Toolbar 'done' button foreground"
        },
        "$:/language/Docs/PaletteColours/untagged-background": {
            "title": "$:/language/Docs/PaletteColours/untagged-background",
            "text": "Untagged pill background"
        },
        "$:/language/Docs/PaletteColours/very-muted-foreground": {
            "title": "$:/language/Docs/PaletteColours/very-muted-foreground",
            "text": "Very muted foreground"
        },
        "$:/language/EditTemplate/Body/External/Hint": {
            "title": "$:/language/EditTemplate/Body/External/Hint",
            "text": "This tiddler shows content stored outside of the main TiddlyWiki file. You can edit the tags and fields but cannot directly edit the content itself"
        },
        "$:/language/EditTemplate/Body/Placeholder": {
            "title": "$:/language/EditTemplate/Body/Placeholder",
            "text": "Type the text for this tiddler"
        },
        "$:/language/EditTemplate/Body/Preview/Type/Output": {
            "title": "$:/language/EditTemplate/Body/Preview/Type/Output",
            "text": "output"
        },
        "$:/language/EditTemplate/Field/Remove/Caption": {
            "title": "$:/language/EditTemplate/Field/Remove/Caption",
            "text": "remove field"
        },
        "$:/language/EditTemplate/Field/Remove/Hint": {
            "title": "$:/language/EditTemplate/Field/Remove/Hint",
            "text": "Remove field"
        },
        "$:/language/EditTemplate/Field/Dropdown/Caption": {
            "title": "$:/language/EditTemplate/Field/Dropdown/Caption",
            "text": "field list"
        },
        "$:/language/EditTemplate/Field/Dropdown/Hint": {
            "title": "$:/language/EditTemplate/Field/Dropdown/Hint",
            "text": "Show field list"
        },
        "$:/language/EditTemplate/Fields/Add/Button": {
            "title": "$:/language/EditTemplate/Fields/Add/Button",
            "text": "add"
        },
        "$:/language/EditTemplate/Fields/Add/Button/Hint": {
            "title": "$:/language/EditTemplate/Fields/Add/Button/Hint",
            "text": "Add the new field to the tiddler"
        },
        "$:/language/EditTemplate/Fields/Add/Name/Placeholder": {
            "title": "$:/language/EditTemplate/Fields/Add/Name/Placeholder",
            "text": "field name"
        },
        "$:/language/EditTemplate/Fields/Add/Prompt": {
            "title": "$:/language/EditTemplate/Fields/Add/Prompt",
            "text": "Add a new field:"
        },
        "$:/language/EditTemplate/Fields/Add/Value/Placeholder": {
            "title": "$:/language/EditTemplate/Fields/Add/Value/Placeholder",
            "text": "field value"
        },
        "$:/language/EditTemplate/Fields/Add/Dropdown/System": {
            "title": "$:/language/EditTemplate/Fields/Add/Dropdown/System",
            "text": "System fields"
        },
        "$:/language/EditTemplate/Fields/Add/Dropdown/User": {
            "title": "$:/language/EditTemplate/Fields/Add/Dropdown/User",
            "text": "User fields"
        },
        "$:/language/EditTemplate/Shadow/Warning": {
            "title": "$:/language/EditTemplate/Shadow/Warning",
            "text": "This is a shadow tiddler. Any changes you make will override the default version from the plugin <<pluginLink>>"
        },
        "$:/language/EditTemplate/Shadow/OverriddenWarning": {
            "title": "$:/language/EditTemplate/Shadow/OverriddenWarning",
            "text": "This is a modified shadow tiddler. You can revert to the default version in the plugin <<pluginLink>> by deleting this tiddler"
        },
        "$:/language/EditTemplate/Tags/Add/Button": {
            "title": "$:/language/EditTemplate/Tags/Add/Button",
            "text": "add"
        },
        "$:/language/EditTemplate/Tags/Add/Button/Hint": {
            "title": "$:/language/EditTemplate/Tags/Add/Button/Hint",
            "text": "add tag"
        },
        "$:/language/EditTemplate/Tags/Add/Placeholder": {
            "title": "$:/language/EditTemplate/Tags/Add/Placeholder",
            "text": "tag name"
        },
        "$:/language/EditTemplate/Tags/ClearInput/Caption": {
            "title": "$:/language/EditTemplate/Tags/ClearInput/Caption",
            "text": "clear input"
        },
        "$:/language/EditTemplate/Tags/ClearInput/Hint": {
            "title": "$:/language/EditTemplate/Tags/ClearInput/Hint",
            "text": "Clear tag input"
        },
        "$:/language/EditTemplate/Tags/Dropdown/Caption": {
            "title": "$:/language/EditTemplate/Tags/Dropdown/Caption",
            "text": "tag list"
        },
        "$:/language/EditTemplate/Tags/Dropdown/Hint": {
            "title": "$:/language/EditTemplate/Tags/Dropdown/Hint",
            "text": "Show tag list"
        },
        "$:/language/EditTemplate/Title/BadCharacterWarning": {
            "title": "$:/language/EditTemplate/Title/BadCharacterWarning",
            "text": "Warning: avoid using any of the characters <<bad-chars>> in tiddler titles"
        },
        "$:/language/EditTemplate/Title/Exists/Prompt": {
            "title": "$:/language/EditTemplate/Title/Exists/Prompt",
            "text": "Target tiddler already exists"
        },
        "$:/language/EditTemplate/Title/Relink/Prompt": {
            "title": "$:/language/EditTemplate/Title/Relink/Prompt",
            "text": "Update ''<$text text=<<fromTitle>>/>'' to ''<$text text=<<toTitle>>/>'' in the //tags// and //list// fields of other tiddlers"
        },
        "$:/language/EditTemplate/Title/References/Prompt": {
            "title": "$:/language/EditTemplate/Title/References/Prompt",
            "text": "The following references to this tiddler will not be automatically updated:"
        },
        "$:/language/EditTemplate/Type/Dropdown/Caption": {
            "title": "$:/language/EditTemplate/Type/Dropdown/Caption",
            "text": "content type list"
        },
        "$:/language/EditTemplate/Type/Dropdown/Hint": {
            "title": "$:/language/EditTemplate/Type/Dropdown/Hint",
            "text": "Show content type list"
        },
        "$:/language/EditTemplate/Type/Delete/Caption": {
            "title": "$:/language/EditTemplate/Type/Delete/Caption",
            "text": "delete content type"
        },
        "$:/language/EditTemplate/Type/Delete/Hint": {
            "title": "$:/language/EditTemplate/Type/Delete/Hint",
            "text": "Delete content type"
        },
        "$:/language/EditTemplate/Type/Placeholder": {
            "title": "$:/language/EditTemplate/Type/Placeholder",
            "text": "content type"
        },
        "$:/language/EditTemplate/Type/Prompt": {
            "title": "$:/language/EditTemplate/Type/Prompt",
            "text": "Type:"
        },
        "$:/language/Exporters/StaticRiver": {
            "title": "$:/language/Exporters/StaticRiver",
            "text": "Static HTML"
        },
        "$:/language/Exporters/JsonFile": {
            "title": "$:/language/Exporters/JsonFile",
            "text": "JSON file"
        },
        "$:/language/Exporters/CsvFile": {
            "title": "$:/language/Exporters/CsvFile",
            "text": "CSV file"
        },
        "$:/language/Exporters/TidFile": {
            "title": "$:/language/Exporters/TidFile",
            "text": "\".tid\" file"
        },
        "$:/language/Docs/Fields/_canonical_uri": {
            "title": "$:/language/Docs/Fields/_canonical_uri",
            "text": "The full URI of an external image tiddler"
        },
        "$:/language/Docs/Fields/bag": {
            "title": "$:/language/Docs/Fields/bag",
            "text": "The name of the bag from which a tiddler came"
        },
        "$:/language/Docs/Fields/caption": {
            "title": "$:/language/Docs/Fields/caption",
            "text": "The text to be displayed on a tab or button"
        },
        "$:/language/Docs/Fields/color": {
            "title": "$:/language/Docs/Fields/color",
            "text": "The CSS color value associated with a tiddler"
        },
        "$:/language/Docs/Fields/component": {
            "title": "$:/language/Docs/Fields/component",
            "text": "The name of the component responsible for an [[alert tiddler|AlertMechanism]]"
        },
        "$:/language/Docs/Fields/current-tiddler": {
            "title": "$:/language/Docs/Fields/current-tiddler",
            "text": "Used to cache the top tiddler in a [[history list|HistoryMechanism]]"
        },
        "$:/language/Docs/Fields/created": {
            "title": "$:/language/Docs/Fields/created",
            "text": "The date a tiddler was created"
        },
        "$:/language/Docs/Fields/creator": {
            "title": "$:/language/Docs/Fields/creator",
            "text": "The name of the person who created a tiddler"
        },
        "$:/language/Docs/Fields/dependents": {
            "title": "$:/language/Docs/Fields/dependents",
            "text": "For a plugin, lists the dependent plugin titles"
        },
        "$:/language/Docs/Fields/description": {
            "title": "$:/language/Docs/Fields/description",
            "text": "The descriptive text for a plugin, or a modal dialogue"
        },
        "$:/language/Docs/Fields/draft.of": {
            "title": "$:/language/Docs/Fields/draft.of",
            "text": "For draft tiddlers, contains the title of the tiddler of which this is a draft"
        },
        "$:/language/Docs/Fields/draft.title": {
            "title": "$:/language/Docs/Fields/draft.title",
            "text": "For draft tiddlers, contains the proposed new title of the tiddler"
        },
        "$:/language/Docs/Fields/footer": {
            "title": "$:/language/Docs/Fields/footer",
            "text": "The footer text for a wizard"
        },
        "$:/language/Docs/Fields/hide-body": {
            "title": "$:/language/Docs/Fields/hide-body",
            "text": "The view template will hide bodies of tiddlers if set to: ''yes''"
        },
        "$:/language/Docs/Fields/icon": {
            "title": "$:/language/Docs/Fields/icon",
            "text": "The title of the tiddler containing the icon associated with a tiddler"
        },
        "$:/language/Docs/Fields/library": {
            "title": "$:/language/Docs/Fields/library",
            "text": "Indicates that a tiddler should be saved as a JavaScript library if set to: ''yes''"
        },
        "$:/language/Docs/Fields/list": {
            "title": "$:/language/Docs/Fields/list",
            "text": "An ordered list of tiddler titles associated with a tiddler"
        },
        "$:/language/Docs/Fields/list-before": {
            "title": "$:/language/Docs/Fields/list-before",
            "text": "If set, the title of a tiddler before which this tiddler should be added to the ordered list of tiddler titles, or at the start of the list if this field is present but empty"
        },
        "$:/language/Docs/Fields/list-after": {
            "title": "$:/language/Docs/Fields/list-after",
            "text": "If set, the title of the tiddler after which this tiddler should be added to the ordered list of tiddler titles, or at the end of the list if this field is present but empty"
        },
        "$:/language/Docs/Fields/modified": {
            "title": "$:/language/Docs/Fields/modified",
            "text": "The date and time at which a tiddler was last modified"
        },
        "$:/language/Docs/Fields/modifier": {
            "title": "$:/language/Docs/Fields/modifier",
            "text": "The tiddler title associated with the person who last modified a tiddler"
        },
        "$:/language/Docs/Fields/name": {
            "title": "$:/language/Docs/Fields/name",
            "text": "The human readable name associated with a plugin tiddler"
        },
        "$:/language/Docs/Fields/plugin-priority": {
            "title": "$:/language/Docs/Fields/plugin-priority",
            "text": "A numerical value indicating the priority of a plugin tiddler"
        },
        "$:/language/Docs/Fields/plugin-type": {
            "title": "$:/language/Docs/Fields/plugin-type",
            "text": "The type of plugin in a plugin tiddler"
        },
        "$:/language/Docs/Fields/revision": {
            "title": "$:/language/Docs/Fields/revision",
            "text": "The revision of the tiddler held at the server"
        },
        "$:/language/Docs/Fields/released": {
            "title": "$:/language/Docs/Fields/released",
            "text": "Date of a TiddlyWiki release"
        },
        "$:/language/Docs/Fields/source": {
            "title": "$:/language/Docs/Fields/source",
            "text": "The source URL associated with a tiddler"
        },
        "$:/language/Docs/Fields/subtitle": {
            "title": "$:/language/Docs/Fields/subtitle",
            "text": "The subtitle text for a wizard"
        },
        "$:/language/Docs/Fields/tags": {
            "title": "$:/language/Docs/Fields/tags",
            "text": "A list of tags associated with a tiddler"
        },
        "$:/language/Docs/Fields/text": {
            "title": "$:/language/Docs/Fields/text",
            "text": "The body text of a tiddler"
        },
        "$:/language/Docs/Fields/throttle.refresh": {
            "title": "$:/language/Docs/Fields/throttle.refresh",
            "text": "If present, throttles refreshes of this tiddler"
        },
        "$:/language/Docs/Fields/title": {
            "title": "$:/language/Docs/Fields/title",
            "text": "The unique name of a tiddler"
        },
        "$:/language/Docs/Fields/toc-link": {
            "title": "$:/language/Docs/Fields/toc-link",
            "text": "Suppresses the tiddler's link in a Table of Contents tree if set to: ''no''"
        },
        "$:/language/Docs/Fields/type": {
            "title": "$:/language/Docs/Fields/type",
            "text": "The content type of a tiddler"
        },
        "$:/language/Docs/Fields/version": {
            "title": "$:/language/Docs/Fields/version",
            "text": "Version information for a plugin"
        },
        "$:/language/Docs/Fields/_is_skinny": {
            "title": "$:/language/Docs/Fields/_is_skinny",
            "text": "If present, indicates that the tiddler text field must be loaded from the server"
        },
        "$:/language/Filters/AllTiddlers": {
            "title": "$:/language/Filters/AllTiddlers",
            "text": "All tiddlers except system tiddlers"
        },
        "$:/language/Filters/RecentSystemTiddlers": {
            "title": "$:/language/Filters/RecentSystemTiddlers",
            "text": "Recently modified tiddlers, including system tiddlers"
        },
        "$:/language/Filters/RecentTiddlers": {
            "title": "$:/language/Filters/RecentTiddlers",
            "text": "Recently modified tiddlers"
        },
        "$:/language/Filters/AllTags": {
            "title": "$:/language/Filters/AllTags",
            "text": "All tags except system tags"
        },
        "$:/language/Filters/Missing": {
            "title": "$:/language/Filters/Missing",
            "text": "Missing tiddlers"
        },
        "$:/language/Filters/Drafts": {
            "title": "$:/language/Filters/Drafts",
            "text": "Draft tiddlers"
        },
        "$:/language/Filters/Orphans": {
            "title": "$:/language/Filters/Orphans",
            "text": "Orphan tiddlers"
        },
        "$:/language/Filters/SystemTiddlers": {
            "title": "$:/language/Filters/SystemTiddlers",
            "text": "System tiddlers"
        },
        "$:/language/Filters/ShadowTiddlers": {
            "title": "$:/language/Filters/ShadowTiddlers",
            "text": "Shadow tiddlers"
        },
        "$:/language/Filters/OverriddenShadowTiddlers": {
            "title": "$:/language/Filters/OverriddenShadowTiddlers",
            "text": "Overridden shadow tiddlers"
        },
        "$:/language/Filters/SessionTiddlers": {
            "title": "$:/language/Filters/SessionTiddlers",
            "text": "Tiddlers modified since the wiki was loaded"
        },
        "$:/language/Filters/SystemTags": {
            "title": "$:/language/Filters/SystemTags",
            "text": "System tags"
        },
        "$:/language/Filters/StoryList": {
            "title": "$:/language/Filters/StoryList",
            "text": "Tiddlers in the story river, excluding <$text text=\"$:/AdvancedSearch\"/>"
        },
        "$:/language/Filters/TypedTiddlers": {
            "title": "$:/language/Filters/TypedTiddlers",
            "text": "Non wiki-text tiddlers"
        },
        "GettingStarted": {
            "title": "GettingStarted",
            "text": "\\define lingo-base() $:/language/ControlPanel/Basics/\nWelcome to ~TiddlyWiki and the ~TiddlyWiki community\n\nBefore you start storing important information in ~TiddlyWiki it is vital to make sure that you can reliably save changes. See https://tiddlywiki.com/#GettingStarted for details\n\n!! Set up this ~TiddlyWiki\n\n<div class=\"tc-control-panel\">\n\n|<$link to=\"$:/SiteTitle\"><<lingo Title/Prompt>></$link> |<$edit-text tiddler=\"$:/SiteTitle\" default=\"\" tag=\"input\"/> |\n|<$link to=\"$:/SiteSubtitle\"><<lingo Subtitle/Prompt>></$link> |<$edit-text tiddler=\"$:/SiteSubtitle\" default=\"\" tag=\"input\"/> |\n|<$link to=\"$:/DefaultTiddlers\"><<lingo DefaultTiddlers/Prompt>></$link> |<<lingo DefaultTiddlers/TopHint>><br> <$edit tag=\"textarea\" tiddler=\"$:/DefaultTiddlers\"/><br>//<<lingo DefaultTiddlers/BottomHint>>// |\n</div>\n\nSee the [[control panel|$:/ControlPanel]] for more options.\n"
        },
        "$:/language/Help/build": {
            "title": "$:/language/Help/build",
            "description": "Automatically run configured commands",
            "text": "Build the specified build targets for the current wiki. If no build targets are specified then all available targets will be built.\n\n```\n--build <target> [<target> ...]\n```\n\nBuild targets are defined in the `tiddlywiki.info` file of a wiki folder.\n\n"
        },
        "$:/language/Help/clearpassword": {
            "title": "$:/language/Help/clearpassword",
            "description": "Clear a password for subsequent crypto operations",
            "text": "Clear the password for subsequent crypto operations\n\n```\n--clearpassword\n```\n"
        },
        "$:/language/Help/default": {
            "title": "$:/language/Help/default",
            "text": "\\define commandTitle()\n$:/language/Help/$(command)$\n\\end\n```\nusage: tiddlywiki [<wikifolder>] [--<command> [<args>...]...]\n```\n\nAvailable commands:\n\n<ul>\n<$list filter=\"[commands[]sort[title]]\" variable=\"command\">\n<li><$link to=<<commandTitle>>><$macrocall $name=\"command\" $type=\"text/plain\" $output=\"text/plain\"/></$link>: <$transclude tiddler=<<commandTitle>> field=\"description\"/></li>\n</$list>\n</ul>\n\nTo get detailed help on a command:\n\n```\ntiddlywiki --help <command>\n```\n"
        },
        "$:/language/Help/deletetiddlers": {
            "title": "$:/language/Help/deletetiddlers",
            "description": "Deletes a group of tiddlers",
            "text": "<<.from-version \"5.1.20\">> Deletes a group of tiddlers identified by a filter.\n\n```\n--deletetiddlers <filter>\n```\n"
        },
        "$:/language/Help/editions": {
            "title": "$:/language/Help/editions",
            "description": "Lists the available editions of TiddlyWiki",
            "text": "Lists the names and descriptions of the available editions. You can create a new wiki of a specified edition with the `--init` command.\n\n```\n--editions\n```\n"
        },
        "$:/language/Help/fetch": {
            "title": "$:/language/Help/fetch",
            "description": "Fetch tiddlers from wiki by URL",
            "text": "Fetch one or more files over HTTP/HTTPS, and import the tiddlers matching a filter, optionally transforming the incoming titles.\n\n```\n--fetch file <url> <import-filter> <transform-filter>\n--fetch files <url-filter> <import-filter> <transform-filter>\n--fetch raw-file <url> <transform-filter>\n--fetch raw-files <url-filter> <transform-filter>\n```\n\nThe \"file\" and \"files\" variants fetch the specified files and attempt to import the tiddlers within them (the same processing as if the files were dragged into the browser window). The \"raw-file\" and \"raw-files\" variants fetch the specified files and then store the raw file data in tiddlers, without applying the import logic.\n\nWith the \"file\" and \"raw-file\" variants only a single file is fetched and the first parameter is the URL of the file to read.\n\nWith the \"files\" and \"raw-files\" variants, multiple files are fetched and the first parameter is a filter yielding a list of URLs of the files to read. For example, given a set of tiddlers tagged \"remote-server\" that have a field \"url\" the filter `[tag[remote-server]get[url]]` will retrieve all the available URLs.\n\nFor the \"file\" and \"files\" variants, the `<import-filter>` parameter specifies a filter determining which tiddlers are imported. It defaults to `[all[tiddlers]]` if not provided.\n\nFor all variants, the `<transform-filter>` parameter specifies an optional filter that transforms the titles of the imported tiddlers. For example, `[addprefix[$:/myimports/]]` would add the prefix `$:/myimports/` to each title.\n\nPreceding the `--fetch` command with `--verbose` will output progress information during the import.\n\nNote that TiddlyWiki will not fetch an older version of an already loaded plugin.\n\nThe following example retrieves all the non-system tiddlers from https://tiddlywiki.com and saves them to a JSON file:\n\n```\ntiddlywiki --verbose --fetch file \"https://tiddlywiki.com/\" \"[!is[system]]\" \"\" --rendertiddler \"$:/core/templates/exporters/JsonFile\" output.json text/plain \"\" exportFilter \"[!is[system]]\"\n```\n\nThe following example retrieves the \"favicon\" file from tiddlywiki.com and saves it in a file called \"output.ico\". Note that the intermediate tiddler \"Icon Tiddler\" is quoted in the \"--fetch\" command because it is being used as a transformation filter to replace the default title, while there are no quotes for the \"--savetiddler\" command because it is being used directly as a title.\n\n```\ntiddlywiki --verbose --fetch raw-file \"https://tiddlywiki.com/favicon.ico\" \"[[Icon Tiddler]]\" --savetiddler \"Icon Tiddler\" output.ico\n```\n\n"
        },
        "$:/language/Help/help": {
            "title": "$:/language/Help/help",
            "description": "Display help for TiddlyWiki commands",
            "text": "Displays help text for a command:\n\n```\n--help [<command>]\n```\n\nIf the command name is omitted then a list of available commands is displayed.\n"
        },
        "$:/language/Help/import": {
            "title": "$:/language/Help/import",
            "description": "Import tiddlers from a file",
            "text": "Import tiddlers from TiddlyWiki (`.html`), `.tiddler`, `.tid`, `.json` or other local files. The deserializer must be explicitly specified, unlike the `load` command which infers the deserializer from the file extension.\n\n```\n--import <filepath> <deserializer> [<title>] [<encoding>]\n```\n\nThe deserializers in the core include:\n\n* application/javascript\n* application/json\n* application/x-tiddler\n* application/x-tiddler-html-div\n* application/x-tiddlers\n* text/html\n* text/plain\n\nThe title of the imported tiddler defaults to the filename.\n\nThe encoding defaults to \"utf8\", but can be \"base64\" for importing binary files.\n\nNote that TiddlyWiki will not import an older version of an already loaded plugin.\n"
        },
        "$:/language/Help/init": {
            "title": "$:/language/Help/init",
            "description": "Initialise a new wiki folder",
            "text": "Initialise an empty [[WikiFolder|WikiFolders]] with a copy of the specified edition.\n\n```\n--init <edition> [<edition> ...]\n```\n\nFor example:\n\n```\ntiddlywiki ./MyWikiFolder --init empty\n```\n\nNote:\n\n* The wiki folder directory will be created if necessary\n* The \"edition\" defaults to ''empty''\n* The init command will fail if the wiki folder is not empty\n* The init command removes any `includeWikis` definitions in the edition's `tiddlywiki.info` file\n* When multiple editions are specified, editions initialised later will overwrite any files shared with earlier editions (so, the final `tiddlywiki.info` file will be copied from the last edition)\n* `--editions` returns a list of available editions\n"
        },
        "$:/language/Help/listen": {
            "title": "$:/language/Help/listen",
            "description": "Provides an HTTP server interface to TiddlyWiki",
            "text": "Serves a wiki over HTTP.\n\nThe listen command uses NamedCommandParameters:\n\n```\n--listen [<name>=<value>]...\n```\n\nAll parameters are optional with safe defaults, and can be specified in any order. The recognised parameters are:\n\n* ''host'' - optional hostname to serve from (defaults to \"127.0.0.1\" aka \"localhost\")\n* ''path-prefix'' - optional prefix for paths\n* ''port'' - port number on which to listen; non-numeric values are interpreted as a system environment variable from which the port number is extracted (defaults to \"8080\")\n* ''credentials'' - pathname of credentials CSV file (relative to wiki folder)\n* ''anon-username'' - the username for signing edits for anonymous users\n* ''username'' - optional username for basic authentication\n* ''password'' - optional password for basic authentication\n* ''authenticated-user-header'' - optional name of header to be used for trusted authentication\n* ''readers'' - comma separated list of principals allowed to read from this wiki\n* ''writers'' - comma separated list of principals allowed to write to this wiki\n* ''csrf-disable'' - set to \"yes\" to disable CSRF checks (defaults to \"no\")\n* ''root-tiddler'' - the tiddler to serve at the root (defaults to \"$:/core/save/all\")\n* ''root-render-type'' - the content type to which the root tiddler should be rendered (defaults to \"text/plain\")\n* ''root-serve-type'' - the content type with which the root tiddler should be served (defaults to \"text/html\")\n* ''tls-cert'' - pathname of TLS certificate file (relative to wiki folder)\n* ''tls-key'' - pathname of TLS key file (relative to wiki folder)\n* ''debug-level'' - optional debug level; set to \"debug\" to view request details (defaults to \"none\")\n* ''gzip'' - set to \"yes\" to enable gzip compression for some http endpoints (defaults to \"no\")\n\nFor information on opening up your instance to the entire local network, and possible security concerns, see the WebServer tiddler at TiddlyWiki.com.\n\n"
        },
        "$:/language/Help/load": {
            "title": "$:/language/Help/load",
            "description": "Load tiddlers from a file",
            "text": "Load tiddlers from TiddlyWiki (`.html`), `.tiddler`, `.tid`, `.json` or other local files. The processing applied to incoming files is determined by the file extension. Use the alternative `import` command if you need to specify the deserializer and encoding explicitly.\n\n```\n--load <filepath> [noerror]\n--load <dirpath> [noerror]\n```\n\nBy default, the load command raises an error if no tiddlers are found. The error can be suppressed by providing the optional \"noerror\" parameter.\n\nTo load tiddlers from an encrypted TiddlyWiki file you should first specify the password with the PasswordCommand. For example:\n\n```\ntiddlywiki ./MyWiki --password pa55w0rd --load my_encrypted_wiki.html\n```\n\nNote that TiddlyWiki will not load an older version of an already loaded plugin.\n"
        },
        "$:/language/Help/makelibrary": {
            "title": "$:/language/Help/makelibrary",
            "description": "Construct library plugin required by upgrade process",
            "text": "Constructs the `$:/UpgradeLibrary` tiddler for the upgrade process.\n\nThe upgrade library is formatted as an ordinary plugin tiddler with the plugin type `library`. It contains a copy of each of the plugins, themes and language packs available within the TiddlyWiki5 repository.\n\nThis command is intended for internal use; it is only relevant to users constructing a custom upgrade procedure.\n\n```\n--makelibrary <title>\n```\n\nThe title argument defaults to `$:/UpgradeLibrary`.\n"
        },
        "$:/language/Help/notfound": {
            "title": "$:/language/Help/notfound",
            "text": "No such help item"
        },
        "$:/language/Help/output": {
            "title": "$:/language/Help/output",
            "description": "Set the base output directory for subsequent commands",
            "text": "Sets the base output directory for subsequent commands. The default output directory is the `output` subdirectory of the edition directory.\n\n```\n--output <pathname>\n```\n\nIf the specified pathname is relative then it is resolved relative to the current working directory. For example `--output .` sets the output directory to the current working directory.\n\n"
        },
        "$:/language/Help/password": {
            "title": "$:/language/Help/password",
            "description": "Set a password for subsequent crypto operations",
            "text": "Set a password for subsequent crypto operations\n\n```\n--password <password>\n```\n\n''Note'': This should not be used for serving TiddlyWiki with password protection. Instead, see the password option under the [[ServerCommand]].\n"
        },
        "$:/language/Help/render": {
            "title": "$:/language/Help/render",
            "description": "Renders individual tiddlers to files",
            "text": "Render individual tiddlers identified by a filter and save the results to the specified files.\n\nOptionally, the title of a template tiddler can be specified. In this case, instead of directly rendering each tiddler, the template tiddler is rendered with the \"currentTiddler\" variable set to the title of the tiddler that is being rendered.\n\nA name and value for an additional variable may optionally also be specified.\n\n```\n--render <tiddler-filter> [<filename-filter>] [<render-type>] [<template>] [<name>] [<value>]\n```\n\n* ''tiddler-filter'': A filter identifying the tiddler(s) to be rendered\n* ''filename-filter'': Optional filter transforming tiddler titles into pathnames. If omitted, defaults to `[is[tiddler]addsuffix[.html]]`, which uses the unchanged tiddler title as the filename\n* ''render-type'': Optional render type: `text/html` (the default) returns the full HTML text and `text/plain` just returns the text content (ie it ignores HTML tags and other unprintable material)\n* ''template'': Optional template through which each tiddler is rendered\n* ''name'': Name of optional variable\n* ''value'': Value of optional variable\n\nBy default, the filename is resolved relative to the `output` subdirectory of the edition directory. The `--output` command can be used to direct output to a different directory.\n\nNotes:\n\n* The output directory is not cleared of any existing files\n* Any missing directories in the path to the filename are automatically created.\n* When referring to a tiddler with spaces in its title, take care to use both the quotes required by your shell and also TiddlyWiki's double square brackets : `--render \"[[Motovun Jack.jpg]]\"`\n* The filename filter is evaluated with the selected items being set to the title of the tiddler currently being rendered, allowing the title to be used as the basis for computing the filename. For example `[encodeuricomponent[]addprefix[static/]]` applies URI encoding to each title, and then adds the prefix `static/`\n* The `--render` command is a more flexible replacement for both the `--rendertiddler` and `--rendertiddlers` commands, which are deprecated\n\nExamples:\n\n* `--render \"[!is[system]]\" \"[encodeuricomponent[]addprefix[tiddlers/]addsuffix[.html]]\"` -- renders all non-system tiddlers as files in the subdirectory \"tiddlers\" with URL-encoded titles and the extension HTML\n\n"
        },
        "$:/language/Help/rendertiddler": {
            "title": "$:/language/Help/rendertiddler",
            "description": "Render an individual tiddler as a specified ContentType",
            "text": "(Note: The `--rendertiddler` command is deprecated in favour of the new, more flexible `--render` command)\n\nRender an individual tiddler as a specified ContentType, defaulting to `text/html` and save it to the specified filename.\n\nOptionally the title of a template tiddler can be specified, in which case the template tiddler is rendered with the \"currentTiddler\" variable set to the tiddler that is being rendered (the first parameter value).\n\nA name and value for an additional variable may optionally also be specified.\n\n```\n--rendertiddler <title> <filename> [<type>] [<template>] [<name>] [<value>]\n```\n\nBy default, the filename is resolved relative to the `output` subdirectory of the edition directory. The `--output` command can be used to direct output to a different directory.\n\nAny missing directories in the path to the filename are automatically created.\n\nFor example, the following command saves all tiddlers matching the filter `[tag[done]]` to a JSON file titled `output.json` by employing the core template `$:/core/templates/exporters/JsonFile`.\n\n```\n--rendertiddler \"$:/core/templates/exporters/JsonFile\" output.json text/plain \"\" exportFilter \"[tag[done]]\"\n```\n"
        },
        "$:/language/Help/rendertiddlers": {
            "title": "$:/language/Help/rendertiddlers",
            "description": "Render tiddlers matching a filter to a specified ContentType",
            "text": "(Note: The `--rendertiddlers` command is deprecated in favour of the new, more flexible `--render` command)\n\nRender a set of tiddlers matching a filter to separate files of a specified ContentType (defaults to `text/html`) and extension (defaults to `.html`).\n\n```\n--rendertiddlers '<filter>' <template> <pathname> [<type>] [<extension>] [\"noclean\"]\n```\n\nFor example:\n\n```\n--rendertiddlers '[!is[system]]' $:/core/templates/static.tiddler.html ./static text/plain\n```\n\nBy default, the pathname is resolved relative to the `output` subdirectory of the edition directory. The `--output` command can be used to direct output to a different directory.\n\nAny files in the target directory are deleted unless the ''noclean'' flag is specified. The target directory is recursively created if it is missing.\n"
        },
        "$:/language/Help/save": {
            "title": "$:/language/Help/save",
            "description": "Saves individual raw tiddlers to files",
            "text": "Saves individual tiddlers identified by a filter in their raw text or binary format to the specified files.\n\n```\n--save <tiddler-filter> <filename-filter>\n```\n\n* ''tiddler-filter'': A filter identifying the tiddler(s) to be saved\n* ''filename-filter'': Optional filter transforming tiddler titles into pathnames. If omitted, defaults to `[is[tiddler]]`, which uses the unchanged tiddler title as the filename\n\nBy default, the filename is resolved relative to the `output` subdirectory of the edition directory. The `--output` command can be used to direct output to a different directory.\n\nNotes:\n\n* The output directory is not cleared of any existing files\n* Any missing directories in the path to the filename are automatically created.\n* When saving a tiddler with spaces in its title, take care to use both the quotes required by your shell and also TiddlyWiki's double square brackets : `--save \"[[Motovun Jack.jpg]]\"`\n* The filename filter is evaluated with the selected items being set to the title of the tiddler currently being saved, allowing the title to be used as the basis for computing the filename. For example `[encodeuricomponent[]addprefix[static/]]` applies URI encoding to each title, and then adds the prefix `static/`\n* The `--save` command is a more flexible replacement for both the `--savetiddler` and `--savetiddlers` commands, which are deprecated\n\nExamples:\n\n* `--save \"[!is[system]is[image]]\" \"[encodeuricomponent[]addprefix[tiddlers/]]\"` -- saves all non-system image tiddlers as files in the subdirectory \"tiddlers\" with URL-encoded titles\n"
        },
        "$:/language/Help/savetiddler": {
            "title": "$:/language/Help/savetiddler",
            "description": "Saves a raw tiddler to a file",
            "text": "(Note: The `--savetiddler` command is deprecated in favour of the new, more flexible `--save` command)\n\nSaves an individual tiddler in its raw text or binary format to the specified filename.\n\n```\n--savetiddler <title> <filename>\n```\n\nBy default, the filename is resolved relative to the `output` subdirectory of the edition directory. The `--output` command can be used to direct output to a different directory.\n\nAny missing directories in the path to the filename are automatically created.\n"
        },
        "$:/language/Help/savetiddlers": {
            "title": "$:/language/Help/savetiddlers",
            "description": "Saves a group of raw tiddlers to a directory",
            "text": "(Note: The `--savetiddlers` command is deprecated in favour of the new, more flexible `--save` command)\n\nSaves a group of tiddlers in their raw text or binary format to the specified directory.\n\n```\n--savetiddlers <filter> <pathname> [\"noclean\"]\n```\n\nBy default, the pathname is resolved relative to the `output` subdirectory of the edition directory. The `--output` command can be used to direct output to a different directory.\n\nThe output directory is cleared of existing files before saving the specified files. The deletion can be disabled by specifying the ''noclean'' flag.\n\nAny missing directories in the pathname are automatically created.\n"
        },
        "$:/language/Help/savewikifolder": {
            "title": "$:/language/Help/savewikifolder",
            "description": "Saves a wiki to a new wiki folder",
            "text": "<<.from-version \"5.1.20\">> Saves the current wiki as a wiki folder, including tiddlers, plugins and configuration:\n\n```\n--savewikifolder <wikifolderpath> [<filter>]\n```\n\n* The target wiki folder must be empty or non-existent\n* The filter specifies which tiddlers should be included. It is optional, defaulting to `[all[tiddlers]]`\n* Plugins from the official plugin library are replaced with references to those plugins in the `tiddlywiki.info` file\n* Custom plugins are unpacked into their own folder\n\nA common usage is to convert a TiddlyWiki HTML file into a wiki folder:\n\n```\ntiddlywiki --load ./mywiki.html --savewikifolder ./mywikifolder\n```\n"
        },
        "$:/language/Help/server": {
            "title": "$:/language/Help/server",
            "description": "Provides an HTTP server interface to TiddlyWiki (deprecated in favour of the new listen command)",
            "text": "Legacy command to serve a wiki over HTTP.\n\n```\n--server <port> <root-tiddler> <root-render-type> <root-serve-type> <username> <password> <host> <path-prefix> <debug-level>\n```\n\nThe parameters are:\n\n* ''port'' - port number on which to listen; non-numeric values are interpreted as a system environment variable from which the port number is extracted (defaults to \"8080\")\n* ''root-tiddler'' - the tiddler to serve at the root (defaults to \"$:/core/save/all\")\n* ''root-render-type'' - the content type to which the root tiddler should be rendered (defaults to \"text/plain\")\n* ''root-serve-type'' - the content type with which the root tiddler should be served (defaults to \"text/html\")\n* ''username'' - the default username for signing edits\n* ''password'' - optional password for basic authentication\n* ''host'' - optional hostname to serve from (defaults to \"127.0.0.1\" aka \"localhost\")\n* ''path-prefix'' - optional prefix for paths\n* ''debug-level'' - optional debug level; set to \"debug\" to view request details (defaults to \"none\")\n\nIf the password parameter is specified then the browser will prompt the user for the username and password. Note that the password is transmitted in plain text so this implementation should only be used on a trusted network or over HTTPS.\n\nFor example:\n\n```\n--server 8080 $:/core/save/all text/plain text/html MyUserName passw0rd\n```\n\nThe username and password can be specified as empty strings if you need to set the hostname or pathprefix and don't want to require a password.\n\n\n```\n--server 8080 $:/core/save/all text/plain text/html \"\" \"\" 192.168.0.245\n```\n\nUsing an address like this exposes your system to the local network. For information on opening up your instance to the entire local network, and possible security concerns, see the WebServer tiddler at TiddlyWiki.com.\n\nTo run multiple TiddlyWiki servers at the same time you'll need to put each one on a different port. It can be useful to use an environment variable to pass the port number to the Node.js process. This example references an environment variable called \"MY_PORT_NUMBER\":\n\n```\n--server MY_PORT_NUMBER $:/core/save/all text/plain text/html MyUserName passw0rd\n```\n"
        },
        "$:/language/Help/setfield": {
            "title": "$:/language/Help/setfield",
            "description": "Prepares external tiddlers for use",
            "text": "//Note that this command is experimental and may change or be replaced before being finalised//\n\nSets the specified field of a group of tiddlers to the result of wikifying a template tiddler with the `currentTiddler` variable set to the tiddler.\n\n```\n--setfield <filter> <fieldname> <templatetitle> <rendertype>\n```\n\nThe parameters are:\n\n* ''filter'' - filter identifying the tiddlers to be affected\n* ''fieldname'' - the field to modify (defaults to \"text\")\n* ''templatetitle'' - the tiddler to wikify into the specified field. If blank or missing then the specified field is deleted\n* ''rendertype'' - the text type to render (defaults to \"text/plain\"; \"text/html\" can be used to include HTML tags)\n"
        },
        "$:/language/Help/unpackplugin": {
            "title": "$:/language/Help/unpackplugin",
            "description": "Unpack the payload tiddlers from a plugin",
            "text": "Extract the payload tiddlers from a plugin, creating them as ordinary tiddlers:\n\n```\n--unpackplugin <title>\n```\n"
        },
        "$:/language/Help/verbose": {
            "title": "$:/language/Help/verbose",
            "description": "Triggers verbose output mode",
            "text": "Triggers verbose output, useful for debugging\n\n```\n--verbose\n```\n"
        },
        "$:/language/Help/version": {
            "title": "$:/language/Help/version",
            "description": "Displays the version number of TiddlyWiki",
            "text": "Displays the version number of TiddlyWiki.\n\n```\n--version\n```\n"
        },
        "$:/language/Import/Imported/Hint": {
            "title": "$:/language/Import/Imported/Hint",
            "text": "The following tiddlers were imported:"
        },
        "$:/language/Import/Listing/Cancel/Caption": {
            "title": "$:/language/Import/Listing/Cancel/Caption",
            "text": "Cancel"
        },
        "$:/language/Import/Listing/Hint": {
            "title": "$:/language/Import/Listing/Hint",
            "text": "These tiddlers are ready to import:"
        },
        "$:/language/Import/Listing/Import/Caption": {
            "title": "$:/language/Import/Listing/Import/Caption",
            "text": "Import"
        },
        "$:/language/Import/Listing/Select/Caption": {
            "title": "$:/language/Import/Listing/Select/Caption",
            "text": "Select"
        },
        "$:/language/Import/Listing/Status/Caption": {
            "title": "$:/language/Import/Listing/Status/Caption",
            "text": "Status"
        },
        "$:/language/Import/Listing/Title/Caption": {
            "title": "$:/language/Import/Listing/Title/Caption",
            "text": "Title"
        },
        "$:/language/Import/Listing/Preview": {
            "title": "$:/language/Import/Listing/Preview",
            "text": "Preview:"
        },
        "$:/language/Import/Listing/Preview/Text": {
            "title": "$:/language/Import/Listing/Preview/Text",
            "text": "Text"
        },
        "$:/language/Import/Listing/Preview/TextRaw": {
            "title": "$:/language/Import/Listing/Preview/TextRaw",
            "text": "Text (Raw)"
        },
        "$:/language/Import/Listing/Preview/Fields": {
            "title": "$:/language/Import/Listing/Preview/Fields",
            "text": "Fields"
        },
        "$:/language/Import/Listing/Preview/Diff": {
            "title": "$:/language/Import/Listing/Preview/Diff",
            "text": "Diff"
        },
        "$:/language/Import/Listing/Preview/DiffFields": {
            "title": "$:/language/Import/Listing/Preview/DiffFields",
            "text": "Diff (Fields)"
        },
        "$:/language/Import/Listing/Rename/Tooltip": {
            "title": "$:/language/Import/Listing/Rename/Tooltip",
            "text": "Rename tiddler before importing"
        },
        "$:/language/Import/Listing/Rename/Prompt": {
            "title": "$:/language/Import/Listing/Rename/Prompt",
            "text": "Rename to:"
        },
        "$:/language/Import/Listing/Rename/ConfirmRename": {
            "title": "$:/language/Import/Listing/Rename/ConfirmRename",
            "text": "Rename tiddler"
        },
        "$:/language/Import/Listing/Rename/CancelRename": {
            "title": "$:/language/Import/Listing/Rename/CancelRename",
            "text": "Cancel"
        },
        "$:/language/Import/Listing/Rename/OverwriteWarning": {
            "title": "$:/language/Import/Listing/Rename/OverwriteWarning",
            "text": "A tiddler with this title already exists."
        },
        "$:/language/Import/Upgrader/Plugins/Suppressed/Incompatible": {
            "title": "$:/language/Import/Upgrader/Plugins/Suppressed/Incompatible",
            "text": "Blocked incompatible or obsolete plugin."
        },
        "$:/language/Import/Upgrader/Plugins/Suppressed/Version": {
            "title": "$:/language/Import/Upgrader/Plugins/Suppressed/Version",
            "text": "Blocked plugin (due to incoming <<incoming>> not being newer than existing <<existing>>)."
        },
        "$:/language/Import/Upgrader/Plugins/Upgraded": {
            "title": "$:/language/Import/Upgrader/Plugins/Upgraded",
            "text": "Upgraded plugin from <<incoming>> to <<upgraded>>."
        },
        "$:/language/Import/Upgrader/State/Suppressed": {
            "title": "$:/language/Import/Upgrader/State/Suppressed",
            "text": "Blocked temporary state tiddler."
        },
        "$:/language/Import/Upgrader/System/Suppressed": {
            "title": "$:/language/Import/Upgrader/System/Suppressed",
            "text": "Blocked system tiddler."
        },
        "$:/language/Import/Upgrader/System/Warning": {
            "title": "$:/language/Import/Upgrader/System/Warning",
            "text": "Core module tiddler."
        },
        "$:/language/Import/Upgrader/System/Alert": {
            "title": "$:/language/Import/Upgrader/System/Alert",
            "text": "You are about to import a tiddler that will overwrite a core module tiddler. This is not recommended as it may make the system unstable."
        },
        "$:/language/Import/Upgrader/ThemeTweaks/Created": {
            "title": "$:/language/Import/Upgrader/ThemeTweaks/Created",
            "text": "Migrated theme tweak from <$text text=<<from>>/>."
        },
        "$:/language/AboveStory/ClassicPlugin/Warning": {
            "title": "$:/language/AboveStory/ClassicPlugin/Warning",
            "text": "It looks like you are trying to load a plugin designed for ~TiddlyWiki Classic. Please note that [[these plugins do not work with TiddlyWiki version 5.x.x|https://tiddlywiki.com/#TiddlyWikiClassic]]. ~TiddlyWiki Classic plugins detected:"
        },
        "$:/language/BinaryWarning/Prompt": {
            "title": "$:/language/BinaryWarning/Prompt",
            "text": "This tiddler contains binary data"
        },
        "$:/language/ClassicWarning/Hint": {
            "title": "$:/language/ClassicWarning/Hint",
            "text": "This tiddler is written in TiddlyWiki Classic wiki text format, which is not fully compatible with TiddlyWiki version 5. See https://tiddlywiki.com/static/Upgrading.html for more details."
        },
        "$:/language/ClassicWarning/Upgrade/Caption": {
            "title": "$:/language/ClassicWarning/Upgrade/Caption",
            "text": "upgrade"
        },
        "$:/language/CloseAll/Button": {
            "title": "$:/language/CloseAll/Button",
            "text": "close all"
        },
        "$:/language/ColourPicker/Recent": {
            "title": "$:/language/ColourPicker/Recent",
            "text": "Recent:"
        },
        "$:/language/ConfirmCancelTiddler": {
            "title": "$:/language/ConfirmCancelTiddler",
            "text": "Do you wish to discard changes to the tiddler \"<$text text=<<title>>/>\"?"
        },
        "$:/language/ConfirmDeleteTiddler": {
            "title": "$:/language/ConfirmDeleteTiddler",
            "text": "Do you wish to delete the tiddler \"<$text text=<<title>>/>\"?"
        },
        "$:/language/ConfirmOverwriteTiddler": {
            "title": "$:/language/ConfirmOverwriteTiddler",
            "text": "Do you wish to overwrite the tiddler \"<$text text=<<title>>/>\"?"
        },
        "$:/language/ConfirmEditShadowTiddler": {
            "title": "$:/language/ConfirmEditShadowTiddler",
            "text": "You are about to edit a ShadowTiddler. Any changes will override the default system making future upgrades non-trivial. Are you sure you want to edit \"<$text text=<<title>>/>\"?"
        },
        "$:/language/ConfirmAction": {
            "title": "$:/language/ConfirmAction",
            "text": "Do you wish to proceed?"
        },
        "$:/language/Count": {
            "title": "$:/language/Count",
            "text": "count"
        },
        "$:/language/DefaultNewTiddlerTitle": {
            "title": "$:/language/DefaultNewTiddlerTitle",
            "text": "New Tiddler"
        },
        "$:/language/Diffs/CountMessage": {
            "title": "$:/language/Diffs/CountMessage",
            "text": "<<diff-count>> differences"
        },
        "$:/language/DropMessage": {
            "title": "$:/language/DropMessage",
            "text": "Drop here (or use the 'Escape' key to cancel)"
        },
        "$:/language/Encryption/Cancel": {
            "title": "$:/language/Encryption/Cancel",
            "text": "Cancel"
        },
        "$:/language/Encryption/ConfirmClearPassword": {
            "title": "$:/language/Encryption/ConfirmClearPassword",
            "text": "Do you wish to clear the password? This will remove the encryption applied when saving this wiki"
        },
        "$:/language/Encryption/PromptSetPassword": {
            "title": "$:/language/Encryption/PromptSetPassword",
            "text": "Set a new password for this TiddlyWiki"
        },
        "$:/language/Encryption/Username": {
            "title": "$:/language/Encryption/Username",
            "text": "Username"
        },
        "$:/language/Encryption/Password": {
            "title": "$:/language/Encryption/Password",
            "text": "Password"
        },
        "$:/language/Encryption/RepeatPassword": {
            "title": "$:/language/Encryption/RepeatPassword",
            "text": "Repeat password"
        },
        "$:/language/Encryption/PasswordNoMatch": {
            "title": "$:/language/Encryption/PasswordNoMatch",
            "text": "Passwords do not match"
        },
        "$:/language/Encryption/SetPassword": {
            "title": "$:/language/Encryption/SetPassword",
            "text": "Set password"
        },
        "$:/language/Error/Caption": {
            "title": "$:/language/Error/Caption",
            "text": "Error"
        },
        "$:/language/Error/EditConflict": {
            "title": "$:/language/Error/EditConflict",
            "text": "File changed on server"
        },
        "$:/language/Error/Filter": {
            "title": "$:/language/Error/Filter",
            "text": "Filter error"
        },
        "$:/language/Error/FilterSyntax": {
            "title": "$:/language/Error/FilterSyntax",
            "text": "Syntax error in filter expression"
        },
        "$:/language/Error/FilterRunPrefix": {
            "title": "$:/language/Error/FilterRunPrefix",
            "text": "Filter Error: Unknown prefix for filter run"
        },
        "$:/language/Error/IsFilterOperator": {
            "title": "$:/language/Error/IsFilterOperator",
            "text": "Filter Error: Unknown operand for the 'is' filter operator"
        },
        "$:/language/Error/FormatFilterOperator": {
            "title": "$:/language/Error/FormatFilterOperator",
            "text": "Filter Error: Unknown suffix for the 'format' filter operator"
        },
        "$:/language/Error/LoadingPluginLibrary": {
            "title": "$:/language/Error/LoadingPluginLibrary",
            "text": "Error loading plugin library"
        },
        "$:/language/Error/NetworkErrorAlert": {
            "title": "$:/language/Error/NetworkErrorAlert",
            "text": "`<h2>''Network Error''</h2>It looks like the connection to the server has been lost. This may indicate a problem with your network connection. Please attempt to restore network connectivity before continuing.<br><br>''Any unsaved changes will be automatically synchronised when connectivity is restored''.`"
        },
        "$:/language/Error/RecursiveTransclusion": {
            "title": "$:/language/Error/RecursiveTransclusion",
            "text": "Recursive transclusion error in transclude widget"
        },
        "$:/language/Error/RetrievingSkinny": {
            "title": "$:/language/Error/RetrievingSkinny",
            "text": "Error retrieving skinny tiddler list"
        },
        "$:/language/Error/SavingToTWEdit": {
            "title": "$:/language/Error/SavingToTWEdit",
            "text": "Error saving to TWEdit"
        },
        "$:/language/Error/WhileSaving": {
            "title": "$:/language/Error/WhileSaving",
            "text": "Error while saving"
        },
        "$:/language/Error/XMLHttpRequest": {
            "title": "$:/language/Error/XMLHttpRequest",
            "text": "XMLHttpRequest error code"
        },
        "$:/language/InternalJavaScriptError/Title": {
            "title": "$:/language/InternalJavaScriptError/Title",
            "text": "Internal JavaScript Error"
        },
        "$:/language/InternalJavaScriptError/Hint": {
            "title": "$:/language/InternalJavaScriptError/Hint",
            "text": "Well, this is embarrassing. It is recommended that you restart TiddlyWiki by refreshing your browser"
        },
        "$:/language/InvalidFieldName": {
            "title": "$:/language/InvalidFieldName",
            "text": "Illegal characters in field name \"<$text text=<<fieldName>>/>\". Fields can only contain lowercase letters, digits and the characters underscore (`_`), hyphen (`-`) and period (`.`)"
        },
        "$:/language/LayoutSwitcher/Description": {
            "title": "$:/language/LayoutSwitcher/Description",
            "text": "Open the layout switcher"
        },
        "$:/language/LazyLoadingWarning": {
            "title": "$:/language/LazyLoadingWarning",
            "text": "<p>Trying to load external content from ''<$text text={{!!_canonical_uri}}/>''</p><p>If this message doesn't disappear, either the tiddler content type doesn't match the type of the external content, or you may be using a browser that doesn't support external content for wikis loaded as standalone files. See https://tiddlywiki.com/#ExternalText</p>"
        },
        "$:/language/LoginToTiddlySpace": {
            "title": "$:/language/LoginToTiddlySpace",
            "text": "Login to TiddlySpace"
        },
        "$:/language/Manager/Controls/FilterByTag/None": {
            "title": "$:/language/Manager/Controls/FilterByTag/None",
            "text": "(none)"
        },
        "$:/language/Manager/Controls/FilterByTag/Prompt": {
            "title": "$:/language/Manager/Controls/FilterByTag/Prompt",
            "text": "Filter by tag:"
        },
        "$:/language/Manager/Controls/Order/Prompt": {
            "title": "$:/language/Manager/Controls/Order/Prompt",
            "text": "Reverse order"
        },
        "$:/language/Manager/Controls/Search/Placeholder": {
            "title": "$:/language/Manager/Controls/Search/Placeholder",
            "text": "Search"
        },
        "$:/language/Manager/Controls/Search/Prompt": {
            "title": "$:/language/Manager/Controls/Search/Prompt",
            "text": "Search:"
        },
        "$:/language/Manager/Controls/Show/Option/Tags": {
            "title": "$:/language/Manager/Controls/Show/Option/Tags",
            "text": "tags"
        },
        "$:/language/Manager/Controls/Show/Option/Tiddlers": {
            "title": "$:/language/Manager/Controls/Show/Option/Tiddlers",
            "text": "tiddlers"
        },
        "$:/language/Manager/Controls/Show/Prompt": {
            "title": "$:/language/Manager/Controls/Show/Prompt",
            "text": "Show:"
        },
        "$:/language/Manager/Controls/Sort/Prompt": {
            "title": "$:/language/Manager/Controls/Sort/Prompt",
            "text": "Sort by:"
        },
        "$:/language/Manager/Item/Colour": {
            "title": "$:/language/Manager/Item/Colour",
            "text": "Colour"
        },
        "$:/language/Manager/Item/Fields": {
            "title": "$:/language/Manager/Item/Fields",
            "text": "Fields"
        },
        "$:/language/Manager/Item/Icon/None": {
            "title": "$:/language/Manager/Item/Icon/None",
            "text": "(none)"
        },
        "$:/language/Manager/Item/Icon": {
            "title": "$:/language/Manager/Item/Icon",
            "text": "Icon"
        },
        "$:/language/Manager/Item/RawText": {
            "title": "$:/language/Manager/Item/RawText",
            "text": "Raw text"
        },
        "$:/language/Manager/Item/Tags": {
            "title": "$:/language/Manager/Item/Tags",
            "text": "Tags"
        },
        "$:/language/Manager/Item/Tools": {
            "title": "$:/language/Manager/Item/Tools",
            "text": "Tools"
        },
        "$:/language/Manager/Item/WikifiedText": {
            "title": "$:/language/Manager/Item/WikifiedText",
            "text": "Wikified text"
        },
        "$:/language/MissingTiddler/Hint": {
            "title": "$:/language/MissingTiddler/Hint",
            "text": "Missing tiddler \"<$text text=<<currentTiddler>>/>\" -- click {{||$:/core/ui/Buttons/edit}} to create"
        },
        "$:/language/No": {
            "title": "$:/language/No",
            "text": "No"
        },
        "$:/language/OfficialPluginLibrary": {
            "title": "$:/language/OfficialPluginLibrary",
            "text": "Official ~TiddlyWiki Plugin Library"
        },
        "$:/language/OfficialPluginLibrary/Hint": {
            "title": "$:/language/OfficialPluginLibrary/Hint",
            "text": "The official ~TiddlyWiki plugin library at tiddlywiki.com. Plugins, themes and language packs are maintained by the core team."
        },
        "$:/language/PageTemplate/Description": {
            "title": "$:/language/PageTemplate/Description",
            "text": "the default ~TiddlyWiki layout"
        },
        "$:/language/PageTemplate/Name": {
            "title": "$:/language/PageTemplate/Name",
            "text": "Default ~PageTemplate"
        },
        "$:/language/PluginReloadWarning": {
            "title": "$:/language/PluginReloadWarning",
            "text": "Please save {{$:/core/ui/Buttons/save-wiki}} and reload {{$:/core/ui/Buttons/refresh}} to allow changes to ~JavaScript plugins to take effect"
        },
        "$:/language/RecentChanges/DateFormat": {
            "title": "$:/language/RecentChanges/DateFormat",
            "text": "DDth MMM YYYY"
        },
        "$:/language/Shortcuts/Input/AdvancedSearch/Hint": {
            "title": "$:/language/Shortcuts/Input/AdvancedSearch/Hint",
            "text": "Open the ~AdvancedSearch panel from within the sidebar search field"
        },
        "$:/language/Shortcuts/Input/Accept/Hint": {
            "title": "$:/language/Shortcuts/Input/Accept/Hint",
            "text": "Accept the selected item"
        },
        "$:/language/Shortcuts/Input/AcceptVariant/Hint": {
            "title": "$:/language/Shortcuts/Input/AcceptVariant/Hint",
            "text": "Accept the selected item (variant)"
        },
        "$:/language/Shortcuts/Input/Cancel/Hint": {
            "title": "$:/language/Shortcuts/Input/Cancel/Hint",
            "text": "Clear the input field"
        },
        "$:/language/Shortcuts/Input/Down/Hint": {
            "title": "$:/language/Shortcuts/Input/Down/Hint",
            "text": "Select the next item"
        },
        "$:/language/Shortcuts/Input/Tab-Left/Hint": {
            "title": "$:/language/Shortcuts/Input/Tab-Left/Hint",
            "text": "Select the previous Tab"
        },
        "$:/language/Shortcuts/Input/Tab-Right/Hint": {
            "title": "$:/language/Shortcuts/Input/Tab-Right/Hint",
            "text": "Select the next Tab"
        },
        "$:/language/Shortcuts/Input/Up/Hint": {
            "title": "$:/language/Shortcuts/Input/Up/Hint",
            "text": "Select the previous item"
        },
        "$:/language/Shortcuts/SidebarLayout/Hint": {
            "title": "$:/language/Shortcuts/SidebarLayout/Hint",
            "text": "Change the sidebar layout"
        },
        "$:/language/Switcher/Subtitle/theme": {
            "title": "$:/language/Switcher/Subtitle/theme",
            "text": "Switch Theme"
        },
        "$:/language/Switcher/Subtitle/layout": {
            "title": "$:/language/Switcher/Subtitle/layout",
            "text": "Switch Layout"
        },
        "$:/language/Switcher/Subtitle/language": {
            "title": "$:/language/Switcher/Subtitle/language",
            "text": "Switch Language"
        },
        "$:/language/Switcher/Subtitle/palette": {
            "title": "$:/language/Switcher/Subtitle/palette",
            "text": "Switch Palette"
        },
        "$:/language/SystemTiddler/Tooltip": {
            "title": "$:/language/SystemTiddler/Tooltip",
            "text": "This is a system tiddler"
        },
        "$:/language/SystemTiddlers/Include/Prompt": {
            "title": "$:/language/SystemTiddlers/Include/Prompt",
            "text": "Include system tiddlers"
        },
        "$:/language/TagManager/Colour/Heading": {
            "title": "$:/language/TagManager/Colour/Heading",
            "text": "Colour"
        },
        "$:/language/TagManager/Count/Heading": {
            "title": "$:/language/TagManager/Count/Heading",
            "text": "Count"
        },
        "$:/language/TagManager/Icon/Heading": {
            "title": "$:/language/TagManager/Icon/Heading",
            "text": "Icon"
        },
        "$:/language/TagManager/Icons/None": {
            "title": "$:/language/TagManager/Icons/None",
            "text": "None"
        },
        "$:/language/TagManager/Info/Heading": {
            "title": "$:/language/TagManager/Info/Heading",
            "text": "Info"
        },
        "$:/language/TagManager/Tag/Heading": {
            "title": "$:/language/TagManager/Tag/Heading",
            "text": "Tag"
        },
        "$:/language/Tiddler/DateFormat": {
            "title": "$:/language/Tiddler/DateFormat",
            "text": "DDth MMM YYYY at hh12:0mmam"
        },
        "$:/language/UnsavedChangesWarning": {
            "title": "$:/language/UnsavedChangesWarning",
            "text": "You have unsaved changes in TiddlyWiki"
        },
        "$:/language/Yes": {
            "title": "$:/language/Yes",
            "text": "Yes"
        },
        "$:/language/Modals/Download": {
            "title": "$:/language/Modals/Download",
            "subtitle": "Download changes",
            "footer": "<$button message=\"tm-close-tiddler\">Close</$button>",
            "help": "https://tiddlywiki.com/static/DownloadingChanges.html",
            "text": "Your browser only supports manual saving.\n\nTo save your modified wiki, right click on the download link below and select \"Download file\" or \"Save file\", and then choose the folder and filename.\n\n//You can marginally speed things up by clicking the link with the control key (Windows) or the options/alt key (Mac OS X). You will not be prompted for the folder or filename, but your browser is likely to give it an unrecognisable name -- you may need to rename the file to include an `.html` extension before you can do anything useful with it.//\n\nOn smartphones that do not allow files to be downloaded you can instead bookmark the link, and then sync your bookmarks to a desktop computer from where the wiki can be saved normally.\n"
        },
        "$:/language/Modals/SaveInstructions": {
            "title": "$:/language/Modals/SaveInstructions",
            "subtitle": "Save your work",
            "footer": "<$button message=\"tm-close-tiddler\">Close</$button>",
            "help": "https://tiddlywiki.com/static/SavingChanges.html",
            "text": "Your changes to this wiki need to be saved as a ~TiddlyWiki HTML file.\n\n!!! Desktop browsers\n\n# Select ''Save As'' from the ''File'' menu\n# Choose a filename and location\n#* Some browsers also require you to explicitly specify the file saving format as ''Webpage, HTML only'' or similar\n# Close this tab\n\n!!! Smartphone browsers\n\n# Create a bookmark to this page\n#* If you've got iCloud or Google Sync set up then the bookmark will automatically sync to your desktop where you can open it and save it as above\n# Close this tab\n\n//If you open the bookmark again in Mobile Safari you will see this message again. If you want to go ahead and use the file, just click the ''close'' button below//\n"
        },
        "$:/config/NewJournal/Title": {
            "title": "$:/config/NewJournal/Title",
            "text": "DDth MMM YYYY"
        },
        "$:/config/NewJournal/Text": {
            "title": "$:/config/NewJournal/Text",
            "text": ""
        },
        "$:/config/NewJournal/Tags": {
            "title": "$:/config/NewJournal/Tags",
            "text": "Journal\n"
        },
        "$:/language/Notifications/Save/Done": {
            "title": "$:/language/Notifications/Save/Done",
            "text": "Saved wiki"
        },
        "$:/language/Notifications/Save/Starting": {
            "title": "$:/language/Notifications/Save/Starting",
            "text": "Starting to save wiki"
        },
        "$:/language/Notifications/CopiedToClipboard/Succeeded": {
            "title": "$:/language/Notifications/CopiedToClipboard/Succeeded",
            "text": "Copied to clipboard!"
        },
        "$:/language/Notifications/CopiedToClipboard/Failed": {
            "title": "$:/language/Notifications/CopiedToClipboard/Failed",
            "text": "Failed to copy to clipboard!"
        },
        "$:/language/Search/DefaultResults/Caption": {
            "title": "$:/language/Search/DefaultResults/Caption",
            "text": "List"
        },
        "$:/language/Search/Filter/Caption": {
            "title": "$:/language/Search/Filter/Caption",
            "text": "Filter"
        },
        "$:/language/Search/Filter/Hint": {
            "title": "$:/language/Search/Filter/Hint",
            "text": "Search via a [[filter expression|https://tiddlywiki.com/static/Filters.html]]"
        },
        "$:/language/Search/Filter/Matches": {
            "title": "$:/language/Search/Filter/Matches",
            "text": "//<small><<resultCount>> matches</small>//"
        },
        "$:/language/Search/Matches": {
            "title": "$:/language/Search/Matches",
            "text": "//<small><<resultCount>> matches</small>//"
        },
        "$:/language/Search/Matches/All": {
            "title": "$:/language/Search/Matches/All",
            "text": "All matches:"
        },
        "$:/language/Search/Matches/Title": {
            "title": "$:/language/Search/Matches/Title",
            "text": "Title matches:"
        },
        "$:/language/Search/Search": {
            "title": "$:/language/Search/Search",
            "text": "Search"
        },
        "$:/language/Search/Search/TooShort": {
            "title": "$:/language/Search/Search/TooShort",
            "text": "Search text too short"
        },
        "$:/language/Search/Shadows/Caption": {
            "title": "$:/language/Search/Shadows/Caption",
            "text": "Shadows"
        },
        "$:/language/Search/Shadows/Hint": {
            "title": "$:/language/Search/Shadows/Hint",
            "text": "Search for shadow tiddlers"
        },
        "$:/language/Search/Shadows/Matches": {
            "title": "$:/language/Search/Shadows/Matches",
            "text": "//<small><<resultCount>> matches</small>//"
        },
        "$:/language/Search/Standard/Caption": {
            "title": "$:/language/Search/Standard/Caption",
            "text": "Standard"
        },
        "$:/language/Search/Standard/Hint": {
            "title": "$:/language/Search/Standard/Hint",
            "text": "Search for standard tiddlers"
        },
        "$:/language/Search/Standard/Matches": {
            "title": "$:/language/Search/Standard/Matches",
            "text": "//<small><<resultCount>> matches</small>//"
        },
        "$:/language/Search/System/Caption": {
            "title": "$:/language/Search/System/Caption",
            "text": "System"
        },
        "$:/language/Search/System/Hint": {
            "title": "$:/language/Search/System/Hint",
            "text": "Search for system tiddlers"
        },
        "$:/language/Search/System/Matches": {
            "title": "$:/language/Search/System/Matches",
            "text": "//<small><<resultCount>> matches</small>//"
        },
        "$:/language/SideBar/All/Caption": {
            "title": "$:/language/SideBar/All/Caption",
            "text": "All"
        },
        "$:/language/SideBar/Contents/Caption": {
            "title": "$:/language/SideBar/Contents/Caption",
            "text": "Contents"
        },
        "$:/language/SideBar/Drafts/Caption": {
            "title": "$:/language/SideBar/Drafts/Caption",
            "text": "Drafts"
        },
        "$:/language/SideBar/Explorer/Caption": {
            "title": "$:/language/SideBar/Explorer/Caption",
            "text": "Explorer"
        },
        "$:/language/SideBar/Missing/Caption": {
            "title": "$:/language/SideBar/Missing/Caption",
            "text": "Missing"
        },
        "$:/language/SideBar/More/Caption": {
            "title": "$:/language/SideBar/More/Caption",
            "text": "More"
        },
        "$:/language/SideBar/Open/Caption": {
            "title": "$:/language/SideBar/Open/Caption",
            "text": "Open"
        },
        "$:/language/SideBar/Orphans/Caption": {
            "title": "$:/language/SideBar/Orphans/Caption",
            "text": "Orphans"
        },
        "$:/language/SideBar/Recent/Caption": {
            "title": "$:/language/SideBar/Recent/Caption",
            "text": "Recent"
        },
        "$:/language/SideBar/Shadows/Caption": {
            "title": "$:/language/SideBar/Shadows/Caption",
            "text": "Shadows"
        },
        "$:/language/SideBar/System/Caption": {
            "title": "$:/language/SideBar/System/Caption",
            "text": "System"
        },
        "$:/language/SideBar/Tags/Caption": {
            "title": "$:/language/SideBar/Tags/Caption",
            "text": "Tags"
        },
        "$:/language/SideBar/Tags/Untagged/Caption": {
            "title": "$:/language/SideBar/Tags/Untagged/Caption",
            "text": "untagged"
        },
        "$:/language/SideBar/Tools/Caption": {
            "title": "$:/language/SideBar/Tools/Caption",
            "text": "Tools"
        },
        "$:/language/SideBar/Types/Caption": {
            "title": "$:/language/SideBar/Types/Caption",
            "text": "Types"
        },
        "$:/SiteSubtitle": {
            "title": "$:/SiteSubtitle",
            "text": "a non-linear personal web notebook"
        },
        "$:/SiteTitle": {
            "title": "$:/SiteTitle",
            "text": "My ~TiddlyWiki"
        },
        "$:/language/Snippets/ListByTag": {
            "title": "$:/language/Snippets/ListByTag",
            "tags": "$:/tags/TextEditor/Snippet",
            "caption": "List of tiddlers by tag",
            "text": "<<list-links \"[tag[task]sort[title]]\">>\n"
        },
        "$:/language/Snippets/MacroDefinition": {
            "title": "$:/language/Snippets/MacroDefinition",
            "tags": "$:/tags/TextEditor/Snippet",
            "caption": "Macro definition",
            "text": "\\define macroName(param1:\"default value\",param2)\nText of the macro\n\\end\n"
        },
        "$:/language/Snippets/Table4x3": {
            "title": "$:/language/Snippets/Table4x3",
            "tags": "$:/tags/TextEditor/Snippet",
            "caption": "Table with 4 columns by 3 rows",
            "text": "|! |!Alpha |!Beta |!Gamma |!Delta |\n|!One | | | | |\n|!Two | | | | |\n|!Three | | | | |\n"
        },
        "$:/language/Snippets/TableOfContents": {
            "title": "$:/language/Snippets/TableOfContents",
            "tags": "$:/tags/TextEditor/Snippet",
            "caption": "Table of Contents",
            "text": "<div class=\"tc-table-of-contents\">\n\n<<toc-selective-expandable 'TableOfContents'>>\n\n</div>"
        },
        "$:/language/ThemeTweaks/ThemeTweaks": {
            "title": "$:/language/ThemeTweaks/ThemeTweaks",
            "text": "Theme Tweaks"
        },
        "$:/language/ThemeTweaks/ThemeTweaks/Hint": {
            "title": "$:/language/ThemeTweaks/ThemeTweaks/Hint",
            "text": "You can tweak certain aspects of the ''Vanilla'' theme."
        },
        "$:/language/ThemeTweaks/Options": {
            "title": "$:/language/ThemeTweaks/Options",
            "text": "Options"
        },
        "$:/language/ThemeTweaks/Options/SidebarLayout": {
            "title": "$:/language/ThemeTweaks/Options/SidebarLayout",
            "text": "Sidebar layout"
        },
        "$:/language/ThemeTweaks/Options/SidebarLayout/Fixed-Fluid": {
            "title": "$:/language/ThemeTweaks/Options/SidebarLayout/Fixed-Fluid",
            "text": "Fixed story, fluid sidebar"
        },
        "$:/language/ThemeTweaks/Options/SidebarLayout/Fluid-Fixed": {
            "title": "$:/language/ThemeTweaks/Options/SidebarLayout/Fluid-Fixed",
            "text": "Fluid story, fixed sidebar"
        },
        "$:/language/ThemeTweaks/Options/StickyTitles": {
            "title": "$:/language/ThemeTweaks/Options/StickyTitles",
            "text": "Sticky titles"
        },
        "$:/language/ThemeTweaks/Options/StickyTitles/Hint": {
            "title": "$:/language/ThemeTweaks/Options/StickyTitles/Hint",
            "text": "Causes tiddler titles to \"stick\" to the top of the browser window"
        },
        "$:/language/ThemeTweaks/Options/CodeWrapping": {
            "title": "$:/language/ThemeTweaks/Options/CodeWrapping",
            "text": "Wrap long lines in code blocks"
        },
        "$:/language/ThemeTweaks/Settings": {
            "title": "$:/language/ThemeTweaks/Settings",
            "text": "Settings"
        },
        "$:/language/ThemeTweaks/Settings/FontFamily": {
            "title": "$:/language/ThemeTweaks/Settings/FontFamily",
            "text": "Font family"
        },
        "$:/language/ThemeTweaks/Settings/CodeFontFamily": {
            "title": "$:/language/ThemeTweaks/Settings/CodeFontFamily",
            "text": "Code font family"
        },
        "$:/language/ThemeTweaks/Settings/EditorFontFamily": {
            "title": "$:/language/ThemeTweaks/Settings/EditorFontFamily",
            "text": "Editor font family"
        },
        "$:/language/ThemeTweaks/Settings/BackgroundImage": {
            "title": "$:/language/ThemeTweaks/Settings/BackgroundImage",
            "text": "Page background image"
        },
        "$:/language/ThemeTweaks/Settings/BackgroundImageAttachment": {
            "title": "$:/language/ThemeTweaks/Settings/BackgroundImageAttachment",
            "text": "Page background image attachment"
        },
        "$:/language/ThemeTweaks/Settings/BackgroundImageAttachment/Scroll": {
            "title": "$:/language/ThemeTweaks/Settings/BackgroundImageAttachment/Scroll",
            "text": "Scroll with tiddlers"
        },
        "$:/language/ThemeTweaks/Settings/BackgroundImageAttachment/Fixed": {
            "title": "$:/language/ThemeTweaks/Settings/BackgroundImageAttachment/Fixed",
            "text": "Fixed to window"
        },
        "$:/language/ThemeTweaks/Settings/BackgroundImageSize": {
            "title": "$:/language/ThemeTweaks/Settings/BackgroundImageSize",
            "text": "Page background image size"
        },
        "$:/language/ThemeTweaks/Settings/BackgroundImageSize/Auto": {
            "title": "$:/language/ThemeTweaks/Settings/BackgroundImageSize/Auto",
            "text": "Auto"
        },
        "$:/language/ThemeTweaks/Settings/BackgroundImageSize/Cover": {
            "title": "$:/language/ThemeTweaks/Settings/BackgroundImageSize/Cover",
            "text": "Cover"
        },
        "$:/language/ThemeTweaks/Settings/BackgroundImageSize/Contain": {
            "title": "$:/language/ThemeTweaks/Settings/BackgroundImageSize/Contain",
            "text": "Contain"
        },
        "$:/language/ThemeTweaks/Metrics": {
            "title": "$:/language/ThemeTweaks/Metrics",
            "text": "Sizes"
        },
        "$:/language/ThemeTweaks/Metrics/FontSize": {
            "title": "$:/language/ThemeTweaks/Metrics/FontSize",
            "text": "Font size"
        },
        "$:/language/ThemeTweaks/Metrics/LineHeight": {
            "title": "$:/language/ThemeTweaks/Metrics/LineHeight",
            "text": "Line height"
        },
        "$:/language/ThemeTweaks/Metrics/BodyFontSize": {
            "title": "$:/language/ThemeTweaks/Metrics/BodyFontSize",
            "text": "Font size for tiddler body"
        },
        "$:/language/ThemeTweaks/Metrics/BodyLineHeight": {
            "title": "$:/language/ThemeTweaks/Metrics/BodyLineHeight",
            "text": "Line height for tiddler body"
        },
        "$:/language/ThemeTweaks/Metrics/StoryLeft": {
            "title": "$:/language/ThemeTweaks/Metrics/StoryLeft",
            "text": "Story left position"
        },
        "$:/language/ThemeTweaks/Metrics/StoryLeft/Hint": {
            "title": "$:/language/ThemeTweaks/Metrics/StoryLeft/Hint",
            "text": "how far the left margin of the story river<br>(tiddler area) is from the left of the page"
        },
        "$:/language/ThemeTweaks/Metrics/StoryTop": {
            "title": "$:/language/ThemeTweaks/Metrics/StoryTop",
            "text": "Story top position"
        },
        "$:/language/ThemeTweaks/Metrics/StoryTop/Hint": {
            "title": "$:/language/ThemeTweaks/Metrics/StoryTop/Hint",
            "text": "how far the top margin of the story river<br>is from the top of the page"
        },
        "$:/language/ThemeTweaks/Metrics/StoryRight": {
            "title": "$:/language/ThemeTweaks/Metrics/StoryRight",
            "text": "Story right"
        },
        "$:/language/ThemeTweaks/Metrics/StoryRight/Hint": {
            "title": "$:/language/ThemeTweaks/Metrics/StoryRight/Hint",
            "text": "how far the left margin of the sidebar <br>is from the left of the page"
        },
        "$:/language/ThemeTweaks/Metrics/StoryWidth": {
            "title": "$:/language/ThemeTweaks/Metrics/StoryWidth",
            "text": "Story width"
        },
        "$:/language/ThemeTweaks/Metrics/StoryWidth/Hint": {
            "title": "$:/language/ThemeTweaks/Metrics/StoryWidth/Hint",
            "text": "the overall width of the story river"
        },
        "$:/language/ThemeTweaks/Metrics/TiddlerWidth": {
            "title": "$:/language/ThemeTweaks/Metrics/TiddlerWidth",
            "text": "Tiddler width"
        },
        "$:/language/ThemeTweaks/Metrics/TiddlerWidth/Hint": {
            "title": "$:/language/ThemeTweaks/Metrics/TiddlerWidth/Hint",
            "text": "within the story river"
        },
        "$:/language/ThemeTweaks/Metrics/SidebarBreakpoint": {
            "title": "$:/language/ThemeTweaks/Metrics/SidebarBreakpoint",
            "text": "Sidebar breakpoint"
        },
        "$:/language/ThemeTweaks/Metrics/SidebarBreakpoint/Hint": {
            "title": "$:/language/ThemeTweaks/Metrics/SidebarBreakpoint/Hint",
            "text": "the minimum page width at which the story<br>river and sidebar will appear side by side"
        },
        "$:/language/ThemeTweaks/Metrics/SidebarWidth": {
            "title": "$:/language/ThemeTweaks/Metrics/SidebarWidth",
            "text": "Sidebar width"
        },
        "$:/language/ThemeTweaks/Metrics/SidebarWidth/Hint": {
            "title": "$:/language/ThemeTweaks/Metrics/SidebarWidth/Hint",
            "text": "the width of the sidebar in fluid-fixed layout"
        },
        "$:/language/TiddlerInfo/Advanced/Caption": {
            "title": "$:/language/TiddlerInfo/Advanced/Caption",
            "text": "Advanced"
        },
        "$:/language/TiddlerInfo/Advanced/PluginInfo/Empty/Hint": {
            "title": "$:/language/TiddlerInfo/Advanced/PluginInfo/Empty/Hint",
            "text": "none"
        },
        "$:/language/TiddlerInfo/Advanced/PluginInfo/Heading": {
            "title": "$:/language/TiddlerInfo/Advanced/PluginInfo/Heading",
            "text": "Plugin Details"
        },
        "$:/language/TiddlerInfo/Advanced/PluginInfo/Hint": {
            "title": "$:/language/TiddlerInfo/Advanced/PluginInfo/Hint",
            "text": "This plugin contains the following shadow tiddlers:"
        },
        "$:/language/TiddlerInfo/Advanced/ShadowInfo/Heading": {
            "title": "$:/language/TiddlerInfo/Advanced/ShadowInfo/Heading",
            "text": "Shadow Status"
        },
        "$:/language/TiddlerInfo/Advanced/ShadowInfo/NotShadow/Hint": {
            "title": "$:/language/TiddlerInfo/Advanced/ShadowInfo/NotShadow/Hint",
            "text": "The tiddler <$link to=<<infoTiddler>>><$text text=<<infoTiddler>>/></$link> is not a shadow tiddler"
        },
        "$:/language/TiddlerInfo/Advanced/ShadowInfo/Shadow/Hint": {
            "title": "$:/language/TiddlerInfo/Advanced/ShadowInfo/Shadow/Hint",
            "text": "The tiddler <$link to=<<infoTiddler>>><$text text=<<infoTiddler>>/></$link> is a shadow tiddler"
        },
        "$:/language/TiddlerInfo/Advanced/ShadowInfo/Shadow/Source": {
            "title": "$:/language/TiddlerInfo/Advanced/ShadowInfo/Shadow/Source",
            "text": "It is defined in the plugin <$link to=<<pluginTiddler>>><$text text=<<pluginTiddler>>/></$link>"
        },
        "$:/language/TiddlerInfo/Advanced/ShadowInfo/OverriddenShadow/Hint": {
            "title": "$:/language/TiddlerInfo/Advanced/ShadowInfo/OverriddenShadow/Hint",
            "text": "It is overridden by an ordinary tiddler"
        },
        "$:/language/TiddlerInfo/Fields/Caption": {
            "title": "$:/language/TiddlerInfo/Fields/Caption",
            "text": "Fields"
        },
        "$:/language/TiddlerInfo/List/Caption": {
            "title": "$:/language/TiddlerInfo/List/Caption",
            "text": "List"
        },
        "$:/language/TiddlerInfo/List/Empty": {
            "title": "$:/language/TiddlerInfo/List/Empty",
            "text": "This tiddler does not have a list"
        },
        "$:/language/TiddlerInfo/Listed/Caption": {
            "title": "$:/language/TiddlerInfo/Listed/Caption",
            "text": "Listed"
        },
        "$:/language/TiddlerInfo/Listed/Empty": {
            "title": "$:/language/TiddlerInfo/Listed/Empty",
            "text": "This tiddler is not listed by any others"
        },
        "$:/language/TiddlerInfo/References/Caption": {
            "title": "$:/language/TiddlerInfo/References/Caption",
            "text": "Backlinks"
        },
        "$:/language/TiddlerInfo/References/Empty": {
            "title": "$:/language/TiddlerInfo/References/Empty",
            "text": "No tiddlers link to this one"
        },
        "$:/language/TiddlerInfo/Tagging/Caption": {
            "title": "$:/language/TiddlerInfo/Tagging/Caption",
            "text": "Tagging"
        },
        "$:/language/TiddlerInfo/Tagging/Empty": {
            "title": "$:/language/TiddlerInfo/Tagging/Empty",
            "text": "No tiddlers are tagged with this one"
        },
        "$:/language/TiddlerInfo/Tools/Caption": {
            "title": "$:/language/TiddlerInfo/Tools/Caption",
            "text": "Tools"
        },
        "$:/language/Docs/Types/application/javascript": {
            "title": "$:/language/Docs/Types/application/javascript",
            "description": "JavaScript code",
            "name": "application/javascript",
            "group": "Developer",
            "group-sort": "2"
        },
        "$:/language/Docs/Types/application/json": {
            "title": "$:/language/Docs/Types/application/json",
            "description": "JSON data",
            "name": "application/json",
            "group": "Developer",
            "group-sort": "2"
        },
        "$:/language/Docs/Types/application/x-tiddler-dictionary": {
            "title": "$:/language/Docs/Types/application/x-tiddler-dictionary",
            "description": "Data dictionary",
            "name": "application/x-tiddler-dictionary",
            "group": "Developer",
            "group-sort": "2"
        },
        "$:/language/Docs/Types/image/gif": {
            "title": "$:/language/Docs/Types/image/gif",
            "description": "GIF image",
            "name": "image/gif",
            "group": "Image",
            "group-sort": "1"
        },
        "$:/language/Docs/Types/image/jpeg": {
            "title": "$:/language/Docs/Types/image/jpeg",
            "description": "JPEG image",
            "name": "image/jpeg",
            "group": "Image",
            "group-sort": "1"
        },
        "$:/language/Docs/Types/image/png": {
            "title": "$:/language/Docs/Types/image/png",
            "description": "PNG image",
            "name": "image/png",
            "group": "Image",
            "group-sort": "1"
        },
        "$:/language/Docs/Types/image/svg+xml": {
            "title": "$:/language/Docs/Types/image/svg+xml",
            "description": "Structured Vector Graphics image",
            "name": "image/svg+xml",
            "group": "Image",
            "group-sort": "1"
        },
        "$:/language/Docs/Types/image/x-icon": {
            "title": "$:/language/Docs/Types/image/x-icon",
            "description": "ICO format icon file",
            "name": "image/x-icon",
            "group": "Image",
            "group-sort": "1"
        },
        "$:/language/Docs/Types/text/css": {
            "title": "$:/language/Docs/Types/text/css",
            "description": "Static stylesheet",
            "name": "text/css",
            "group": "Developer",
            "group-sort": "2"
        },
        "$:/language/Docs/Types/text/html": {
            "title": "$:/language/Docs/Types/text/html",
            "description": "HTML markup",
            "name": "text/html",
            "group": "Text",
            "group-sort": "0"
        },
        "$:/language/Docs/Types/text/plain": {
            "title": "$:/language/Docs/Types/text/plain",
            "description": "Plain text",
            "name": "text/plain",
            "group": "Text",
            "group-sort": "0"
        },
        "$:/language/Docs/Types/text/vnd.tiddlywiki": {
            "title": "$:/language/Docs/Types/text/vnd.tiddlywiki",
            "description": "TiddlyWiki 5",
            "name": "text/vnd.tiddlywiki",
            "group": "Text",
            "group-sort": "0"
        },
        "$:/language/Docs/Types/text/x-tiddlywiki": {
            "title": "$:/language/Docs/Types/text/x-tiddlywiki",
            "description": "TiddlyWiki Classic",
            "name": "text/x-tiddlywiki",
            "group": "Text",
            "group-sort": "0"
        },
        "$:/languages/en-GB/icon": {
            "title": "$:/languages/en-GB/icon",
            "type": "image/svg+xml",
            "text": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 60 30\" width=\"1200\" height=\"600\">\n<clipPath id=\"t\">\n\t<path d=\"M30,15 h30 v15 z v15 h-30 z h-30 v-15 z v-15 h30 z\"/>\n</clipPath>\n<path d=\"M0,0 v30 h60 v-30 z\" fill=\"#00247d\"/>\n<path d=\"M0,0 L60,30 M60,0 L0,30\" stroke=\"#fff\" stroke-width=\"6\"/>\n<path d=\"M0,0 L60,30 M60,0 L0,30\" clip-path=\"url(#t)\" stroke=\"#cf142b\" stroke-width=\"4\"/>\n<path d=\"M30,0 v30 M0,15 h60\" stroke=\"#fff\" stroke-width=\"10\"/>\n<path d=\"M30,0 v30 M0,15 h60\" stroke=\"#cf142b\" stroke-width=\"6\"/>\n</svg>\n"
        },
        "$:/languages/en-GB": {
            "title": "$:/languages/en-GB",
            "name": "en-GB",
            "description": "English (British)",
            "author": "JeremyRuston",
            "core-version": ">=5.0.0\"",
            "text": "Stub pseudo-plugin for the default language"
        },
        "$:/core/modules/commander.js": {
            "title": "$:/core/modules/commander.js",
            "text": "/*\\\ntitle: $:/core/modules/commander.js\ntype: application/javascript\nmodule-type: global\n\nThe $tw.Commander class is a command interpreter\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nParse a sequence of commands\n\tcommandTokens: an array of command string tokens\n\twiki: reference to the wiki store object\n\tstreams: {output:, error:}, each of which has a write(string) method\n\tcallback: a callback invoked as callback(err) where err is null if there was no error\n*/\nvar Commander = function(commandTokens,callback,wiki,streams) {\n\tvar path = require(\"path\");\n\tthis.commandTokens = commandTokens;\n\tthis.nextToken = 0;\n\tthis.callback = callback;\n\tthis.wiki = wiki;\n\tthis.streams = streams;\n\tthis.outputPath = path.resolve($tw.boot.wikiPath,$tw.config.wikiOutputSubDir);\n};\n\n/*\nLog a string if verbose flag is set\n*/\nCommander.prototype.log = function(str) {\n\tif(this.verbose) {\n\t\tthis.streams.output.write(str + \"\\n\");\n\t}\n};\n\n/*\nWrite a string if verbose flag is set\n*/\nCommander.prototype.write = function(str) {\n\tif(this.verbose) {\n\t\tthis.streams.output.write(str);\n\t}\n};\n\n/*\nAdd a string of tokens to the command queue\n*/\nCommander.prototype.addCommandTokens = function(commandTokens) {\n\tvar params = commandTokens.slice(0);\n\tparams.unshift(0);\n\tparams.unshift(this.nextToken);\n\tArray.prototype.splice.apply(this.commandTokens,params);\n};\n\n/*\nExecute the sequence of commands and invoke a callback on completion\n*/\nCommander.prototype.execute = function() {\n\tthis.executeNextCommand();\n};\n\n/*\nExecute the next command in the sequence\n*/\nCommander.prototype.executeNextCommand = function() {\n\tvar self = this;\n\t// Invoke the callback if there are no more commands\n\tif(this.nextToken >= this.commandTokens.length) {\n\t\tthis.callback(null);\n\t} else {\n\t\t// Get and check the command token\n\t\tvar commandName = this.commandTokens[this.nextToken++];\n\t\tif(commandName.substr(0,2) !== \"--\") {\n\t\t\tthis.callback(\"Missing command: \" + commandName);\n\t\t} else {\n\t\t\tcommandName = commandName.substr(2); // Trim off the --\n\t\t\t// Accumulate the parameters to the command\n\t\t\tvar params = [];\n\t\t\twhile(this.nextToken < this.commandTokens.length && \n\t\t\t\tthis.commandTokens[this.nextToken].substr(0,2) !== \"--\") {\n\t\t\t\tparams.push(this.commandTokens[this.nextToken++]);\n\t\t\t}\n\t\t\t// Get the command info\n\t\t\tvar command = $tw.commands[commandName],\n\t\t\t\tc,err;\n\t\t\tif(!command) {\n\t\t\t\tthis.callback(\"Unknown command: \" + commandName);\n\t\t\t} else {\n\t\t\t\tif(this.verbose) {\n\t\t\t\t\tthis.streams.output.write(\"Executing command: \" + commandName + \" \" + params.join(\" \") + \"\\n\");\n\t\t\t\t}\n\t\t\t\t// Parse named parameters if required\n\t\t\t\tif(command.info.namedParameterMode) {\n\t\t\t\t\tparams = this.extractNamedParameters(params,command.info.mandatoryParameters);\n\t\t\t\t\tif(typeof params === \"string\") {\n\t\t\t\t\t\treturn this.callback(params);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif(command.info.synchronous) {\n\t\t\t\t\t// Synchronous command\n\t\t\t\t\tc = new command.Command(params,this);\n\t\t\t\t\terr = c.execute();\n\t\t\t\t\tif(err) {\n\t\t\t\t\t\tthis.callback(err);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthis.executeNextCommand();\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\t// Asynchronous command\n\t\t\t\t\tc = new command.Command(params,this,function(err) {\n\t\t\t\t\t\tif(err) {\n\t\t\t\t\t\t\tself.callback(err);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tself.executeNextCommand();\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t\terr = c.execute();\n\t\t\t\t\tif(err) {\n\t\t\t\t\t\tthis.callback(err);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n};\n\n/*\nGiven an array of parameter strings `params` in name:value format, and an array of mandatory parameter names in `mandatoryParameters`, returns a hashmap of values or a string if error\n*/\nCommander.prototype.extractNamedParameters = function(params,mandatoryParameters) {\n\tmandatoryParameters = mandatoryParameters || [];\n\tvar errors = [],\n\t\tparamsByName = Object.create(null);\n\t// Extract the parameters\n\t$tw.utils.each(params,function(param) {\n\t\tvar index = param.indexOf(\"=\");\n\t\tif(index < 1) {\n\t\t\terrors.push(\"malformed named parameter: '\" + param + \"'\");\n\t\t}\n\t\tparamsByName[param.slice(0,index)] = $tw.utils.trim(param.slice(index+1));\n\t});\n\t// Check the mandatory parameters are present\n\t$tw.utils.each(mandatoryParameters,function(mandatoryParameter) {\n\t\tif(!$tw.utils.hop(paramsByName,mandatoryParameter)) {\n\t\t\terrors.push(\"missing mandatory parameter: '\" + mandatoryParameter + \"'\");\n\t\t}\n\t});\n\t// Return any errors\n\tif(errors.length > 0) {\n\t\treturn errors.join(\" and\\n\");\n\t} else {\n\t\treturn paramsByName;\t\t\n\t}\n};\n\nCommander.initCommands = function(moduleType) {\n\tmoduleType = moduleType || \"command\";\n\t$tw.commands = {};\n\t$tw.modules.forEachModuleOfType(moduleType,function(title,module) {\n\t\tvar c = $tw.commands[module.info.name] = {};\n\t\t// Add the methods defined by the module\n\t\tfor(var f in module) {\n\t\t\tif($tw.utils.hop(module,f)) {\n\t\t\t\tc[f] = module[f];\n\t\t\t}\n\t\t}\n\t});\n};\n\nexports.Commander = Commander;\n\n})();\n",
            "type": "application/javascript",
            "module-type": "global"
        },
        "$:/core/modules/commands/build.js": {
            "title": "$:/core/modules/commands/build.js",
            "text": "/*\\\ntitle: $:/core/modules/commands/build.js\ntype: application/javascript\nmodule-type: command\n\nCommand to build a build target\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.info = {\n\tname: \"build\",\n\tsynchronous: true\n};\n\nvar Command = function(params,commander) {\n\tthis.params = params;\n\tthis.commander = commander;\n};\n\nCommand.prototype.execute = function() {\n\t// Get the build targets defined in the wiki\n\tvar buildTargets = $tw.boot.wikiInfo.build;\n\tif(!buildTargets) {\n\t\treturn \"No build targets defined\";\n\t}\n\t// Loop through each of the specified targets\n\tvar targets;\n\tif(this.params.length > 0) {\n\t\ttargets = this.params;\n\t} else {\n\t\ttargets = Object.keys(buildTargets);\n\t}\n\tfor(var targetIndex=0; targetIndex<targets.length; targetIndex++) {\n\t\tvar target = targets[targetIndex],\n\t\t\tcommands = buildTargets[target];\n\t\tif(!commands) {\n\t\t\treturn \"Build target '\" + target + \"' not found\";\n\t\t}\n\t\t// Add the commands to the queue\n\t\tthis.commander.addCommandTokens(commands);\n\t}\n\treturn null;\n};\n\nexports.Command = Command;\n\n})();\n",
            "type": "application/javascript",
            "module-type": "command"
        },
        "$:/core/modules/commands/clearpassword.js": {
            "title": "$:/core/modules/commands/clearpassword.js",
            "text": "/*\\\ntitle: $:/core/modules/commands/clearpassword.js\ntype: application/javascript\nmodule-type: command\n\nClear password for crypto operations\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.info = {\n\tname: \"clearpassword\",\n\tsynchronous: true\n};\n\nvar Command = function(params,commander,callback) {\n\tthis.params = params;\n\tthis.commander = commander;\n\tthis.callback = callback;\n};\n\nCommand.prototype.execute = function() {\n\t$tw.crypto.setPassword(null);\n\treturn null;\n};\n\nexports.Command = Command;\n\n})();\n",
            "type": "application/javascript",
            "module-type": "command"
        },
        "$:/core/modules/commands/deletetiddlers.js": {
            "title": "$:/core/modules/commands/deletetiddlers.js",
            "text": "/*\\\ntitle: $:/core/modules/commands/deletetiddlers.js\ntype: application/javascript\nmodule-type: command\n\nCommand to delete tiddlers\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.info = {\n\tname: \"deletetiddlers\",\n\tsynchronous: true\n};\n\nvar Command = function(params,commander,callback) {\n\tthis.params = params;\n\tthis.commander = commander;\n\tthis.callback = callback;\n};\n\nCommand.prototype.execute = function() {\n\tif(this.params.length < 1) {\n\t\treturn \"Missing filter\";\n\t}\n\tvar self = this,\n\t\twiki = this.commander.wiki,\n\t\tfilter = this.params[0],\n\t\ttiddlers = wiki.filterTiddlers(filter);\n\t$tw.utils.each(tiddlers,function(title) {\n\t\twiki.deleteTiddler(title);\n\t});\n\treturn null;\n};\n\nexports.Command = Command;\n\n})();\n",
            "type": "application/javascript",
            "module-type": "command"
        },
        "$:/core/modules/commands/editions.js": {
            "title": "$:/core/modules/commands/editions.js",
            "text": "/*\\\ntitle: $:/core/modules/commands/editions.js\ntype: application/javascript\nmodule-type: command\n\nCommand to list the available editions\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.info = {\n\tname: \"editions\",\n\tsynchronous: true\n};\n\nvar Command = function(params,commander) {\n\tthis.params = params;\n\tthis.commander = commander;\n};\n\nCommand.prototype.execute = function() {\n\tvar self = this;\n\t// Output the list\n\tthis.commander.streams.output.write(\"Available editions:\\n\\n\");\n\tvar editionInfo = $tw.utils.getEditionInfo();\n\t$tw.utils.each(editionInfo,function(info,name) {\n\t\tself.commander.streams.output.write(\"    \" + name + \": \" + info.description + \"\\n\");\n\t});\n\tthis.commander.streams.output.write(\"\\n\");\n\treturn null;\n};\n\nexports.Command = Command;\n\n})();\n",
            "type": "application/javascript",
            "module-type": "command"
        },
        "$:/core/modules/commands/fetch.js": {
            "title": "$:/core/modules/commands/fetch.js",
            "text": "/*\\\ntitle: $:/core/modules/commands/fetch.js\ntype: application/javascript\nmodule-type: command\n\nCommands to fetch external tiddlers\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.info = {\n\tname: \"fetch\",\n\tsynchronous: false\n};\n\nvar Command = function(params,commander,callback) {\n\tthis.params = params;\n\tthis.commander = commander;\n\tthis.callback = callback;\n};\n\nCommand.prototype.execute = function() {\n\tif(this.params.length < 2) {\n\t\treturn \"Missing subcommand and url\";\n\t}\n\tswitch(this.params[0]) {\n\t\tcase \"raw-file\":\n\t\t\treturn this.fetchFiles({\n\t\t\t\traw: true,\n\t\t\t\turl: this.params[1],\n\t\t\t\ttransformFilter: this.params[2] || \"\",\n\t\t\t\tcallback: this.callback\n\t\t\t});\n\t\t\tbreak;\n\t\tcase \"file\":\n\t\t\treturn this.fetchFiles({\n\t\t\t\turl: this.params[1],\n\t\t\t\timportFilter: this.params[2],\n\t\t\t\ttransformFilter: this.params[3] || \"\",\n\t\t\t\tcallback: this.callback\n\t\t\t});\n\t\t\tbreak;\n\t\tcase \"raw-files\":\n\t\t\treturn this.fetchFiles({\n\t\t\t\traw: true,\n\t\t\t\turlFilter: this.params[1],\n\t\t\t\ttransformFilter: this.params[2] || \"\",\n\t\t\t\tcallback: this.callback\n\t\t\t});\n\t\t\tbreak;\n\t\tcase \"files\":\n\t\t\treturn this.fetchFiles({\n\t\t\t\turlFilter: this.params[1],\n\t\t\t\timportFilter: this.params[2],\n\t\t\t\ttransformFilter: this.params[3] || \"\",\n\t\t\t\tcallback: this.callback\n\t\t\t});\n\t\t\tbreak;\n\t}\n\treturn null;\n};\n\nCommand.prototype.fetchFiles = function(options) {\n\tvar self = this;\n\t// Get the list of URLs\n\tvar urls;\n\tif(options.url) {\n\t\turls = [options.url]\n\t} else if(options.urlFilter) {\n\t\turls = this.commander.wiki.filterTiddlers(options.urlFilter);\n\t} else {\n\t\treturn \"Missing URL\";\n\t}\n\t// Process each URL in turn\n\tvar next = 0;\n\tvar getNextFile = function(err) {\n\t\tif(err) {\n\t\t\treturn options.callback(err);\n\t\t}\n\t\tif(next < urls.length) {\n\t\t\tself.fetchFile(urls[next++],options,getNextFile);\n\t\t} else {\n\t\t\toptions.callback(null);\n\t\t}\n\t};\n\tgetNextFile(null);\n\t// Success\n\treturn null;\n};\n\nCommand.prototype.fetchFile = function(url,options,callback,redirectCount) {\n\tif(redirectCount > 10) {\n\t\treturn callback(\"Error too many redirects retrieving \" + url);\n\t}\n\tvar self = this,\n\t\tlib = url.substr(0,8) === \"https://\" ? require(\"https\") : require(\"http\");\n\tlib.get(url).on(\"response\",function(response) {\n\t    var type = (response.headers[\"content-type\"] || \"\").split(\";\")[0],\n\t    \tdata = [];\n\t    self.commander.write(\"Reading \" + url + \": \");\n\t    response.on(\"data\",function(chunk) {\n\t        data.push(chunk);\n\t        self.commander.write(\".\");\n\t    });\n\t    response.on(\"end\",function() {\n\t        self.commander.write(\"\\n\");\n\t        if(response.statusCode === 200) {\n\t\t        self.processBody(Buffer.concat(data),type,options,url);\n\t\t        callback(null);\n\t        } else {\n\t        \tif(response.statusCode === 302 || response.statusCode === 303 || response.statusCode === 307) {\n\t        \t\treturn self.fetchFile(response.headers.location,options,callback,redirectCount + 1);\n\t        \t} else {\n\t\t        \treturn callback(\"Error \" + response.statusCode + \" retrieving \" + url)\t        \t\t\n\t        \t}\n\t        }\n\t   \t});\n\t   \tresponse.on(\"error\",function(e) {\n\t\t\tconsole.log(\"Error on GET request: \" + e);\n\t\t\tcallback(e);\n\t   \t});\n\t});\n\treturn null;\n};\n\nCommand.prototype.processBody = function(body,type,options,url) {\n\tvar self = this;\n\t// Collect the tiddlers in a wiki\n\tvar incomingWiki = new $tw.Wiki();\n\tif(options.raw) {\n\t\tvar typeInfo = type ? $tw.config.contentTypeInfo[type] : null,\n\t\t\tencoding = typeInfo ? typeInfo.encoding : \"utf8\";\n\t\tincomingWiki.addTiddler(new $tw.Tiddler({\n\t\t\ttitle: url,\n\t\t\ttype: type,\n\t\t\ttext: body.toString(encoding)\n\t\t}));\n\t} else {\n\t\t// Deserialise the file to extract the tiddlers\n\t\tvar tiddlers = this.commander.wiki.deserializeTiddlers(type || \"text/html\",body.toString(\"utf8\"),{});\n\t\t$tw.utils.each(tiddlers,function(tiddler) {\n\t\t\tincomingWiki.addTiddler(new $tw.Tiddler(tiddler));\n\t\t});\n\t}\n\t// Filter the tiddlers to select the ones we want\n\tvar filteredTitles = incomingWiki.filterTiddlers(options.importFilter || \"[all[tiddlers]]\");\n\t// Import the selected tiddlers\n\tvar count = 0;\n\tincomingWiki.each(function(tiddler,title) {\n\t\tif(filteredTitles.indexOf(title) !== -1) {\n\t\t\tvar newTiddler;\n\t\t\tif(options.transformFilter) {\n\t\t\t\tvar transformedTitle = (incomingWiki.filterTiddlers(options.transformFilter,null,self.commander.wiki.makeTiddlerIterator([title])) || [\"\"])[0];\n\t\t\t\tif(transformedTitle) {\n\t\t\t\t\tself.commander.log(\"Importing \" + title + \" as \" + transformedTitle)\n\t\t\t\t\tnewTiddler = new $tw.Tiddler(tiddler,{title: transformedTitle});\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tself.commander.log(\"Importing \" + title)\n\t\t\t\tnewTiddler = tiddler;\n\t\t\t}\n\t\t\tself.commander.wiki.importTiddler(newTiddler);\n\t\t\tcount++;\n\t\t}\n\t});\n\tself.commander.log(\"Imported \" + count + \" tiddlers\")\n};\n\nexports.Command = Command;\n\n})();\n",
            "type": "application/javascript",
            "module-type": "command"
        },
        "$:/core/modules/commands/help.js": {
            "title": "$:/core/modules/commands/help.js",
            "text": "/*\\\ntitle: $:/core/modules/commands/help.js\ntype: application/javascript\nmodule-type: command\n\nHelp command\n\n\\*/\n(function(){\n\n/*jshint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.info = {\n\tname: \"help\",\n\tsynchronous: true\n};\n\nvar Command = function(params,commander) {\n\tthis.params = params;\n\tthis.commander = commander;\n};\n\nCommand.prototype.execute = function() {\n\tvar subhelp = this.params[0] || \"default\",\n\t\thelpBase = \"$:/language/Help/\",\n\t\ttext;\n\tif(!this.commander.wiki.getTiddler(helpBase + subhelp)) {\n\t\tsubhelp = \"notfound\";\n\t}\n\t// Wikify the help as formatted text (ie block elements generate newlines)\n\ttext = this.commander.wiki.renderTiddler(\"text/plain-formatted\",helpBase + subhelp);\n\t// Remove any leading linebreaks\n\ttext = text.replace(/^(\\r?\\n)*/g,\"\");\n\tthis.commander.streams.output.write(text);\n};\n\nexports.Command = Command;\n\n})();\n",
            "type": "application/javascript",
            "module-type": "command"
        },
        "$:/core/modules/commands/import.js": {
            "title": "$:/core/modules/commands/import.js",
            "text": "/*\\\ntitle: $:/core/modules/commands/import.js\ntype: application/javascript\nmodule-type: command\n\nCommand to import tiddlers from a file\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.info = {\n\tname: \"import\",\n\tsynchronous: true\n};\n\nvar Command = function(params,commander,callback) {\n\tthis.params = params;\n\tthis.commander = commander;\n\tthis.callback = callback;\n};\n\nCommand.prototype.execute = function() {\n\tvar self = this,\n\t\tfs = require(\"fs\"),\n\t\tpath = require(\"path\");\n\tif(this.params.length < 2) {\n\t\treturn \"Missing parameters\";\n\t}\n\tvar filename = self.params[0],\n\t\tdeserializer = self.params[1],\n\t\ttitle = self.params[2] || filename,\n\t\tencoding = self.params[3] || \"utf8\",\n\t\ttext = fs.readFileSync(filename,encoding),\n\t\ttiddlers = this.commander.wiki.deserializeTiddlers(null,text,{title: title},{deserializer: deserializer});\n\t$tw.utils.each(tiddlers,function(tiddler) {\n\t\tself.commander.wiki.importTiddler(new $tw.Tiddler(tiddler));\n\t});\n\tthis.commander.log(tiddlers.length + \" tiddler(s) imported\");\n\treturn null;\n};\n\nexports.Command = Command;\n\n})();\n",
            "type": "application/javascript",
            "module-type": "command"
        },
        "$:/core/modules/commands/init.js": {
            "title": "$:/core/modules/commands/init.js",
            "text": "/*\\\ntitle: $:/core/modules/commands/init.js\ntype: application/javascript\nmodule-type: command\n\nCommand to initialise an empty wiki folder\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.info = {\n\tname: \"init\",\n\tsynchronous: true\n};\n\nvar Command = function(params,commander) {\n\tthis.params = params;\n\tthis.commander = commander;\n};\n\nCommand.prototype.execute = function() {\n\tvar fs = require(\"fs\"),\n\t\tpath = require(\"path\");\n\t// Check that we don't already have a valid wiki folder\n\tif($tw.boot.wikiTiddlersPath || ($tw.utils.isDirectory($tw.boot.wikiPath) && !$tw.utils.isDirectoryEmpty($tw.boot.wikiPath))) {\n\t\treturn \"Wiki folder is not empty\";\n\t}\n\t// Loop through each of the specified editions\n\tvar editions = this.params.length > 0 ? this.params : [\"empty\"];\n\tfor(var editionIndex=0; editionIndex<editions.length; editionIndex++) {\n\t\tvar editionName = editions[editionIndex];\n\t\t// Check the edition exists\n\t\tvar editionPath = $tw.findLibraryItem(editionName,$tw.getLibraryItemSearchPaths($tw.config.editionsPath,$tw.config.editionsEnvVar));\n\t\tif(!$tw.utils.isDirectory(editionPath)) {\n\t\t\treturn \"Edition '\" + editionName + \"' not found\";\n\t\t}\n\t\t// Copy the edition content\n\t\tvar err = $tw.utils.copyDirectory(editionPath,$tw.boot.wikiPath);\n\t\tif(!err) {\n\t\t\tthis.commander.streams.output.write(\"Copied edition '\" + editionName + \"' to \" + $tw.boot.wikiPath + \"\\n\");\n\t\t} else {\n\t\t\treturn err;\n\t\t}\n\t}\n\t// Tweak the tiddlywiki.info to remove any included wikis\n\tvar packagePath = $tw.boot.wikiPath + \"/tiddlywiki.info\",\n\t\tpackageJson = JSON.parse(fs.readFileSync(packagePath));\n\tdelete packageJson.includeWikis;\n\tfs.writeFileSync(packagePath,JSON.stringify(packageJson,null,$tw.config.preferences.jsonSpaces));\n\treturn null;\n};\n\nexports.Command = Command;\n\n})();\n",
            "type": "application/javascript",
            "module-type": "command"
        },
        "$:/core/modules/commands/listen.js": {
            "title": "$:/core/modules/commands/listen.js",
            "text": "/*\\\ntitle: $:/core/modules/commands/listen.js\ntype: application/javascript\nmodule-type: command\n\nListen for HTTP requests and serve tiddlers\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Server = require(\"$:/core/modules/server/server.js\").Server;\n\nexports.info = {\n\tname: \"listen\",\n\tsynchronous: true,\n\tnamedParameterMode: true,\n\tmandatoryParameters: [],\n};\n\nvar Command = function(params,commander,callback) {\n\tvar self = this;\n\tthis.params = params;\n\tthis.commander = commander;\n\tthis.callback = callback;\n};\n\nCommand.prototype.execute = function() {\n\tvar self = this;\n\tif(!$tw.boot.wikiTiddlersPath) {\n\t\t$tw.utils.warning(\"Warning: Wiki folder '\" + $tw.boot.wikiPath + \"' does not exist or is missing a tiddlywiki.info file\");\n\t}\n\t// Set up server\n\tthis.server = new Server({\n\t\twiki: this.commander.wiki,\n\t\tvariables: self.params\n\t});\n\tvar nodeServer = this.server.listen();\n\t$tw.hooks.invokeHook(\"th-server-command-post-start\",this.server,nodeServer,\"tiddlywiki\");\n\treturn null;\n};\n\nexports.Command = Command;\n\n})();\n",
            "type": "application/javascript",
            "module-type": "command"
        },
        "$:/core/modules/commands/load.js": {
            "title": "$:/core/modules/commands/load.js",
            "text": "/*\\\ntitle: $:/core/modules/commands/load.js\ntype: application/javascript\nmodule-type: command\n\nCommand to load tiddlers from a file or directory\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.info = {\n\tname: \"load\",\n\tsynchronous: false\n};\n\nvar Command = function(params,commander,callback) {\n\tthis.params = params;\n\tthis.commander = commander;\n\tthis.callback = callback;\n};\n\nCommand.prototype.execute = function() {\n\tvar self = this,\n\t\tfs = require(\"fs\"),\n\t\tpath = require(\"path\");\n\tif(this.params.length < 1) {\n\t\treturn \"Missing filename\";\n\t}\n\tvar tiddlers = $tw.loadTiddlersFromPath(self.params[0]),\n\t\tcount = 0;\n\t$tw.utils.each(tiddlers,function(tiddlerInfo) {\n\t\t$tw.utils.each(tiddlerInfo.tiddlers,function(tiddler) {\n\t\t\tself.commander.wiki.importTiddler(new $tw.Tiddler(tiddler));\n\t\t\tcount++;\n\t\t});\n\t});\n\tif(!count && self.params[1] !== \"noerror\") {\n\t\tself.callback(\"No tiddlers found in file \\\"\" + self.params[0] + \"\\\"\");\n\t} else {\n\t\tself.callback(null);\n\t}\n\treturn null;\n};\n\nexports.Command = Command;\n\n})();\n",
            "type": "application/javascript",
            "module-type": "command"
        },
        "$:/core/modules/commands/makelibrary.js": {
            "title": "$:/core/modules/commands/makelibrary.js",
            "text": "/*\\\ntitle: $:/core/modules/commands/makelibrary.js\ntype: application/javascript\nmodule-type: command\n\nCommand to pack all of the plugins in the library into a plugin tiddler of type \"library\"\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.info = {\n\tname: \"makelibrary\",\n\tsynchronous: true\n};\n\nvar UPGRADE_LIBRARY_TITLE = \"$:/UpgradeLibrary\";\n\nvar Command = function(params,commander,callback) {\n\tthis.params = params;\n\tthis.commander = commander;\n\tthis.callback = callback;\n};\n\nCommand.prototype.execute = function() {\n\tvar wiki = this.commander.wiki,\n\t\tfs = require(\"fs\"),\n\t\tpath = require(\"path\"),\n\t\tupgradeLibraryTitle = this.params[0] || UPGRADE_LIBRARY_TITLE,\n\t\ttiddlers = {};\n\t// Collect up the library plugins\n\tvar collectPlugins = function(folder) {\n\t\t\tvar pluginFolders = $tw.utils.getSubdirectories(folder) || [];\n\t\t\tfor(var p=0; p<pluginFolders.length; p++) {\n\t\t\t\tif(!$tw.boot.excludeRegExp.test(pluginFolders[p])) {\n\t\t\t\t\tpluginFields = $tw.loadPluginFolder(path.resolve(folder,\"./\" + pluginFolders[p]));\n\t\t\t\t\tif(pluginFields && pluginFields.title) {\n\t\t\t\t\t\ttiddlers[pluginFields.title] = pluginFields;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\tcollectPublisherPlugins = function(folder) {\n\t\t\tvar publisherFolders = $tw.utils.getSubdirectories(folder) || [];\n\t\t\tfor(var t=0; t<publisherFolders.length; t++) {\n\t\t\t\tif(!$tw.boot.excludeRegExp.test(publisherFolders[t])) {\n\t\t\t\t\tcollectPlugins(path.resolve(folder,\"./\" + publisherFolders[t]));\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t$tw.utils.each($tw.getLibraryItemSearchPaths($tw.config.pluginsPath,$tw.config.pluginsEnvVar),collectPublisherPlugins);\n\t$tw.utils.each($tw.getLibraryItemSearchPaths($tw.config.themesPath,$tw.config.themesEnvVar),collectPublisherPlugins);\n\t$tw.utils.each($tw.getLibraryItemSearchPaths($tw.config.languagesPath,$tw.config.languagesEnvVar),collectPlugins);\n\t// Save the upgrade library tiddler\n\tvar pluginFields = {\n\t\ttitle: upgradeLibraryTitle,\n\t\ttype: \"application/json\",\n\t\t\"plugin-type\": \"library\",\n\t\t\"text\": JSON.stringify({tiddlers: tiddlers})\n\t};\n\twiki.addTiddler(new $tw.Tiddler(pluginFields));\n\treturn null;\n};\n\nexports.Command = Command;\n\n})();\n",
            "type": "application/javascript",
            "module-type": "command"
        },
        "$:/core/modules/commands/output.js": {
            "title": "$:/core/modules/commands/output.js",
            "text": "/*\\\ntitle: $:/core/modules/commands/output.js\ntype: application/javascript\nmodule-type: command\n\nCommand to set the default output location (defaults to current working directory)\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.info = {\n\tname: \"output\",\n\tsynchronous: true\n};\n\nvar Command = function(params,commander,callback) {\n\tthis.params = params;\n\tthis.commander = commander;\n\tthis.callback = callback;\n};\n\nCommand.prototype.execute = function() {\n\tvar fs = require(\"fs\"),\n\t\tpath = require(\"path\");\n\tif(this.params.length < 1) {\n\t\treturn \"Missing output path\";\n\t}\n\tthis.commander.outputPath = path.resolve(process.cwd(),this.params[0]);\n\treturn null;\n};\n\nexports.Command = Command;\n\n})();\n",
            "type": "application/javascript",
            "module-type": "command"
        },
        "$:/core/modules/commands/password.js": {
            "title": "$:/core/modules/commands/password.js",
            "text": "/*\\\ntitle: $:/core/modules/commands/password.js\ntype: application/javascript\nmodule-type: command\n\nSave password for crypto operations\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.info = {\n\tname: \"password\",\n\tsynchronous: true\n};\n\nvar Command = function(params,commander,callback) {\n\tthis.params = params;\n\tthis.commander = commander;\n\tthis.callback = callback;\n};\n\nCommand.prototype.execute = function() {\n\tif(this.params.length < 1) {\n\t\treturn \"Missing password\";\n\t}\n\t$tw.crypto.setPassword(this.params[0]);\n\treturn null;\n};\n\nexports.Command = Command;\n\n})();\n",
            "type": "application/javascript",
            "module-type": "command"
        },
        "$:/core/modules/commands/render.js": {
            "title": "$:/core/modules/commands/render.js",
            "text": "/*\\\ntitle: $:/core/modules/commands/render.js\ntype: application/javascript\nmodule-type: command\n\nRender individual tiddlers and save the results to the specified files\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar widget = require(\"$:/core/modules/widgets/widget.js\");\n\nexports.info = {\n\tname: \"render\",\n\tsynchronous: true\n};\n\nvar Command = function(params,commander,callback) {\n\tthis.params = params;\n\tthis.commander = commander;\n\tthis.callback = callback;\n};\n\nCommand.prototype.execute = function() {\n\tif(this.params.length < 1) {\n\t\treturn \"Missing tiddler filter\";\n\t}\n\tvar self = this,\n\t\tfs = require(\"fs\"),\n\t\tpath = require(\"path\"),\n\t\twiki = this.commander.wiki,\n\t\ttiddlerFilter = this.params[0],\n\t\tfilenameFilter = this.params[1] || \"[is[tiddler]addsuffix[.html]]\",\n\t\ttype = this.params[2] || \"text/html\",\n\t\ttemplate = this.params[3],\n\t\tvarName = this.params[4],\n\t\tvarValue = this.params[5],\n\t\ttiddlers = wiki.filterTiddlers(tiddlerFilter);\n\t$tw.utils.each(tiddlers,function(title) {\n\t\tvar parser = wiki.parseTiddler(template || title),\n\t\t\tvariables = {currentTiddler: title};\n\t\tif(varName) {\n\t\t\tvariables[varName] = varValue || \"\";\n\t\t}\n\t\tvar widgetNode = wiki.makeWidget(parser,{variables: variables}),\n\t\t\tcontainer = $tw.fakeDocument.createElement(\"div\");\n\t\twidgetNode.render(container,null);\n\t\tvar text = type === \"text/html\" ? container.innerHTML : container.textContent,\n\t\t\tfilepath = path.resolve(self.commander.outputPath,wiki.filterTiddlers(filenameFilter,$tw.rootWidget,wiki.makeTiddlerIterator([title]))[0]);\n\t\tif(self.commander.verbose) {\n\t\t\tconsole.log(\"Rendering \\\"\" + title + \"\\\" to \\\"\" + filepath + \"\\\"\");\n\t\t}\n\t\t$tw.utils.createFileDirectories(filepath);\n\t\tfs.writeFileSync(filepath,text,\"utf8\");\n\t});\n\treturn null;\n};\n\nexports.Command = Command;\n\n})();\n",
            "type": "application/javascript",
            "module-type": "command"
        },
        "$:/core/modules/commands/rendertiddler.js": {
            "title": "$:/core/modules/commands/rendertiddler.js",
            "text": "/*\\\ntitle: $:/core/modules/commands/rendertiddler.js\ntype: application/javascript\nmodule-type: command\n\nCommand to render a tiddler and save it to a file\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.info = {\n\tname: \"rendertiddler\",\n\tsynchronous: false\n};\n\nvar Command = function(params,commander,callback) {\n\tthis.params = params;\n\tthis.commander = commander;\n\tthis.callback = callback;\n};\n\nCommand.prototype.execute = function() {\n\tif(this.params.length < 2) {\n\t\treturn \"Missing filename\";\n\t}\n\tvar self = this,\n\t\tfs = require(\"fs\"),\n\t\tpath = require(\"path\"),\n\t\ttitle = this.params[0],\n\t\tfilename = path.resolve(this.commander.outputPath,this.params[1]),\n\t\ttype = this.params[2] || \"text/html\",\n\t\ttemplate = this.params[3],\n\t\tname = this.params[4],\n\t\tvalue = this.params[5],\n\t\tvariables = {};\n\t$tw.utils.createFileDirectories(filename);\n\tif(template) {\n\t\tvariables.currentTiddler = title;\n\t\ttitle = template;\n\t}\n\tif(name && value) {\n\t\tvariables[name] = value;\n\t}\n\tfs.writeFile(filename,this.commander.wiki.renderTiddler(type,title,{variables: variables}),\"utf8\",function(err) {\n\t\tself.callback(err);\n\t});\n\treturn null;\n};\n\nexports.Command = Command;\n\n})();\n",
            "type": "application/javascript",
            "module-type": "command"
        },
        "$:/core/modules/commands/rendertiddlers.js": {
            "title": "$:/core/modules/commands/rendertiddlers.js",
            "text": "/*\\\ntitle: $:/core/modules/commands/rendertiddlers.js\ntype: application/javascript\nmodule-type: command\n\nCommand to render several tiddlers to a folder of files\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar widget = require(\"$:/core/modules/widgets/widget.js\");\n\nexports.info = {\n\tname: \"rendertiddlers\",\n\tsynchronous: true\n};\n\nvar Command = function(params,commander,callback) {\n\tthis.params = params;\n\tthis.commander = commander;\n\tthis.callback = callback;\n};\n\nCommand.prototype.execute = function() {\n\tif(this.params.length < 2) {\n\t\treturn \"Missing filename\";\n\t}\n\tvar self = this,\n\t\tfs = require(\"fs\"),\n\t\tpath = require(\"path\"),\n\t\twiki = this.commander.wiki,\n\t\tfilter = this.params[0],\n\t\ttemplate = this.params[1],\n\t\toutputPath = this.commander.outputPath,\n\t\tpathname = path.resolve(outputPath,this.params[2]),\t\t\n\t\ttype = this.params[3] || \"text/html\",\n\t\textension = this.params[4] || \".html\",\n\t\tdeleteDirectory = (this.params[5] || \"\").toLowerCase() !== \"noclean\",\n\t\ttiddlers = wiki.filterTiddlers(filter);\n\tif(deleteDirectory) {\n\t\t$tw.utils.deleteDirectory(pathname);\n\t}\n\t$tw.utils.each(tiddlers,function(title) {\n\t\tvar parser = wiki.parseTiddler(template),\n\t\t\twidgetNode = wiki.makeWidget(parser,{variables: {currentTiddler: title}}),\n\t\t\tcontainer = $tw.fakeDocument.createElement(\"div\");\n\t\twidgetNode.render(container,null);\n\t\tvar text = type === \"text/html\" ? container.innerHTML : container.textContent,\n\t\t\texportPath = null;\n\t\tif($tw.utils.hop($tw.macros,\"tv-get-export-path\")) {\n\t\t\tvar macroPath = $tw.macros[\"tv-get-export-path\"].run.apply(self,[title]);\n\t\t\tif(macroPath) {\n\t\t\t\texportPath = path.resolve(outputPath,macroPath + extension);\n\t\t\t}\n\t\t}\n\t\tvar finalPath = exportPath || path.resolve(pathname,encodeURIComponent(title) + extension);\n\t\t$tw.utils.createFileDirectories(finalPath);\n\t\tfs.writeFileSync(finalPath,text,\"utf8\");\n\t});\n\treturn null;\n};\n\nexports.Command = Command;\n\n})();\n",
            "type": "application/javascript",
            "module-type": "command"
        },
        "$:/core/modules/commands/save.js": {
            "title": "$:/core/modules/commands/save.js",
            "text": "/*\\\ntitle: $:/core/modules/commands/save.js\ntype: application/javascript\nmodule-type: command\n\nSaves individual tiddlers in their raw text or binary format to the specified files\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.info = {\n\tname: \"save\",\n\tsynchronous: true\n};\n\nvar Command = function(params,commander,callback) {\n\tthis.params = params;\n\tthis.commander = commander;\n\tthis.callback = callback;\n};\n\nCommand.prototype.execute = function() {\n\tif(this.params.length < 1) {\n\t\treturn \"Missing filename filter\";\n\t}\n\tvar self = this,\n\t\tfs = require(\"fs\"),\n\t\tpath = require(\"path\"),\n\t\twiki = this.commander.wiki,\n\t\ttiddlerFilter = this.params[0],\n\t\tfilenameFilter = this.params[1] || \"[is[tiddler]]\",\n\t\ttiddlers = wiki.filterTiddlers(tiddlerFilter);\n\t$tw.utils.each(tiddlers,function(title) {\n\t\tvar tiddler = self.commander.wiki.getTiddler(title),\n\t\t\ttype = tiddler.fields.type || \"text/vnd.tiddlywiki\",\n\t\t\tcontentTypeInfo = $tw.config.contentTypeInfo[type] || {encoding: \"utf8\"},\n\t\t\tfilepath = path.resolve(self.commander.outputPath,wiki.filterTiddlers(filenameFilter,$tw.rootWidget,wiki.makeTiddlerIterator([title]))[0]);\n\t\tif(self.commander.verbose) {\n\t\t\tconsole.log(\"Saving \\\"\" + title + \"\\\" to \\\"\" + filepath + \"\\\"\");\n\t\t}\n\t\t$tw.utils.createFileDirectories(filepath);\n\t\tfs.writeFileSync(filepath,tiddler.fields.text,contentTypeInfo.encoding);\n\t});\n\treturn null;\n};\n\nexports.Command = Command;\n\n})();\n",
            "type": "application/javascript",
            "module-type": "command"
        },
        "$:/core/modules/commands/savelibrarytiddlers.js": {
            "title": "$:/core/modules/commands/savelibrarytiddlers.js",
            "text": "/*\\\ntitle: $:/core/modules/commands/savelibrarytiddlers.js\ntype: application/javascript\nmodule-type: command\n\nCommand to save the subtiddlers of a bundle tiddler as a series of JSON files\n\n--savelibrarytiddlers <tiddler> <tiddler-filter> <pathname> <skinnylisting>\n\nThe tiddler identifies the bundle tiddler that contains the subtiddlers.\n\nThe tiddler filter specifies the plugins to be included.\n\nThe pathname specifies the pathname to the folder in which the JSON files should be saved. The filename is the URL encoded title of the subtiddler.\n\nThe skinnylisting specifies the title of the tiddler to which a JSON catalogue of the subtiddlers will be saved. The JSON file contains the same data as the bundle tiddler but with the `text` field removed.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.info = {\n\tname: \"savelibrarytiddlers\",\n\tsynchronous: true\n};\n\nvar Command = function(params,commander,callback) {\n\tthis.params = params;\n\tthis.commander = commander;\n\tthis.callback = callback;\n};\n\nCommand.prototype.execute = function() {\n\tif(this.params.length < 2) {\n\t\treturn \"Missing filename\";\n\t}\n\tvar self = this,\n\t\tfs = require(\"fs\"),\n\t\tpath = require(\"path\"),\n\t\tcontainerTitle = this.params[0],\n\t\tfilter = this.params[1],\n\t\tbasepath = this.params[2],\n\t\tskinnyListTitle = this.params[3];\n\t// Get the container tiddler as data\n\tvar containerData = self.commander.wiki.getTiddlerDataCached(containerTitle,undefined);\n\tif(!containerData) {\n\t\treturn \"'\" + containerTitle + \"' is not a tiddler bundle\";\n\t}\n\t// Filter the list of plugins\n\tvar pluginList = [];\n\t$tw.utils.each(containerData.tiddlers,function(tiddler,title) {\n\t\tpluginList.push(title);\n\t});\n\tvar filteredPluginList;\n\tif(filter) {\n\t\tfilteredPluginList = self.commander.wiki.filterTiddlers(filter,null,self.commander.wiki.makeTiddlerIterator(pluginList));\n\t} else {\n\t\tfilteredPluginList = pluginList;\n\t}\n\t// Iterate through the plugins\n\tvar skinnyList = [];\n\t$tw.utils.each(filteredPluginList,function(title) {\n\t\tvar tiddler = containerData.tiddlers[title];\n\t\t// Save each JSON file and collect the skinny data\n\t\tvar pathname = path.resolve(self.commander.outputPath,basepath + encodeURIComponent(title) + \".json\");\n\t\t$tw.utils.createFileDirectories(pathname);\n\t\tfs.writeFileSync(pathname,JSON.stringify(tiddler),\"utf8\");\n\t\t// Collect the skinny list data\n\t\tvar pluginTiddlers = JSON.parse(tiddler.text),\n\t\t\treadmeContent = (pluginTiddlers.tiddlers[title + \"/readme\"] || {}).text,\n\t\t\tdoesRequireReload = !!self.commander.wiki.doesPluginInfoRequireReload(pluginTiddlers),\n\t\t\ticonTiddler = pluginTiddlers.tiddlers[title + \"/icon\"] || {},\n\t\t\ticonType = iconTiddler.type,\n\t\t\ticonText = iconTiddler.text,\n\t\t\ticonContent;\n\t\tif(iconType && iconText) {\n\t\t\ticonContent = $tw.utils.makeDataUri(iconText,iconType);\n\t\t}\n\t\tskinnyList.push($tw.utils.extend({},tiddler,{\n\t\t\ttext: undefined,\n\t\t\treadme: readmeContent,\n\t\t\t\"requires-reload\": doesRequireReload ? \"yes\" : \"no\",\n\t\t\ticon: iconContent\n\t\t}));\n\t});\n\t// Save the catalogue tiddler\n\tif(skinnyListTitle) {\n\t\tself.commander.wiki.setTiddlerData(skinnyListTitle,skinnyList);\n\t}\n\treturn null;\n};\n\nexports.Command = Command;\n\n})();\n",
            "type": "application/javascript",
            "module-type": "command"
        },
        "$:/core/modules/commands/savetiddler.js": {
            "title": "$:/core/modules/commands/savetiddler.js",
            "text": "/*\\\ntitle: $:/core/modules/commands/savetiddler.js\ntype: application/javascript\nmodule-type: command\n\nCommand to save the content of a tiddler to a file\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.info = {\n\tname: \"savetiddler\",\n\tsynchronous: false\n};\n\nvar Command = function(params,commander,callback) {\n\tthis.params = params;\n\tthis.commander = commander;\n\tthis.callback = callback;\n};\n\nCommand.prototype.execute = function() {\n\tif(this.params.length < 2) {\n\t\treturn \"Missing filename\";\n\t}\n\tvar self = this,\n\t\tfs = require(\"fs\"),\n\t\tpath = require(\"path\"),\n\t\ttitle = this.params[0],\n\t\tfilename = path.resolve(this.commander.outputPath,this.params[1]),\n\t\ttiddler = this.commander.wiki.getTiddler(title);\n\tif(tiddler) {\n\t\tvar type = tiddler.fields.type || \"text/vnd.tiddlywiki\",\n\t\t\tcontentTypeInfo = $tw.config.contentTypeInfo[type] || {encoding: \"utf8\"};\n\t\t$tw.utils.createFileDirectories(filename);\n\t\tfs.writeFile(filename,tiddler.fields.text,contentTypeInfo.encoding,function(err) {\n\t\t\tself.callback(err);\n\t\t});\n\t} else {\n\t\treturn \"Missing tiddler: \" + title;\n\t}\n\treturn null;\n};\n\nexports.Command = Command;\n\n})();\n",
            "type": "application/javascript",
            "module-type": "command"
        },
        "$:/core/modules/commands/savetiddlers.js": {
            "title": "$:/core/modules/commands/savetiddlers.js",
            "text": "/*\\\ntitle: $:/core/modules/commands/savetiddlers.js\ntype: application/javascript\nmodule-type: command\n\nCommand to save several tiddlers to a folder of files\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar widget = require(\"$:/core/modules/widgets/widget.js\");\n\nexports.info = {\n\tname: \"savetiddlers\",\n\tsynchronous: true\n};\n\nvar Command = function(params,commander,callback) {\n\tthis.params = params;\n\tthis.commander = commander;\n\tthis.callback = callback;\n};\n\nCommand.prototype.execute = function() {\n\tif(this.params.length < 1) {\n\t\treturn \"Missing filename\";\n\t}\n\tvar self = this,\n\t\tfs = require(\"fs\"),\n\t\tpath = require(\"path\"),\n\t\twiki = this.commander.wiki,\n\t\tfilter = this.params[0],\n\t\tpathname = path.resolve(this.commander.outputPath,this.params[1]),\n\t\tdeleteDirectory = (this.params[2] || \"\").toLowerCase() !== \"noclean\",\n\t\ttiddlers = wiki.filterTiddlers(filter);\n\tif(deleteDirectory) {\n\t\t$tw.utils.deleteDirectory(pathname);\n\t}\n\t$tw.utils.createDirectory(pathname);\n\t$tw.utils.each(tiddlers,function(title) {\n\t\tvar tiddler = self.commander.wiki.getTiddler(title),\n\t\t\ttype = tiddler.fields.type || \"text/vnd.tiddlywiki\",\n\t\t\tcontentTypeInfo = $tw.config.contentTypeInfo[type] || {encoding: \"utf8\"},\n\t\t\tfilename = path.resolve(pathname,encodeURIComponent(title));\n\t\tfs.writeFileSync(filename,tiddler.fields.text,contentTypeInfo.encoding);\n\t});\n\treturn null;\n};\n\nexports.Command = Command;\n\n})();\n",
            "type": "application/javascript",
            "module-type": "command"
        },
        "$:/core/modules/commands/savewikifolder.js": {
            "title": "$:/core/modules/commands/savewikifolder.js",
            "text": "/*\\\ntitle: $:/core/modules/commands/savewikifolder.js\ntype: application/javascript\nmodule-type: command\n\nCommand to save the current wiki as a wiki folder\n\n--savewikifolder <wikifolderpath> [<filter>]\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.info = {\n\tname: \"savewikifolder\",\n\tsynchronous: true\n};\n\nvar fs,path;\nif($tw.node) {\n\tfs = require(\"fs\");\n\tpath = require(\"path\");\n}\n\nvar Command = function(params,commander,callback) {\n\tthis.params = params;\n\tthis.commander = commander;\n\tthis.callback = callback;\n};\n\nCommand.prototype.execute = function() {\n\tif(this.params.length < 1) {\n\t\treturn \"Missing wiki folder path\";\n\t}\n\tvar wikifoldermaker = new WikiFolderMaker(this.params[0],this.params[1],this.commander);\n\treturn wikifoldermaker.save();\n};\n\nfunction WikiFolderMaker(wikiFolderPath,wikiFilter,commander) {\n\tthis.wikiFolderPath = wikiFolderPath;\n\tthis.wikiFilter = wikiFilter || \"[all[tiddlers]]\";\n\tthis.commander = commander;\n\tthis.wiki = commander.wiki;\n\tthis.savedPaths = []; // So that we can detect filename clashes\n}\n\nWikiFolderMaker.prototype.log = function(str) {\n\tif(this.commander.verbose) {\n\t\tconsole.log(str);\n\t}\n};\n\nWikiFolderMaker.prototype.tiddlersToIgnore = [\n\t\"$:/boot/boot.css\",\n\t\"$:/boot/boot.js\",\n\t\"$:/boot/bootprefix.js\",\n\t\"$:/core\",\n\t\"$:/library/sjcl.js\",\n\t\"$:/temp/info-plugin\"\n];\n\n/*\nReturns null if successful, or an error string if there was an error\n*/\nWikiFolderMaker.prototype.save = function() {\n\tvar self = this;\n\t// Check that the output directory doesn't exist\n\tif(fs.existsSync(this.wikiFolderPath) && !$tw.utils.isDirectoryEmpty(this.wikiFolderPath)) {\n\t\treturn \"The unpackwiki command requires that the output wiki folder be empty\";\n\t}\n\t// Get the tiddlers from the source wiki\n\tvar tiddlerTitles = this.wiki.filterTiddlers(this.wikiFilter);\n\t// Initialise a new tiddlwiki.info file\n\tvar newWikiInfo = {};\n\t// Process each incoming tiddler in turn\n\t$tw.utils.each(tiddlerTitles,function(title) {\n\t\tvar tiddler = self.wiki.getTiddler(title);\n\t\tif(tiddler) {\n\t\t\tif(self.tiddlersToIgnore.indexOf(title) !== -1) {\n\t\t\t\t// Ignore the core plugin and the ephemeral info plugin\n\t\t\t\tself.log(\"Ignoring tiddler: \" + title);\n\t\t\t} else {\n\t\t\t\tvar type = tiddler.fields.type,\n\t\t\t\t\tpluginType = tiddler.fields[\"plugin-type\"];\n\t\t\t\tif(type === \"application/json\" && pluginType) {\n\t\t\t\t\t// Plugin tiddler\n\t\t\t\t\tvar libraryDetails = self.findPluginInLibrary(title);\n\t\t\t\t\tif(libraryDetails) {\n\t\t\t\t\t\t// A plugin from the core library\n\t\t\t\t\t\tself.log(\"Adding built-in plugin: \" + libraryDetails.name);\n\t\t\t\t\t\tnewWikiInfo[libraryDetails.type] = newWikiInfo[libraryDetails.type]  || [];\n\t\t\t\t\t\t$tw.utils.pushTop(newWikiInfo[libraryDetails.type],libraryDetails.name);\n\t\t\t\t\t} else {\n\t\t\t\t\t\t// A custom plugin\n\t\t\t\t\t\tself.log(\"Processing custom plugin: \" + title);\n\t\t\t\t\t\tself.saveCustomPlugin(tiddler);\n\t\t\t\t\t}\t\t\t\t\n\t\t\t\t} else {\n\t\t\t\t\t// Ordinary tiddler\n\t\t\t\t\tself.saveTiddler(\"tiddlers\",tiddler);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t});\n\t// Save the tiddlywiki.info file\n\tthis.saveJSONFile(\"tiddlywiki.info\",newWikiInfo);\n\tself.log(\"Writing tiddlywiki.info: \" + JSON.stringify(newWikiInfo,null,$tw.config.preferences.jsonSpaces));\n\treturn null;\n};\n\n/*\nTest whether the specified tiddler is a plugin in the plugin library\n*/\nWikiFolderMaker.prototype.findPluginInLibrary = function(title) {\n\tvar parts = title.split(\"/\"),\n\t\tpluginPath, type, name;\n\tif(parts[0] === \"$:\") {\n\t\tif(parts[1] === \"languages\" && parts.length === 3) {\n\t\t\tpluginPath = \"languages\" + path.sep + parts[2];\n\t\t\ttype = parts[1];\n\t\t\tname = parts[2];\n\t\t} else if(parts[1] === \"plugins\" || parts[1] === \"themes\" && parts.length === 4) {\n\t\t\tpluginPath = parts[1] + path.sep + parts[2] + path.sep + parts[3];\n\t\t\ttype = parts[1];\n\t\t\tname = parts[2] + \"/\" + parts[3];\n\t\t}\n\t}\n\tif(pluginPath && type && name) {\n\t\tpluginPath = path.resolve($tw.boot.bootPath,\"..\",pluginPath);\n\t\tif(fs.existsSync(pluginPath)) {\n\t\t\treturn {\n\t\t\t\tpluginPath: pluginPath,\n\t\t\t\ttype: type,\n\t\t\t\tname: name\n\t\t\t};\n\t\t}\n\t}\n\treturn false;\n};\n\nWikiFolderMaker.prototype.saveCustomPlugin = function(pluginTiddler) {\n\tvar self = this,\n\t\tpluginTitle = pluginTiddler.fields.title,\n\t\ttitleParts = pluginTitle.split(\"/\"),\n\t\tdirectory = $tw.utils.generateTiddlerFilepath(titleParts[titleParts.length - 1],{\n\t\t\tdirectory: path.resolve(this.wikiFolderPath,pluginTiddler.fields[\"plugin-type\"] + \"s\")\n\t\t}),\n\t\tpluginInfo = pluginTiddler.getFieldStrings({exclude: [\"text\",\"type\"]});\n\tthis.saveJSONFile(directory + path.sep + \"plugin.info\",pluginInfo);\n\tself.log(\"Writing \" + directory + path.sep + \"plugin.info: \" + JSON.stringify(pluginInfo,null,$tw.config.preferences.jsonSpaces));\n\tvar pluginTiddlers = JSON.parse(pluginTiddler.fields.text).tiddlers; // A hashmap of tiddlers in the plugin\n\t$tw.utils.each(pluginTiddlers,function(tiddler) {\n\t\tself.saveTiddler(directory,new $tw.Tiddler(tiddler));\n\t});\n};\n\nWikiFolderMaker.prototype.saveTiddler = function(directory,tiddler) {\n\tvar fileInfo = $tw.utils.generateTiddlerFileInfo(tiddler,{\n\t\tdirectory: path.resolve(this.wikiFolderPath,directory),\n\t\twiki: this.wiki\n\t});\n\t$tw.utils.saveTiddlerToFileSync(tiddler,fileInfo);\n};\n\nWikiFolderMaker.prototype.saveJSONFile = function(filename,json) {\n\tthis.saveTextFile(filename,JSON.stringify(json,null,$tw.config.preferences.jsonSpaces));\n};\n\nWikiFolderMaker.prototype.saveTextFile = function(filename,data) {\n\tthis.saveFile(filename,\"utf8\",data);\n};\n\nWikiFolderMaker.prototype.saveFile = function(filename,encoding,data) {\n\tvar filepath = path.resolve(this.wikiFolderPath,filename);\n\t$tw.utils.createFileDirectories(filepath);\n\tfs.writeFileSync(filepath,data,encoding);\n};\n\nexports.Command = Command;\n\n})();\n",
            "type": "application/javascript",
            "module-type": "command"
        },
        "$:/core/modules/commands/server.js": {
            "title": "$:/core/modules/commands/server.js",
            "text": "/*\\\ntitle: $:/core/modules/commands/server.js\ntype: application/javascript\nmodule-type: command\n\nDeprecated legacy command for serving tiddlers\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Server = require(\"$:/core/modules/server/server.js\").Server;\n\nexports.info = {\n\tname: \"server\",\n\tsynchronous: true\n};\n\nvar Command = function(params,commander,callback) {\n\tvar self = this;\n\tthis.params = params;\n\tthis.commander = commander;\n\tthis.callback = callback;\n};\n\nCommand.prototype.execute = function() {\n\tif(!$tw.boot.wikiTiddlersPath) {\n\t\t$tw.utils.warning(\"Warning: Wiki folder '\" + $tw.boot.wikiPath + \"' does not exist or is missing a tiddlywiki.info file\");\n\t}\n\t// Set up server\n\tthis.server = new Server({\n\t\twiki: this.commander.wiki,\n\t\tvariables: {\n\t\t\tport: this.params[0],\n\t\t\thost: this.params[6],\n\t\t\t\"root-tiddler\": this.params[1],\n\t\t\t\"root-render-type\": this.params[2],\n\t\t\t\"root-serve-type\": this.params[3],\n\t\t\tusername: this.params[4],\n\t\t\tpassword: this.params[5],\n\t\t\t\"path-prefix\": this.params[7],\n\t\t\t\"debug-level\": this.params[8]\n\t\t}\n\t});\n\tvar nodeServer = this.server.listen();\n\t$tw.hooks.invokeHook(\"th-server-command-post-start\",this.server,nodeServer,\"tiddlywiki\");\n\treturn null;\n};\n\nexports.Command = Command;\n\n})();\n",
            "type": "application/javascript",
            "module-type": "command"
        },
        "$:/core/modules/commands/setfield.js": {
            "title": "$:/core/modules/commands/setfield.js",
            "text": "/*\\\ntitle: $:/core/modules/commands/setfield.js\ntype: application/javascript\nmodule-type: command\n\nCommand to modify selected tiddlers to set a field to the text of a template tiddler that has been wikified with the selected tiddler as the current tiddler.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar widget = require(\"$:/core/modules/widgets/widget.js\");\n\nexports.info = {\n\tname: \"setfield\",\n\tsynchronous: true\n};\n\nvar Command = function(params,commander,callback) {\n\tthis.params = params;\n\tthis.commander = commander;\n\tthis.callback = callback;\n};\n\nCommand.prototype.execute = function() {\n\tif(this.params.length < 4) {\n\t\treturn \"Missing parameters\";\n\t}\n\tvar self = this,\n\t\twiki = this.commander.wiki,\n\t\tfilter = this.params[0],\n\t\tfieldname = this.params[1] || \"text\",\n\t\ttemplatetitle = this.params[2],\n\t\trendertype = this.params[3] || \"text/plain\",\n\t\ttiddlers = wiki.filterTiddlers(filter);\n\t$tw.utils.each(tiddlers,function(title) {\n\t\tvar parser = wiki.parseTiddler(templatetitle),\n\t\t\tnewFields = {},\n\t\t\ttiddler = wiki.getTiddler(title);\n\t\tif(parser) {\n\t\t\tvar widgetNode = wiki.makeWidget(parser,{variables: {currentTiddler: title}});\n\t\t\tvar container = $tw.fakeDocument.createElement(\"div\");\n\t\t\twidgetNode.render(container,null);\n\t\t\tnewFields[fieldname] = rendertype === \"text/html\" ? container.innerHTML : container.textContent;\n\t\t} else {\n\t\t\tnewFields[fieldname] = undefined;\n\t\t}\n\t\twiki.addTiddler(new $tw.Tiddler(tiddler,newFields));\n\t});\n\treturn null;\n};\n\nexports.Command = Command;\n\n})();\n",
            "type": "application/javascript",
            "module-type": "command"
        },
        "$:/core/modules/commands/unpackplugin.js": {
            "title": "$:/core/modules/commands/unpackplugin.js",
            "text": "/*\\\ntitle: $:/core/modules/commands/unpackplugin.js\ntype: application/javascript\nmodule-type: command\n\nCommand to extract the shadow tiddlers from within a plugin\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.info = {\n\tname: \"unpackplugin\",\n\tsynchronous: true\n};\n\nvar Command = function(params,commander,callback) {\n\tthis.params = params;\n\tthis.commander = commander;\n\tthis.callback = callback;\n};\n\nCommand.prototype.execute = function() {\n\tif(this.params.length < 1) {\n\t\treturn \"Missing plugin name\";\n\t}\n\tvar self = this,\n\t\ttitle = this.params[0],\n\t\tpluginData = this.commander.wiki.getTiddlerDataCached(title);\n\tif(!pluginData) {\n\t\treturn \"Plugin '\" + title + \"' not found\";\n\t}\n\t$tw.utils.each(pluginData.tiddlers,function(tiddler) {\n\t\tself.commander.wiki.addTiddler(new $tw.Tiddler(tiddler));\n\t});\n\treturn null;\n};\n\nexports.Command = Command;\n\n})();\n",
            "type": "application/javascript",
            "module-type": "command"
        },
        "$:/core/modules/commands/verbose.js": {
            "title": "$:/core/modules/commands/verbose.js",
            "text": "/*\\\ntitle: $:/core/modules/commands/verbose.js\ntype: application/javascript\nmodule-type: command\n\nVerbose command\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.info = {\n\tname: \"verbose\",\n\tsynchronous: true\n};\n\nvar Command = function(params,commander) {\n\tthis.params = params;\n\tthis.commander = commander;\n};\n\nCommand.prototype.execute = function() {\n\tthis.commander.verbose = true;\n\t// Output the boot message log\n\tthis.commander.streams.output.write(\"Boot log:\\n  \" + $tw.boot.logMessages.join(\"\\n  \") + \"\\n\");\n\treturn null; // No error\n};\n\nexports.Command = Command;\n\n})();\n",
            "type": "application/javascript",
            "module-type": "command"
        },
        "$:/core/modules/commands/version.js": {
            "title": "$:/core/modules/commands/version.js",
            "text": "/*\\\ntitle: $:/core/modules/commands/version.js\ntype: application/javascript\nmodule-type: command\n\nVersion command\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.info = {\n\tname: \"version\",\n\tsynchronous: true\n};\n\nvar Command = function(params,commander) {\n\tthis.params = params;\n\tthis.commander = commander;\n};\n\nCommand.prototype.execute = function() {\n\tthis.commander.streams.output.write($tw.version + \"\\n\");\n\treturn null; // No error\n};\n\nexports.Command = Command;\n\n})();\n",
            "type": "application/javascript",
            "module-type": "command"
        },
        "$:/core/modules/config.js": {
            "title": "$:/core/modules/config.js",
            "text": "/*\\\ntitle: $:/core/modules/config.js\ntype: application/javascript\nmodule-type: config\n\nCore configuration constants\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.preferences = {};\n\nexports.preferences.notificationDuration = 3 * 1000;\nexports.preferences.jsonSpaces = 4;\n\nexports.textPrimitives = {\n\tupperLetter: \"[A-Z\\u00c0-\\u00d6\\u00d8-\\u00de\\u0150\\u0170]\",\n\tlowerLetter: \"[a-z\\u00df-\\u00f6\\u00f8-\\u00ff\\u0151\\u0171]\",\n\tanyLetter:   \"[A-Za-z0-9\\u00c0-\\u00d6\\u00d8-\\u00de\\u00df-\\u00f6\\u00f8-\\u00ff\\u0150\\u0170\\u0151\\u0171]\",\n\tblockPrefixLetters:\t\"[A-Za-z0-9-_\\u00c0-\\u00d6\\u00d8-\\u00de\\u00df-\\u00f6\\u00f8-\\u00ff\\u0150\\u0170\\u0151\\u0171]\"\n};\n\nexports.textPrimitives.unWikiLink = \"~\";\nexports.textPrimitives.wikiLink = exports.textPrimitives.upperLetter + \"+\" +\n\texports.textPrimitives.lowerLetter + \"+\" +\n\texports.textPrimitives.upperLetter +\n\texports.textPrimitives.anyLetter + \"*\";\n\nexports.htmlEntities = {quot:34, amp:38, apos:39, lt:60, gt:62, nbsp:160, iexcl:161, cent:162, pound:163, curren:164, yen:165, brvbar:166, sect:167, uml:168, copy:169, ordf:170, laquo:171, not:172, shy:173, reg:174, macr:175, deg:176, plusmn:177, sup2:178, sup3:179, acute:180, micro:181, para:182, middot:183, cedil:184, sup1:185, ordm:186, raquo:187, frac14:188, frac12:189, frac34:190, iquest:191, Agrave:192, Aacute:193, Acirc:194, Atilde:195, Auml:196, Aring:197, AElig:198, Ccedil:199, Egrave:200, Eacute:201, Ecirc:202, Euml:203, Igrave:204, Iacute:205, Icirc:206, Iuml:207, ETH:208, Ntilde:209, Ograve:210, Oacute:211, Ocirc:212, Otilde:213, Ouml:214, times:215, Oslash:216, Ugrave:217, Uacute:218, Ucirc:219, Uuml:220, Yacute:221, THORN:222, szlig:223, agrave:224, aacute:225, acirc:226, atilde:227, auml:228, aring:229, aelig:230, ccedil:231, egrave:232, eacute:233, ecirc:234, euml:235, igrave:236, iacute:237, icirc:238, iuml:239, eth:240, ntilde:241, ograve:242, oacute:243, ocirc:244, otilde:245, ouml:246, divide:247, oslash:248, ugrave:249, uacute:250, ucirc:251, uuml:252, yacute:253, thorn:254, yuml:255, OElig:338, oelig:339, Scaron:352, scaron:353, Yuml:376, fnof:402, circ:710, tilde:732, Alpha:913, Beta:914, Gamma:915, Delta:916, Epsilon:917, Zeta:918, Eta:919, Theta:920, Iota:921, Kappa:922, Lambda:923, Mu:924, Nu:925, Xi:926, Omicron:927, Pi:928, Rho:929, Sigma:931, Tau:932, Upsilon:933, Phi:934, Chi:935, Psi:936, Omega:937, alpha:945, beta:946, gamma:947, delta:948, epsilon:949, zeta:950, eta:951, theta:952, iota:953, kappa:954, lambda:955, mu:956, nu:957, xi:958, omicron:959, pi:960, rho:961, sigmaf:962, sigma:963, tau:964, upsilon:965, phi:966, chi:967, psi:968, omega:969, thetasym:977, upsih:978, piv:982, ensp:8194, emsp:8195, thinsp:8201, zwnj:8204, zwj:8205, lrm:8206, rlm:8207, ndash:8211, mdash:8212, lsquo:8216, rsquo:8217, sbquo:8218, ldquo:8220, rdquo:8221, bdquo:8222, dagger:8224, Dagger:8225, bull:8226, hellip:8230, permil:8240, prime:8242, Prime:8243, lsaquo:8249, rsaquo:8250, oline:8254, frasl:8260, euro:8364, image:8465, weierp:8472, real:8476, trade:8482, alefsym:8501, larr:8592, uarr:8593, rarr:8594, darr:8595, harr:8596, crarr:8629, lArr:8656, uArr:8657, rArr:8658, dArr:8659, hArr:8660, forall:8704, part:8706, exist:8707, empty:8709, nabla:8711, isin:8712, notin:8713, ni:8715, prod:8719, sum:8721, minus:8722, lowast:8727, radic:8730, prop:8733, infin:8734, ang:8736, and:8743, or:8744, cap:8745, cup:8746, int:8747, there4:8756, sim:8764, cong:8773, asymp:8776, ne:8800, equiv:8801, le:8804, ge:8805, sub:8834, sup:8835, nsub:8836, sube:8838, supe:8839, oplus:8853, otimes:8855, perp:8869, sdot:8901, lceil:8968, rceil:8969, lfloor:8970, rfloor:8971, lang:9001, rang:9002, loz:9674, spades:9824, clubs:9827, hearts:9829, diams:9830 };\n\nexports.htmlVoidElements = \"area,base,br,col,command,embed,hr,img,input,keygen,link,meta,param,source,track,wbr\".split(\",\");\n\nexports.htmlBlockElements = \"address,article,aside,audio,blockquote,canvas,dd,div,dl,fieldset,figcaption,figure,footer,form,h1,h2,h3,h4,h5,h6,header,hgroup,hr,li,noscript,ol,output,p,pre,section,table,tfoot,ul,video\".split(\",\");\n\nexports.htmlUnsafeElements = \"script\".split(\",\");\n\n})();\n",
            "type": "application/javascript",
            "module-type": "config"
        },
        "$:/core/modules/deserializers.js": {
            "title": "$:/core/modules/deserializers.js",
            "text": "/*\\\ntitle: $:/core/modules/deserializers.js\ntype: application/javascript\nmodule-type: tiddlerdeserializer\n\nFunctions to deserialise tiddlers from a block of text\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nUtility function to parse an old-style tiddler DIV in a *.tid file. It looks like this:\n\n<div title=\"Title\" creator=\"JoeBloggs\" modifier=\"JoeBloggs\" created=\"201102111106\" modified=\"201102111310\" tags=\"myTag [[my long tag]]\">\n<pre>The text of the tiddler (without the expected HTML encoding).\n</pre>\n</div>\n\nNote that the field attributes are HTML encoded, but that the body of the <PRE> tag is not encoded.\n\nWhen these tiddler DIVs are encountered within a TiddlyWiki HTML file then the body is encoded in the usual way.\n*/\nvar parseTiddlerDiv = function(text /* [,fields] */) {\n\t// Slot together the default results\n\tvar result = {};\n\tif(arguments.length > 1) {\n\t\tfor(var f=1; f<arguments.length; f++) {\n\t\t\tvar fields = arguments[f];\n\t\t\tfor(var t in fields) {\n\t\t\t\tresult[t] = fields[t];\t\t\n\t\t\t}\n\t\t}\n\t}\n\t// Parse the DIV body\n\tvar startRegExp = /^\\s*<div\\s+([^>]*)>(\\s*<pre>)?/gi,\n\t\tendRegExp,\n\t\tmatch = startRegExp.exec(text);\n\tif(match) {\n\t\t// Old-style DIVs don't have the <pre> tag\n\t\tif(match[2]) {\n\t\t\tendRegExp = /<\\/pre>\\s*<\\/div>\\s*$/gi;\n\t\t} else {\n\t\t\tendRegExp = /<\\/div>\\s*$/gi;\n\t\t}\n\t\tvar endMatch = endRegExp.exec(text);\n\t\tif(endMatch) {\n\t\t\t// Extract the text\n\t\t\tresult.text = text.substring(match.index + match[0].length,endMatch.index);\n\t\t\t// Process the attributes\n\t\t\tvar attrRegExp = /\\s*([^=\\s]+)\\s*=\\s*(?:\"([^\"]*)\"|'([^']*)')/gi,\n\t\t\t\tattrMatch;\n\t\t\tdo {\n\t\t\t\tattrMatch = attrRegExp.exec(match[1]);\n\t\t\t\tif(attrMatch) {\n\t\t\t\t\tvar name = attrMatch[1];\n\t\t\t\t\tvar value = attrMatch[2] !== undefined ? attrMatch[2] : attrMatch[3];\n\t\t\t\t\tresult[name] = value;\n\t\t\t\t}\n\t\t\t} while(attrMatch);\n\t\t\treturn result;\n\t\t}\n\t}\n\treturn undefined;\n};\n\nexports[\"application/x-tiddler-html-div\"] = function(text,fields) {\n\treturn [parseTiddlerDiv(text,fields)];\n};\n\nexports[\"application/json\"] = function(text,fields) {\n\tvar incoming,\n\t\tresults = [];\n\ttry {\n\t\tincoming = JSON.parse(text);\n\t} catch(e) {\n\t\tincoming = [{\n\t\t\ttitle: \"JSON error: \" + e,\n\t\t\ttext: \"\"\n\t\t}]\n\t}\n\tif(!$tw.utils.isArray(incoming)) {\n\t\tincoming = [incoming];\n\t}\n\tfor(var t=0; t<incoming.length; t++) {\n\t\tvar incomingFields = incoming[t],\n\t\t\tfields = {};\n\t\tfor(var f in incomingFields) {\n\t\t\tif(typeof incomingFields[f] === \"string\") {\n\t\t\t\tfields[f] = incomingFields[f];\n\t\t\t}\n\t\t}\n\t\tresults.push(fields);\n\t}\n\treturn results;\n};\n\n/*\nParse an HTML file into tiddlers. There are three possibilities:\n# A TiddlyWiki classic HTML file containing `text/x-tiddlywiki` tiddlers\n# A TiddlyWiki5 HTML file containing `text/vnd.tiddlywiki` tiddlers\n# An ordinary HTML file\n*/\nexports[\"text/html\"] = function(text,fields) {\n\t// Check if we've got a store area\n\tvar storeAreaMarkerRegExp = /<div id=[\"']?storeArea['\"]?( style=[\"']?display:none;[\"']?)?>/gi,\n\t\tmatch = storeAreaMarkerRegExp.exec(text);\n\tif(match) {\n\t\t// If so, it's either a classic TiddlyWiki file or an unencrypted TW5 file\n\t\t// First read the normal tiddlers\n\t\tvar results = deserializeTiddlyWikiFile(text,storeAreaMarkerRegExp.lastIndex,!!match[1],fields);\n\t\t// Then any system tiddlers\n\t\tvar systemAreaMarkerRegExp = /<div id=[\"']?systemArea['\"]?( style=[\"']?display:none;[\"']?)?>/gi,\n\t\t\tsysMatch = systemAreaMarkerRegExp.exec(text);\n\t\tif(sysMatch) {\n\t\t\tresults.push.apply(results,deserializeTiddlyWikiFile(text,systemAreaMarkerRegExp.lastIndex,!!sysMatch[1],fields));\n\t\t}\n\t\treturn results;\n\t} else {\n\t\t// Check whether we've got an encrypted file\n\t\tvar encryptedStoreArea = $tw.utils.extractEncryptedStoreArea(text);\n\t\tif(encryptedStoreArea) {\n\t\t\t// If so, attempt to decrypt it using the current password\n\t\t\treturn $tw.utils.decryptStoreArea(encryptedStoreArea);\n\t\t} else {\n\t\t\t// It's not a TiddlyWiki so we'll return the entire HTML file as a tiddler\n\t\t\treturn deserializeHtmlFile(text,fields);\n\t\t}\n\t}\n};\n\nfunction deserializeHtmlFile(text,fields) {\n\tvar result = {};\n\t$tw.utils.each(fields,function(value,name) {\n\t\tresult[name] = value;\n\t});\n\tresult.text = text;\n\tresult.type = \"text/html\";\n\treturn [result];\n}\n\nfunction deserializeTiddlyWikiFile(text,storeAreaEnd,isTiddlyWiki5,fields) {\n\tvar results = [],\n\t\tendOfDivRegExp = /(<\\/div>\\s*)/gi,\n\t\tstartPos = storeAreaEnd,\n\t\tdefaultType = isTiddlyWiki5 ? undefined : \"text/x-tiddlywiki\";\n\tendOfDivRegExp.lastIndex = startPos;\n\tvar match = endOfDivRegExp.exec(text);\n\twhile(match) {\n\t\tvar endPos = endOfDivRegExp.lastIndex,\n\t\t\ttiddlerFields = parseTiddlerDiv(text.substring(startPos,endPos),fields,{type: defaultType});\n\t\tif(!tiddlerFields) {\n\t\t\tbreak;\n\t\t}\n\t\t$tw.utils.each(tiddlerFields,function(value,name) {\n\t\t\tif(typeof value === \"string\") {\n\t\t\t\ttiddlerFields[name] = $tw.utils.htmlDecode(value);\n\t\t\t}\n\t\t});\n\t\tif(tiddlerFields.text !== null) {\n\t\t\tresults.push(tiddlerFields);\n\t\t}\n\t\tstartPos = endPos;\n\t\tmatch = endOfDivRegExp.exec(text);\n\t}\n\treturn results;\n}\n\n})();\n",
            "type": "application/javascript",
            "module-type": "tiddlerdeserializer"
        },
        "$:/core/modules/editor/engines/framed.js": {
            "title": "$:/core/modules/editor/engines/framed.js",
            "text": "/*\\\ntitle: $:/core/modules/editor/engines/framed.js\ntype: application/javascript\nmodule-type: library\n\nText editor engine based on a simple input or textarea within an iframe. This is done so that the selection is preserved even when clicking away from the textarea\n\n\\*/\n(function(){\n\n/*jslint node: true,browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar HEIGHT_VALUE_TITLE = \"$:/config/TextEditor/EditorHeight/Height\";\n\nfunction FramedEngine(options) {\n\t// Save our options\n\toptions = options || {};\n\tthis.widget = options.widget;\n\tthis.value = options.value;\n\tthis.parentNode = options.parentNode;\n\tthis.nextSibling = options.nextSibling;\n\t// Create our hidden dummy text area for reading styles\n\tthis.dummyTextArea = this.widget.document.createElement(\"textarea\");\n\tif(this.widget.editClass) {\n\t\tthis.dummyTextArea.className = this.widget.editClass;\n\t}\n\tthis.dummyTextArea.setAttribute(\"hidden\",\"true\");\n\tthis.parentNode.insertBefore(this.dummyTextArea,this.nextSibling);\n\tthis.widget.domNodes.push(this.dummyTextArea);\n\t// Create the iframe\n\tthis.iframeNode = this.widget.document.createElement(\"iframe\");\n\tthis.parentNode.insertBefore(this.iframeNode,this.nextSibling);\n\tthis.iframeDoc = this.iframeNode.contentWindow.document;\n\t// (Firefox requires us to put some empty content in the iframe)\n\tthis.iframeDoc.open();\n\tthis.iframeDoc.write(\"\");\n\tthis.iframeDoc.close();\n\t// Style the iframe\n\tthis.iframeNode.className = this.dummyTextArea.className;\n\tthis.iframeNode.style.border = \"none\";\n\tthis.iframeNode.style.padding = \"0\";\n\tthis.iframeNode.style.resize = \"none\";\n\tthis.iframeDoc.body.style.margin = \"0\";\n\tthis.iframeDoc.body.style.padding = \"0\";\n\tthis.widget.domNodes.push(this.iframeNode);\n\t// Construct the textarea or input node\n\tvar tag = this.widget.editTag;\n\tif($tw.config.htmlUnsafeElements.indexOf(tag) !== -1) {\n\t\ttag = \"input\";\n\t}\n\tthis.domNode = this.iframeDoc.createElement(tag);\n\t// Set the text\n\tif(this.widget.editTag === \"textarea\") {\n\t\tthis.domNode.appendChild(this.iframeDoc.createTextNode(this.value));\n\t} else {\n\t\tthis.domNode.value = this.value;\n\t}\n\t// Set the attributes\n\tif(this.widget.editType) {\n\t\tthis.domNode.setAttribute(\"type\",this.widget.editType);\n\t}\n\tif(this.widget.editPlaceholder) {\n\t\tthis.domNode.setAttribute(\"placeholder\",this.widget.editPlaceholder);\n\t}\n\tif(this.widget.editSize) {\n\t\tthis.domNode.setAttribute(\"size\",this.widget.editSize);\n\t}\n\tif(this.widget.editRows) {\n\t\tthis.domNode.setAttribute(\"rows\",this.widget.editRows);\n\t}\n\tif(this.widget.editTabIndex) {\n\t\tthis.iframeNode.setAttribute(\"tabindex\",this.widget.editTabIndex);\n\t}\n\tif(this.widget.editAutoComplete) {\n\t\tthis.domNode.setAttribute(\"autocomplete\",this.widget.editAutoComplete);\n\t}\n\tif(this.widget.isDisabled === \"yes\") {\n\t\tthis.domNode.setAttribute(\"disabled\",true);\n\t}\t\n\t// Copy the styles from the dummy textarea\n\tthis.copyStyles();\n\t// Add event listeners\n\t$tw.utils.addEventListeners(this.domNode,[\n\t\t{name: \"click\",handlerObject: this,handlerMethod: \"handleClickEvent\"},\n\t\t{name: \"input\",handlerObject: this,handlerMethod: \"handleInputEvent\"},\n\t\t{name: \"keydown\",handlerObject: this.widget,handlerMethod: \"handleKeydownEvent\"},\n\t\t{name: \"focus\",handlerObject: this,handlerMethod: \"handleFocusEvent\"}\n\t]);\n\t// Insert the element into the DOM\n\tthis.iframeDoc.body.appendChild(this.domNode);\n}\n\n/*\nCopy styles from the dummy text area to the textarea in the iframe\n*/\nFramedEngine.prototype.copyStyles = function() {\n\t// Copy all styles\n\t$tw.utils.copyStyles(this.dummyTextArea,this.domNode);\n\t// Override the ones that should not be set the same as the dummy textarea\n\tthis.domNode.style.display = \"block\";\n\tthis.domNode.style.width = \"100%\";\n\tthis.domNode.style.margin = \"0\";\n\t// In Chrome setting -webkit-text-fill-color overrides the placeholder text colour\n\tthis.domNode.style[\"-webkit-text-fill-color\"] = \"currentcolor\";\n};\n\n/*\nSet the text of the engine if it doesn't currently have focus\n*/\nFramedEngine.prototype.setText = function(text,type) {\n\tif(!this.domNode.isTiddlyWikiFakeDom) {\n\t\tif(this.domNode.ownerDocument.activeElement !== this.domNode) {\n\t\t\tthis.updateDomNodeText(text);\n\t\t}\n\t\t// Fix the height if needed\n\t\tthis.fixHeight();\n\t}\n};\n\n/*\nUpdate the DomNode with the new text\n*/\nFramedEngine.prototype.updateDomNodeText = function(text) {\n\tthis.domNode.value = text;\n};\n\n/*\nGet the text of the engine\n*/\nFramedEngine.prototype.getText = function() {\n\treturn this.domNode.value;\n};\n\n/*\nFix the height of textarea to fit content\n*/\nFramedEngine.prototype.fixHeight = function() {\n\t// Make sure styles are updated\n\tthis.copyStyles();\n\t// Adjust height\n\tif(this.widget.editTag === \"textarea\") {\n\t\tif(this.widget.editAutoHeight) {\n\t\t\tif(this.domNode && !this.domNode.isTiddlyWikiFakeDom) {\n\t\t\t\tvar newHeight = $tw.utils.resizeTextAreaToFit(this.domNode,this.widget.editMinHeight);\n\t\t\t\tthis.iframeNode.style.height = (newHeight + 14) + \"px\"; // +14 for the border on the textarea\n\t\t\t}\n\t\t} else {\n\t\t\tvar fixedHeight = parseInt(this.widget.wiki.getTiddlerText(HEIGHT_VALUE_TITLE,\"400px\"),10);\n\t\t\tfixedHeight = Math.max(fixedHeight,20);\n\t\t\tthis.domNode.style.height = fixedHeight + \"px\";\n\t\t\tthis.iframeNode.style.height = (fixedHeight + 14) + \"px\";\n\t\t}\n\t}\n};\n\n/*\nFocus the engine node\n*/\nFramedEngine.prototype.focus  = function() {\n\tif(this.domNode.focus && this.domNode.select) {\n\t\tthis.domNode.focus();\n\t\tthis.domNode.select();\n\t}\n};\n\n/*\nHandle a focus event\n*/\nFramedEngine.prototype.handleFocusEvent = function(event) {\n\tif(this.widget.editCancelPopups) {\n\t\t$tw.popup.cancel(0);\t\n\t}\n};\n\n/*\nHandle a click\n*/\nFramedEngine.prototype.handleClickEvent = function(event) {\n\tthis.fixHeight();\n\treturn true;\n};\n\n/*\nHandle a dom \"input\" event which occurs when the text has changed\n*/\nFramedEngine.prototype.handleInputEvent = function(event) {\n\tthis.widget.saveChanges(this.getText());\n\tthis.fixHeight();\n\tif(this.widget.editInputActions) {\n\t\tthis.widget.invokeActionString(this.widget.editInputActions);\n\t}\n\treturn true;\n};\n\n/*\nCreate a blank structure representing a text operation\n*/\nFramedEngine.prototype.createTextOperation = function() {\n\tvar operation = {\n\t\ttext: this.domNode.value,\n\t\tselStart: this.domNode.selectionStart,\n\t\tselEnd: this.domNode.selectionEnd,\n\t\tcutStart: null,\n\t\tcutEnd: null,\n\t\treplacement: null,\n\t\tnewSelStart: null,\n\t\tnewSelEnd: null\n\t};\n\toperation.selection = operation.text.substring(operation.selStart,operation.selEnd);\n\treturn operation;\n};\n\n/*\nExecute a text operation\n*/\nFramedEngine.prototype.executeTextOperation = function(operation) {\n\t// Perform the required changes to the text area and the underlying tiddler\n\tvar newText = operation.text;\n\tif(operation.replacement !== null) {\n\t\tnewText = operation.text.substring(0,operation.cutStart) + operation.replacement + operation.text.substring(operation.cutEnd);\n\t\t// Attempt to use a execCommand to modify the value of the control\n\t\tif(this.iframeDoc.queryCommandSupported(\"insertText\") && this.iframeDoc.queryCommandSupported(\"delete\") && !$tw.browser.isFirefox) {\n\t\t\tthis.domNode.focus();\n\t\t\tthis.domNode.setSelectionRange(operation.cutStart,operation.cutEnd);\n\t\t\tif(operation.replacement === \"\") {\n\t\t\t\tthis.iframeDoc.execCommand(\"delete\",false,\"\");\n\t\t\t} else {\n\t\t\t\tthis.iframeDoc.execCommand(\"insertText\",false,operation.replacement);\n\t\t\t}\n\t\t} else {\n\t\t\tthis.domNode.value = newText;\n\t\t}\n\t\tthis.domNode.focus();\n\t\tthis.domNode.setSelectionRange(operation.newSelStart,operation.newSelEnd);\n\t}\n\tthis.domNode.focus();\n\treturn newText;\n};\n\nexports.FramedEngine = FramedEngine;\n\n})();\n",
            "type": "application/javascript",
            "module-type": "library"
        },
        "$:/core/modules/editor/engines/simple.js": {
            "title": "$:/core/modules/editor/engines/simple.js",
            "text": "/*\\\ntitle: $:/core/modules/editor/engines/simple.js\ntype: application/javascript\nmodule-type: library\n\nText editor engine based on a simple input or textarea tag\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar HEIGHT_VALUE_TITLE = \"$:/config/TextEditor/EditorHeight/Height\";\n\nfunction SimpleEngine(options) {\n\t// Save our options\n\toptions = options || {};\n\tthis.widget = options.widget;\n\tthis.value = options.value;\n\tthis.parentNode = options.parentNode;\n\tthis.nextSibling = options.nextSibling;\n\t// Construct the textarea or input node\n\tvar tag = this.widget.editTag;\n\tif($tw.config.htmlUnsafeElements.indexOf(tag) !== -1) {\n\t\ttag = \"input\";\n\t}\n\tthis.domNode = this.widget.document.createElement(tag);\n\t// Set the text\n\tif(this.widget.editTag === \"textarea\") {\n\t\tthis.domNode.appendChild(this.widget.document.createTextNode(this.value));\n\t} else {\n\t\tthis.domNode.value = this.value;\n\t}\n\t// Set the attributes\n\tif(this.widget.editType) {\n\t\tthis.domNode.setAttribute(\"type\",this.widget.editType);\n\t}\n\tif(this.widget.editPlaceholder) {\n\t\tthis.domNode.setAttribute(\"placeholder\",this.widget.editPlaceholder);\n\t}\n\tif(this.widget.editSize) {\n\t\tthis.domNode.setAttribute(\"size\",this.widget.editSize);\n\t}\n\tif(this.widget.editRows) {\n\t\tthis.domNode.setAttribute(\"rows\",this.widget.editRows);\n\t}\n\tif(this.widget.editClass) {\n\t\tthis.domNode.className = this.widget.editClass;\n\t}\n\tif(this.widget.editTabIndex) {\n\t\tthis.domNode.setAttribute(\"tabindex\",this.widget.editTabIndex);\n\t}\n\tif(this.widget.editAutoComplete) {\n\t\tthis.domNode.setAttribute(\"autocomplete\",this.widget.editAutoComplete);\n\t}\n\tif(this.widget.isDisabled === \"yes\") {\n\t\tthis.domNode.setAttribute(\"disabled\",true);\n\t}\n\t// Add an input event handler\n\t$tw.utils.addEventListeners(this.domNode,[\n\t\t{name: \"focus\", handlerObject: this, handlerMethod: \"handleFocusEvent\"},\n\t\t{name: \"input\", handlerObject: this, handlerMethod: \"handleInputEvent\"}\n\t]);\n\t// Insert the element into the DOM\n\tthis.parentNode.insertBefore(this.domNode,this.nextSibling);\n\tthis.widget.domNodes.push(this.domNode);\n}\n\n/*\nSet the text of the engine if it doesn't currently have focus\n*/\nSimpleEngine.prototype.setText = function(text,type) {\n\tif(!this.domNode.isTiddlyWikiFakeDom) {\n\t\tif(this.domNode.ownerDocument.activeElement !== this.domNode || text === \"\") {\n\t\t\tthis.updateDomNodeText(text);\n\t\t}\n\t\t// Fix the height if needed\n\t\tthis.fixHeight();\n\t}\n};\n\n/*\nUpdate the DomNode with the new text\n*/\nSimpleEngine.prototype.updateDomNodeText = function(text) {\n\tthis.domNode.value = text;\n};\n\n/*\nGet the text of the engine\n*/\nSimpleEngine.prototype.getText = function() {\n\treturn this.domNode.value;\n};\n\n/*\nFix the height of textarea to fit content\n*/\nSimpleEngine.prototype.fixHeight = function() {\n\tif(this.widget.editTag === \"textarea\") {\n\t\tif(this.widget.editAutoHeight) {\n\t\t\tif(this.domNode && !this.domNode.isTiddlyWikiFakeDom) {\n\t\t\t\t$tw.utils.resizeTextAreaToFit(this.domNode,this.widget.editMinHeight);\n\t\t\t}\n\t\t} else {\n\t\t\tvar fixedHeight = parseInt(this.widget.wiki.getTiddlerText(HEIGHT_VALUE_TITLE,\"400px\"),10);\n\t\t\tfixedHeight = Math.max(fixedHeight,20);\n\t\t\tthis.domNode.style.height = fixedHeight + \"px\";\n\t\t}\n\t}\n};\n\n/*\nFocus the engine node\n*/\nSimpleEngine.prototype.focus  = function() {\n\tif(this.domNode.focus && this.domNode.select) {\n\t\tthis.domNode.focus();\n\t\tthis.domNode.select();\n\t}\n};\n\n/*\nHandle a dom \"input\" event which occurs when the text has changed\n*/\nSimpleEngine.prototype.handleInputEvent = function(event) {\n\tthis.widget.saveChanges(this.getText());\n\tthis.fixHeight();\n\tif(this.widget.editInputActions) {\n\t\tthis.widget.invokeActionString(this.widget.editInputActions);\n\t}\n\treturn true;\n};\n\n/*\nHandle a dom \"focus\" event\n*/\nSimpleEngine.prototype.handleFocusEvent = function(event) {\n\tif(this.widget.editCancelPopups) {\n\t\t$tw.popup.cancel(0);\n\t}\n\tif(this.widget.editFocusPopup) {\n\t\t$tw.popup.triggerPopup({\n\t\t\tdomNode: this.domNode,\n\t\t\ttitle: this.widget.editFocusPopup,\n\t\t\twiki: this.widget.wiki,\n\t\t\tforce: true\n\t\t});\n\t}\n\treturn true;\n};\n\n/*\nCreate a blank structure representing a text operation\n*/\nSimpleEngine.prototype.createTextOperation = function() {\n\treturn null;\n};\n\n/*\nExecute a text operation\n*/\nSimpleEngine.prototype.executeTextOperation = function(operation) {\n};\n\nexports.SimpleEngine = SimpleEngine;\n\n})();\n",
            "type": "application/javascript",
            "module-type": "library"
        },
        "$:/core/modules/editor/factory.js": {
            "title": "$:/core/modules/editor/factory.js",
            "text": "/*\\\ntitle: $:/core/modules/editor/factory.js\ntype: application/javascript\nmodule-type: library\n\nFactory for constructing text editor widgets with specified engines for the toolbar and non-toolbar cases\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar DEFAULT_MIN_TEXT_AREA_HEIGHT = \"100px\"; // Minimum height of textareas in pixels\n\n// Configuration tiddlers\nvar HEIGHT_MODE_TITLE = \"$:/config/TextEditor/EditorHeight/Mode\";\nvar ENABLE_TOOLBAR_TITLE = \"$:/config/TextEditor/EnableToolbar\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nfunction editTextWidgetFactory(toolbarEngine,nonToolbarEngine) {\n\n\tvar EditTextWidget = function(parseTreeNode,options) {\n\t\t// Initialise the editor operations if they've not been done already\n\t\tif(!this.editorOperations) {\n\t\t\tEditTextWidget.prototype.editorOperations = {};\n\t\t\t$tw.modules.applyMethods(\"texteditoroperation\",this.editorOperations);\n\t\t}\n\t\tthis.initialise(parseTreeNode,options);\n\t};\n\n\t/*\n\tInherit from the base widget class\n\t*/\n\tEditTextWidget.prototype = new Widget();\n\n\t/*\n\tRender this widget into the DOM\n\t*/\n\tEditTextWidget.prototype.render = function(parent,nextSibling) {\n\t\t// Save the parent dom node\n\t\tthis.parentDomNode = parent;\n\t\t// Compute our attributes\n\t\tthis.computeAttributes();\n\t\t// Execute our logic\n\t\tthis.execute();\n\t\t// Create the wrapper for the toolbar and render its content\n\t\tif(this.editShowToolbar) {\n\t\t\tthis.toolbarNode = this.document.createElement(\"div\");\n\t\t\tthis.toolbarNode.className = \"tc-editor-toolbar\";\n\t\t\tparent.insertBefore(this.toolbarNode,nextSibling);\n\t\t\tthis.renderChildren(this.toolbarNode,null);\n\t\t\tthis.domNodes.push(this.toolbarNode);\n\t\t}\n\t\t// Create our element\n\t\tvar editInfo = this.getEditInfo(),\n\t\t\tEngine = this.editShowToolbar ? toolbarEngine : nonToolbarEngine;\n\t\tthis.engine = new Engine({\n\t\t\t\twidget: this,\n\t\t\t\tvalue: editInfo.value,\n\t\t\t\ttype: editInfo.type,\n\t\t\t\tparentNode: parent,\n\t\t\t\tnextSibling: nextSibling\n\t\t\t});\n\t\t// Call the postRender hook\n\t\tif(this.postRender) {\n\t\t\tthis.postRender();\n\t\t}\n\t\t// Fix height\n\t\tthis.engine.fixHeight();\n\t\t// Focus if required\n\t\tif(this.editFocus === \"true\" || this.editFocus === \"yes\") {\n\t\t\tthis.engine.focus();\n\t\t}\n\t\t// Add widget message listeners\n\t\tthis.addEventListeners([\n\t\t\t{type: \"tm-edit-text-operation\", handler: \"handleEditTextOperationMessage\"}\n\t\t]);\n\t};\n\n\t/*\n\tGet the tiddler being edited and current value\n\t*/\n\tEditTextWidget.prototype.getEditInfo = function() {\n\t\t// Get the edit value\n\t\tvar self = this,\n\t\t\tvalue,\n\t\t\ttype = \"text/plain\",\n\t\t\tupdate;\n\t\tif(this.editIndex) {\n\t\t\tvalue = this.wiki.extractTiddlerDataItem(this.editTitle,this.editIndex,this.editDefault);\n\t\t\tupdate = function(value) {\n\t\t\t\tvar data = self.wiki.getTiddlerData(self.editTitle,{});\n\t\t\t\tif(data[self.editIndex] !== value) {\n\t\t\t\t\tdata[self.editIndex] = value;\n\t\t\t\t\tself.wiki.setTiddlerData(self.editTitle,data);\n\t\t\t\t}\n\t\t\t};\n\t\t} else {\n\t\t\t// Get the current tiddler and the field name\n\t\t\tvar tiddler = this.wiki.getTiddler(this.editTitle);\n\t\t\tif(tiddler) {\n\t\t\t\t// If we've got a tiddler, the value to display is the field string value\n\t\t\t\tvalue = tiddler.getFieldString(this.editField);\n\t\t\t\tif(this.editField === \"text\") {\n\t\t\t\t\ttype = tiddler.fields.type || \"text/vnd.tiddlywiki\";\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// Otherwise, we need to construct a default value for the editor\n\t\t\t\tswitch(this.editField) {\n\t\t\t\t\tcase \"text\":\n\t\t\t\t\t\tvalue = \"Type the text for the tiddler '\" + this.editTitle + \"'\";\n\t\t\t\t\t\ttype = \"text/vnd.tiddlywiki\";\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"title\":\n\t\t\t\t\t\tvalue = this.editTitle;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tvalue = \"\";\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tif(this.editDefault !== undefined) {\n\t\t\t\t\tvalue = this.editDefault;\n\t\t\t\t}\n\t\t\t}\n\t\t\tupdate = function(value) {\n\t\t\t\tvar tiddler = self.wiki.getTiddler(self.editTitle),\n\t\t\t\t\tupdateFields = {\n\t\t\t\t\t\ttitle: self.editTitle\n\t\t\t\t\t};\n\t\t\t\tupdateFields[self.editField] = value;\n\t\t\t\tself.wiki.addTiddler(new $tw.Tiddler(self.wiki.getCreationFields(),tiddler,updateFields,self.wiki.getModificationFields()));\n\t\t\t};\n\t\t}\n\t\tif(this.editType) {\n\t\t\ttype = this.editType;\n\t\t}\n\t\treturn {value: value || \"\", type: type, update: update};\n\t};\n\n\t/*\n\tHandle an edit text operation message from the toolbar\n\t*/\n\tEditTextWidget.prototype.handleEditTextOperationMessage = function(event) {\n\t\t// Prepare information about the operation\n\t\tvar operation = this.engine.createTextOperation();\n\t\t// Invoke the handler for the selected operation\n\t\tvar handler = this.editorOperations[event.param];\n\t\tif(handler) {\n\t\t\thandler.call(this,event,operation);\n\t\t}\n\t\t// Execute the operation via the engine\n\t\tvar newText = this.engine.executeTextOperation(operation);\n\t\t// Fix the tiddler height and save changes\n\t\tthis.engine.fixHeight();\n\t\tthis.saveChanges(newText);\n\t};\n\n\t/*\n\tCompute the internal state of the widget\n\t*/\n\tEditTextWidget.prototype.execute = function() {\n\t\t// Get our parameters\n\t\tthis.editTitle = this.getAttribute(\"tiddler\",this.getVariable(\"currentTiddler\"));\n\t\tthis.editField = this.getAttribute(\"field\",\"text\");\n\t\tthis.editIndex = this.getAttribute(\"index\");\n\t\tthis.editDefault = this.getAttribute(\"default\");\n\t\tthis.editClass = this.getAttribute(\"class\");\n\t\tthis.editPlaceholder = this.getAttribute(\"placeholder\");\n\t\tthis.editSize = this.getAttribute(\"size\");\n\t\tthis.editRows = this.getAttribute(\"rows\");\n\t\tthis.editAutoHeight = this.wiki.getTiddlerText(HEIGHT_MODE_TITLE,\"auto\");\n\t\tthis.editAutoHeight = this.getAttribute(\"autoHeight\",this.editAutoHeight === \"auto\" ? \"yes\" : \"no\") === \"yes\";\n\t\tthis.editMinHeight = this.getAttribute(\"minHeight\",DEFAULT_MIN_TEXT_AREA_HEIGHT);\n\t\tthis.editFocusPopup = this.getAttribute(\"focusPopup\");\n\t\tthis.editFocus = this.getAttribute(\"focus\");\n\t\tthis.editTabIndex = this.getAttribute(\"tabindex\");\n\t\tthis.editCancelPopups = this.getAttribute(\"cancelPopups\",\"\") === \"yes\";\n\t\tthis.editInputActions = this.getAttribute(\"inputActions\");\n\t\tthis.editRefreshTitle = this.getAttribute(\"refreshTitle\");\n\t\tthis.editAutoComplete = this.getAttribute(\"autocomplete\");\n\t\tthis.isDisabled = this.getAttribute(\"disabled\",\"no\");\n\t\t// Get the default editor element tag and type\n\t\tvar tag,type;\n\t\tif(this.editField === \"text\") {\n\t\t\ttag = \"textarea\";\n\t\t} else {\n\t\t\ttag = \"input\";\n\t\t\tvar fieldModule = $tw.Tiddler.fieldModules[this.editField];\n\t\t\tif(fieldModule && fieldModule.editTag) {\n\t\t\t\ttag = fieldModule.editTag;\n\t\t\t}\n\t\t\tif(fieldModule && fieldModule.editType) {\n\t\t\t\ttype = fieldModule.editType;\n\t\t\t}\n\t\t\ttype = type || \"text\";\n\t\t}\n\t\t// Get the rest of our parameters\n\t\tthis.editTag = this.getAttribute(\"tag\",tag) || \"input\";\n\t\tthis.editType = this.getAttribute(\"type\",type);\n\t\t// Make the child widgets\n\t\tthis.makeChildWidgets();\n\t\t// Determine whether to show the toolbar\n\t\tthis.editShowToolbar = this.wiki.getTiddlerText(ENABLE_TOOLBAR_TITLE,\"yes\");\n\t\tthis.editShowToolbar = (this.editShowToolbar === \"yes\") && !!(this.children && this.children.length > 0) && (!this.document.isTiddlyWikiFakeDom);\n\t};\n\n\t/*\n\tSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n\t*/\n\tEditTextWidget.prototype.refresh = function(changedTiddlers) {\n\t\tvar changedAttributes = this.computeAttributes();\n\t\t// Completely rerender if any of our attributes have changed\n\t\tif(changedAttributes.tiddler || changedAttributes.field || changedAttributes.index || changedAttributes[\"default\"] || changedAttributes[\"class\"] || changedAttributes.placeholder || changedAttributes.size || changedAttributes.autoHeight || changedAttributes.minHeight || changedAttributes.focusPopup ||  changedAttributes.rows || changedAttributes.tabindex || changedAttributes.cancelPopups || changedAttributes.inputActions || changedAttributes.refreshTitle || changedAttributes.autocomplete || changedTiddlers[HEIGHT_MODE_TITLE] || changedTiddlers[ENABLE_TOOLBAR_TITLE] || changedAttributes.disabled) {\n\t\t\tthis.refreshSelf();\n\t\t\treturn true;\n\t\t} else if (changedTiddlers[this.editRefreshTitle]) {\n\t\t\tthis.engine.updateDomNodeText(this.getEditInfo().value);\n\t\t} else if(changedTiddlers[this.editTitle]) {\n\t\t\tvar editInfo = this.getEditInfo();\n\t\t\tthis.updateEditor(editInfo.value,editInfo.type);\n\t\t}\n\t\tthis.engine.fixHeight();\n\t\tif(this.editShowToolbar) {\n\t\t\treturn this.refreshChildren(changedTiddlers);\n\t\t} else {\n\t\t\treturn false;\n\t\t}\n\t};\n\n\t/*\n\tUpdate the editor with new text. This method is separate from updateEditorDomNode()\n\tso that subclasses can override updateEditor() and still use updateEditorDomNode()\n\t*/\n\tEditTextWidget.prototype.updateEditor = function(text,type) {\n\t\tthis.updateEditorDomNode(text,type);\n\t};\n\n\t/*\n\tUpdate the editor dom node with new text\n\t*/\n\tEditTextWidget.prototype.updateEditorDomNode = function(text,type) {\n\t\tthis.engine.setText(text,type);\n\t};\n\n\t/*\n\tSave changes back to the tiddler store\n\t*/\n\tEditTextWidget.prototype.saveChanges = function(text) {\n\t\tvar editInfo = this.getEditInfo();\n\t\tif(text !== editInfo.value) {\n\t\t\teditInfo.update(text);\n\t\t}\n\t};\n\n\t/*\n\tHandle a dom \"keydown\" event, which we'll bubble up to our container for the keyboard widgets benefit\n\t*/\n\tEditTextWidget.prototype.handleKeydownEvent = function(event) {\n\t\t// Check for a keyboard shortcut\n\t\tif(this.toolbarNode) {\n\t\t\tvar shortcutElements = this.toolbarNode.querySelectorAll(\"[data-tw-keyboard-shortcut]\");\n\t\t\tfor(var index=0; index<shortcutElements.length; index++) {\n\t\t\t\tvar el = shortcutElements[index],\n\t\t\t\t\tshortcutData = el.getAttribute(\"data-tw-keyboard-shortcut\"),\n\t\t\t\t\tkeyInfoArray = $tw.keyboardManager.parseKeyDescriptors(shortcutData,{\n\t\t\t\t\t\twiki: this.wiki\n\t\t\t\t\t});\n\t\t\t\tif($tw.keyboardManager.checkKeyDescriptors(event,keyInfoArray)) {\n\t\t\t\t\tvar clickEvent = this.document.createEvent(\"Events\");\n\t\t\t\t    clickEvent.initEvent(\"click\",true,false);\n\t\t\t\t    el.dispatchEvent(clickEvent);\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\tevent.stopPropagation();\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\t// Propogate the event to the container\n\t\tif(this.propogateKeydownEvent(event)) {\n\t\t\t// Ignore the keydown if it was already handled\n\t\t\tevent.preventDefault();\n\t\t\tevent.stopPropagation();\n\t\t\treturn true;\n\t\t}\n\t\t// Otherwise, process the keydown normally\n\t\treturn false;\n\t};\n\n\t/*\n\tPropogate keydown events to our container for the keyboard widgets benefit\n\t*/\n\tEditTextWidget.prototype.propogateKeydownEvent = function(event) {\n\t\tvar newEvent = this.document.createEventObject ? this.document.createEventObject() : this.document.createEvent(\"Events\");\n\t\tif(newEvent.initEvent) {\n\t\t\tnewEvent.initEvent(\"keydown\", true, true);\n\t\t}\n\t\tnewEvent.keyCode = event.keyCode;\n\t\tnewEvent.which = event.which;\n\t\tnewEvent.metaKey = event.metaKey;\n\t\tnewEvent.ctrlKey = event.ctrlKey;\n\t\tnewEvent.altKey = event.altKey;\n\t\tnewEvent.shiftKey = event.shiftKey;\n\t\treturn !this.parentDomNode.dispatchEvent(newEvent);\n\t};\n\n\treturn EditTextWidget;\n\n}\n\nexports.editTextWidgetFactory = editTextWidgetFactory;\n\n})();\n",
            "type": "application/javascript",
            "module-type": "library"
        },
        "$:/core/modules/editor/operations/bitmap/clear.js": {
            "title": "$:/core/modules/editor/operations/bitmap/clear.js",
            "text": "/*\\\ntitle: $:/core/modules/editor/operations/bitmap/clear.js\ntype: application/javascript\nmodule-type: bitmapeditoroperation\n\nBitmap editor operation to clear the image\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports[\"clear\"] = function(event) {\n\tvar ctx = this.canvasDomNode.getContext(\"2d\");\n\tctx.globalAlpha = 1;\n\tctx.fillStyle = event.paramObject.colour || \"white\";\n\tctx.fillRect(0,0,this.canvasDomNode.width,this.canvasDomNode.height);\n\t// Save changes\n\tthis.strokeEnd();\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "bitmapeditoroperation"
        },
        "$:/core/modules/editor/operations/bitmap/resize.js": {
            "title": "$:/core/modules/editor/operations/bitmap/resize.js",
            "text": "/*\\\ntitle: $:/core/modules/editor/operations/bitmap/resize.js\ntype: application/javascript\nmodule-type: bitmapeditoroperation\n\nBitmap editor operation to resize the image\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports[\"resize\"] = function(event) {\n\t// Get the new width\n\tvar newWidth = parseInt(event.paramObject.width || this.canvasDomNode.width,10),\n\t\tnewHeight = parseInt(event.paramObject.height || this.canvasDomNode.height,10);\n\t// Update if necessary\n\tif(newWidth > 0 && newHeight > 0 && !(newWidth === this.currCanvas.width && newHeight === this.currCanvas.height)) {\n\t\tthis.changeCanvasSize(newWidth,newHeight);\n\t}\n\t// Update the input controls\n\tthis.refreshToolbar();\n\t// Save the image into the tiddler\n\tthis.saveChanges();\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "bitmapeditoroperation"
        },
        "$:/core/modules/editor/operations/bitmap/rotate-left.js": {
            "title": "$:/core/modules/editor/operations/bitmap/rotate-left.js",
            "text": "/*\\\ntitle: $:/core/modules/editor/operations/bitmap/rotate-left.js\ntype: application/javascript\nmodule-type: bitmapeditoroperation\n\nBitmap editor operation to rotate the image left by 90 degrees\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports[\"rotate-left\"] = function(event) {\n\t// Rotate the canvas left by 90 degrees\n\tthis.rotateCanvasLeft();\n\t// Update the input controls\n\tthis.refreshToolbar();\n\t// Save the image into the tiddler\n\tthis.saveChanges();\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "bitmapeditoroperation"
        },
        "$:/core/modules/editor/operations/text/excise.js": {
            "title": "$:/core/modules/editor/operations/text/excise.js",
            "text": "/*\\\ntitle: $:/core/modules/editor/operations/text/excise.js\ntype: application/javascript\nmodule-type: texteditoroperation\n\nText editor operation to excise the selection to a new tiddler\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports[\"excise\"] = function(event,operation) {\n\tvar editTiddler = this.wiki.getTiddler(this.editTitle),\n\t\teditTiddlerTitle = this.editTitle;\n\tif(editTiddler && editTiddler.fields[\"draft.of\"]) {\n\t\teditTiddlerTitle = editTiddler.fields[\"draft.of\"];\n\t}\n\tvar excisionTitle = event.paramObject.title || this.wiki.generateNewTitle(\"New Excision\");\n\tthis.wiki.addTiddler(new $tw.Tiddler(\n\t\tthis.wiki.getCreationFields(),\n\t\tthis.wiki.getModificationFields(),\n\t\t{\n\t\t\ttitle: excisionTitle,\n\t\t\ttext: operation.selection,\n\t\t\ttags: event.paramObject.tagnew === \"yes\" ?  [editTiddlerTitle] : []\n\t\t}\n\t));\n\toperation.replacement = excisionTitle;\n\tswitch(event.paramObject.type || \"transclude\") {\n\t\tcase \"transclude\":\n\t\t\toperation.replacement = \"{{\" + operation.replacement+ \"}}\";\n\t\t\tbreak;\n\t\tcase \"link\":\n\t\t\toperation.replacement = \"[[\" + operation.replacement+ \"]]\";\n\t\t\tbreak;\n\t\tcase \"macro\":\n\t\t\toperation.replacement = \"<<\" + (event.paramObject.macro || \"translink\") + \" \\\"\\\"\\\"\" + operation.replacement + \"\\\"\\\"\\\">>\";\n\t\t\tbreak;\n\t}\n\toperation.cutStart = operation.selStart;\n\toperation.cutEnd = operation.selEnd;\n\toperation.newSelStart = operation.selStart;\n\toperation.newSelEnd = operation.selStart + operation.replacement.length;\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "texteditoroperation"
        },
        "$:/core/modules/editor/operations/text/make-link.js": {
            "title": "$:/core/modules/editor/operations/text/make-link.js",
            "text": "/*\\\ntitle: $:/core/modules/editor/operations/text/make-link.js\ntype: application/javascript\nmodule-type: texteditoroperation\n\nText editor operation to make a link\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports[\"make-link\"] = function(event,operation) {\n\tif(operation.selection) {\n\t\toperation.replacement = \"[[\" + operation.selection + \"|\" + event.paramObject.text + \"]]\";\n\t\toperation.cutStart = operation.selStart;\n\t\toperation.cutEnd = operation.selEnd;\n\t} else {\n\t\toperation.replacement = \"[[\" + event.paramObject.text + \"]]\";\n\t\toperation.cutStart = operation.selStart;\n\t\toperation.cutEnd = operation.selEnd;\n\t}\n\toperation.newSelStart = operation.selStart + operation.replacement.length;\n\toperation.newSelEnd = operation.newSelStart;\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "texteditoroperation"
        },
        "$:/core/modules/editor/operations/text/prefix-lines.js": {
            "title": "$:/core/modules/editor/operations/text/prefix-lines.js",
            "text": "/*\\\ntitle: $:/core/modules/editor/operations/text/prefix-lines.js\ntype: application/javascript\nmodule-type: texteditoroperation\n\nText editor operation to add a prefix to the selected lines\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports[\"prefix-lines\"] = function(event,operation) {\n\tvar targetCount = parseInt(event.paramObject.count + \"\",10);\n\t// Cut just past the preceding line break, or the start of the text\n\toperation.cutStart = $tw.utils.findPrecedingLineBreak(operation.text,operation.selStart);\n\t// Cut to just past the following line break, or to the end of the text\n\toperation.cutEnd = $tw.utils.findFollowingLineBreak(operation.text,operation.selEnd);\n\t// Compose the required prefix\n\tvar prefix = $tw.utils.repeat(event.paramObject.character,targetCount);\n\t// Process each line\n\tvar lines = operation.text.substring(operation.cutStart,operation.cutEnd).split(/\\r?\\n/mg);\n\t$tw.utils.each(lines,function(line,index) {\n\t\t// Remove and count any existing prefix characters\n\t\tvar count = 0;\n\t\twhile(line.charAt(0) === event.paramObject.character) {\n\t\t\tline = line.substring(1);\n\t\t\tcount++;\n\t\t}\n\t\t// Remove any whitespace\n\t\twhile(line.charAt(0) === \" \") {\n\t\t\tline = line.substring(1);\n\t\t}\n\t\t// We're done if we removed the exact required prefix, otherwise add it\n\t\tif(count !== targetCount) {\n\t\t\t// Apply the prefix\n\t\t\tline =  prefix + \" \" + line;\n\t\t}\n\t\t// Save the modified line\n\t\tlines[index] = line;\n\t});\n\t// Stitch the replacement text together and set the selection\n\toperation.replacement = lines.join(\"\\n\");\n\tif(lines.length === 1) {\n\t\toperation.newSelStart = operation.cutStart + operation.replacement.length;\n\t\toperation.newSelEnd = operation.newSelStart;\n\t} else {\n\t\toperation.newSelStart = operation.cutStart;\n\t\toperation.newSelEnd = operation.newSelStart + operation.replacement.length;\n\t}\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "texteditoroperation"
        },
        "$:/core/modules/editor/operations/text/replace-all.js": {
            "title": "$:/core/modules/editor/operations/text/replace-all.js",
            "text": "/*\\\ntitle: $:/core/modules/editor/operations/text/replace-all.js\ntype: application/javascript\nmodule-type: texteditoroperation\n\nText editor operation to replace the entire text\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports[\"replace-all\"] = function(event,operation) {\n\toperation.cutStart = 0;\n\toperation.cutEnd = operation.text.length;\n\toperation.replacement = event.paramObject.text;\n\toperation.newSelStart = 0;\n\toperation.newSelEnd = operation.replacement.length;\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "texteditoroperation"
        },
        "$:/core/modules/editor/operations/text/replace-selection.js": {
            "title": "$:/core/modules/editor/operations/text/replace-selection.js",
            "text": "/*\\\ntitle: $:/core/modules/editor/operations/text/replace-selection.js\ntype: application/javascript\nmodule-type: texteditoroperation\n\nText editor operation to replace the selection\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports[\"replace-selection\"] = function(event,operation) {\n\toperation.replacement = event.paramObject.text;\n\toperation.cutStart = operation.selStart;\n\toperation.cutEnd = operation.selEnd;\n\toperation.newSelStart = operation.selStart;\n\toperation.newSelEnd = operation.selStart + operation.replacement.length;\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "texteditoroperation"
        },
        "$:/core/modules/editor/operations/text/save-selection.js": {
            "title": "$:/core/modules/editor/operations/text/save-selection.js",
            "text": "/*\\\ntitle: $:/core/modules/editor/operations/text/save-selection.js\ntype: application/javascript\nmodule-type: texteditoroperation\n\nText editor operation to save the current selection in a specified tiddler\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports[\"save-selection\"] = function(event,operation) {\n\tvar tiddler = event.paramObject.tiddler,\n\t\tfield = event.paramObject.field || \"text\";\n\tif(tiddler && field) {\n\t\tthis.wiki.setText(tiddler,field,null,operation.text.substring(operation.selStart,operation.selEnd));\n\t}\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "texteditoroperation"
        },
        "$:/core/modules/editor/operations/text/wrap-lines.js": {
            "title": "$:/core/modules/editor/operations/text/wrap-lines.js",
            "text": "/*\\\ntitle: $:/core/modules/editor/operations/text/wrap-lines.js\ntype: application/javascript\nmodule-type: texteditoroperation\n\nText editor operation to wrap the selected lines with a prefix and suffix\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports[\"wrap-lines\"] = function(event,operation) {\n\t// Cut just past the preceding line break, or the start of the text\n\toperation.cutStart = $tw.utils.findPrecedingLineBreak(operation.text,operation.selStart);\n\t// Cut to just past the following line break, or to the end of the text\n\toperation.cutEnd = $tw.utils.findFollowingLineBreak(operation.text,operation.selEnd);\n\t// Add the prefix and suffix\n\toperation.replacement = event.paramObject.prefix + \"\\n\" +\n\t\t\t\toperation.text.substring(operation.cutStart,operation.cutEnd) + \"\\n\" +\n\t\t\t\tevent.paramObject.suffix + \"\\n\";\n\toperation.newSelStart = operation.cutStart + event.paramObject.prefix.length + 1;\n\toperation.newSelEnd = operation.newSelStart + (operation.cutEnd - operation.cutStart);\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "texteditoroperation"
        },
        "$:/core/modules/editor/operations/text/wrap-selection.js": {
            "title": "$:/core/modules/editor/operations/text/wrap-selection.js",
            "text": "/*\\\ntitle: $:/core/modules/editor/operations/text/wrap-selection.js\ntype: application/javascript\nmodule-type: texteditoroperation\n\nText editor operation to wrap the selection with the specified prefix and suffix\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports[\"wrap-selection\"] = function(event,operation) {\n\tif(operation.selStart === operation.selEnd) {\n\t\t// No selection; check if we're within the prefix/suffix\n\t\tif(operation.text.substring(operation.selStart - event.paramObject.prefix.length,operation.selStart + event.paramObject.suffix.length) === event.paramObject.prefix + event.paramObject.suffix) {\n\t\t\t// Remove the prefix and suffix\n\t\t\toperation.cutStart = operation.selStart - event.paramObject.prefix.length;\n\t\t\toperation.cutEnd = operation.selEnd + event.paramObject.suffix.length;\n\t\t\toperation.replacement = \"\";\n\t\t\toperation.newSelStart = operation.cutStart;\n\t\t\toperation.newSelEnd = operation.newSelStart;\n\t\t} else {\n\t\t\t// Wrap the cursor instead\n\t\t\toperation.cutStart = operation.selStart;\n\t\t\toperation.cutEnd = operation.selEnd;\n\t\t\toperation.replacement = event.paramObject.prefix + event.paramObject.suffix;\n\t\t\toperation.newSelStart = operation.selStart + event.paramObject.prefix.length;\n\t\t\toperation.newSelEnd = operation.newSelStart;\n\t\t}\n\t} else if(operation.text.substring(operation.selStart,operation.selStart + event.paramObject.prefix.length) === event.paramObject.prefix && operation.text.substring(operation.selEnd - event.paramObject.suffix.length,operation.selEnd) === event.paramObject.suffix) {\n\t\t// Prefix and suffix are already present, so remove them\n\t\toperation.cutStart = operation.selStart;\n\t\toperation.cutEnd = operation.selEnd;\n\t\toperation.replacement = operation.selection.substring(event.paramObject.prefix.length,operation.selection.length - event.paramObject.suffix.length);\n\t\toperation.newSelStart = operation.selStart;\n\t\toperation.newSelEnd = operation.selStart + operation.replacement.length;\n\t} else {\n\t\t// Add the prefix and suffix\n\t\toperation.cutStart = operation.selStart;\n\t\toperation.cutEnd = operation.selEnd;\n\t\toperation.replacement = event.paramObject.prefix + operation.selection + event.paramObject.suffix;\n\t\toperation.newSelStart = operation.selStart;\n\t\toperation.newSelEnd = operation.selStart + operation.replacement.length;\n\t}\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "texteditoroperation"
        },
        "$:/core/modules/filterrunprefixes/all.js": {
            "title": "$:/core/modules/filterrunprefixes/all.js",
            "text": "/*\\\ntitle: $:/core/modules/filterrunprefixes/all.js\ntype: application/javascript\nmodule-type: filterrunprefix\n\nUnion of sets without de-duplication.\nEquivalent to = filter run prefix.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter prefix function\n*/\nexports.all = function(operationSubFunction) {\n\treturn function(results,source,widget) {\n\t\tresults.push.apply(results, operationSubFunction(source,widget));\n\t};\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "filterrunprefix"
        },
        "$:/core/modules/filterrunprefixes/and.js": {
            "title": "$:/core/modules/filterrunprefixes/and.js",
            "text": "/*\\\ntitle: $:/core/modules/filterrunprefixes/and.js\ntype: application/javascript\nmodule-type: filterrunprefix\n\nIntersection of sets.\nEquivalent to + filter run prefix.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter prefix function\n*/\nexports.and = function(operationSubFunction,options) {\n\treturn function(results,source,widget) {\n\t\t// This replaces all the elements of the array, but keeps the actual array so that references to it are preserved\n\t\tsource = options.wiki.makeTiddlerIterator(results.toArray());\n\t\tresults.clear();\n\t\tresults.pushTop(operationSubFunction(source,widget));\n\t};\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "filterrunprefix"
        },
        "$:/core/modules/filterrunprefixes/else.js": {
            "title": "$:/core/modules/filterrunprefixes/else.js",
            "text": "/*\\\ntitle: $:/core/modules/filterrunprefixes/else.js\ntype: application/javascript\nmodule-type: filterrunprefix\n\nEquivalent to ~ filter run prefix.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter prefix function\n*/\nexports.else = function(operationSubFunction) {\n\treturn function(results,source,widget) {\n\t\tif(results.length === 0) {\n\t\t\t// Main result so far is empty\n\t\t\tresults.pushTop(operationSubFunction(source,widget));\n\t\t}\n\t};\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "filterrunprefix"
        },
        "$:/core/modules/filterrunprefixes/except.js": {
            "title": "$:/core/modules/filterrunprefixes/except.js",
            "text": "/*\\\ntitle: $:/core/modules/filterrunprefixes/except.js\ntype: application/javascript\nmodule-type: filterrunprefix\n\nDifference of sets.\nEquivalent to - filter run prefix.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter prefix function\n*/\nexports.except = function(operationSubFunction) {\n\treturn function(results,source,widget) {\n\t\tresults.remove(operationSubFunction(source,widget));\n\t};\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "filterrunprefix"
        },
        "$:/core/modules/filterrunprefixes/filter.js": {
            "title": "$:/core/modules/filterrunprefixes/filter.js",
            "text": "/*\\\ntitle: $:/core/modules/filterrunprefixes/filter.js\ntype: application/javascript\nmodule-type: filterrunprefix\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.filter = function(operationSubFunction,options) {\n\treturn function(results,source,widget) {\n\t\tif(results.length > 0) {\n\t\t\tvar resultsToRemove = [];\n\t\t\tresults.each(function(result) {\n\t\t\t\tvar filtered = operationSubFunction(options.wiki.makeTiddlerIterator([result]),widget);\n\t\t\t\tif(filtered.length === 0) {\n\t\t\t\t\tresultsToRemove.push(result);\n\t\t\t\t}\n\t\t\t});\n\t\t\tresults.remove(resultsToRemove);\n\t\t}\n\t}\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "filterrunprefix"
        },
        "$:/core/modules/filterrunprefixes/intersection.js": {
            "title": "$:/core/modules/filterrunprefixes/intersection.js",
            "text": "/*\\\ntitle: $:/core/modules/filterrunprefixes/intersection.js\ntype: application/javascript\nmodule-type: filterrunprefix\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter prefix function\n*/\nexports.intersection = function(operationSubFunction) {\n\treturn function(results,source,widget) {\n\t\tif(results.length !== 0) {\n\t\t\tvar secondRunResults = operationSubFunction(source,widget);\n\t\t\tvar firstRunResults = results.toArray();\n\t\t\tresults.clear();\n\t\t\t$tw.utils.each(firstRunResults,function(title) {\n\t\t\t\tif(secondRunResults.indexOf(title) !== -1) {\n\t\t\t\t\tresults.push(title);\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t};\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "filterrunprefix"
        },
        "$:/core/modules/filterrunprefixes/or.js": {
            "title": "$:/core/modules/filterrunprefixes/or.js",
            "text": "/*\\\ntitle: $:/core/modules/filterrunprefixes/or.js\ntype: application/javascript\nmodule-type: filterrunprefix\n\nEquivalent to a filter run with no prefix.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter prefix function\n*/\nexports.or = function(operationSubFunction) {\n\treturn function(results,source,widget) {\n\t\tresults.pushTop(operationSubFunction(source,widget));\n\t};\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "filterrunprefix"
        },
        "$:/core/modules/filterrunprefixes/reduce.js": {
            "title": "$:/core/modules/filterrunprefixes/reduce.js",
            "text": "/*\\\ntitle: $:/core/modules/filterrunprefixes/reduce.js\ntype: application/javascript\nmodule-type: filterrunprefix\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter prefix function\n*/\nexports.reduce = function(operationSubFunction,options) {\n\treturn function(results,source,widget) {\n\t\tif(results.length > 0) {\n\t\t\tvar accumulator = \"\";\n\t\t\tvar index = 0;\n\t\t\tresults.each(function(title) {\n\t\t\t\tvar list = operationSubFunction(options.wiki.makeTiddlerIterator([title]),{\n\t\t\t\t\t\tgetVariable: function(name) {\n\t\t\t\t\t\t\tswitch(name) {\n\t\t\t\t\t\t\t\tcase \"currentTiddler\":\n\t\t\t\t\t\t\t\t\treturn \"\" + title;\n\t\t\t\t\t\t\t\tcase \"accumulator\":\n\t\t\t\t\t\t\t\t\treturn \"\" + accumulator;\n\t\t\t\t\t\t\t\tcase \"index\":\n\t\t\t\t\t\t\t\t\treturn \"\" + index;\n\t\t\t\t\t\t\t\tcase \"revIndex\":\n\t\t\t\t\t\t\t\t\treturn \"\" +  (results.length - 1 - index);\n\t\t\t\t\t\t\t\tcase \"length\":\n\t\t\t\t\t\t\t\t\treturn \"\" + results.length;\n\t\t\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t\t\treturn widget.getVariable(name);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\tif(list.length > 0) {\n\t\t\t\t\taccumulator = \"\" + list[0];\n\t\t\t\t}\n\t\t\t\t++index;\n\t\t\t});\n\t\t\tresults.clear();\n\t\t\tresults.push(accumulator);\t\n\t\t}\n\t}\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "filterrunprefix"
        },
        "$:/core/modules/filters/addprefix.js": {
            "title": "$:/core/modules/filters/addprefix.js",
            "text": "/*\\\ntitle: $:/core/modules/filters/addprefix.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for adding a prefix to each title in the list. This is\nespecially useful in contexts where only a filter expression is allowed\nand macro substitution isn't available.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.addprefix = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tresults.push(operator.operand + title);\n\t});\n\treturn results;\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/core/modules/filters/addsuffix.js": {
            "title": "$:/core/modules/filters/addsuffix.js",
            "text": "/*\\\ntitle: $:/core/modules/filters/addsuffix.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for adding a suffix to each title in the list. This is\nespecially useful in contexts where only a filter expression is allowed\nand macro substitution isn't available.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.addsuffix = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tresults.push(title + operator.operand);\n\t});\n\treturn results;\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/core/modules/filters/after.js": {
            "title": "$:/core/modules/filters/after.js",
            "text": "/*\\\ntitle: $:/core/modules/filters/after.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator returning the tiddler from the current list that is after the tiddler named in the operand.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.after = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tresults.push(title);\n\t});\n\tvar index = results.indexOf(operator.operand);\n\tif(index === -1 || index > (results.length - 2)) {\n\t\treturn [];\n\t} else {\n\t\treturn [results[index + 1]];\n\t}\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/core/modules/filters/all/current.js": {
            "title": "$:/core/modules/filters/all/current.js",
            "text": "/*\\\ntitle: $:/core/modules/filters/all/current.js\ntype: application/javascript\nmodule-type: allfilteroperator\n\nFilter function for [all[current]]\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.current = function(source,prefix,options) {\n\tvar currTiddlerTitle = options.widget && options.widget.getVariable(\"currentTiddler\");\n\tif(currTiddlerTitle) {\n\t\treturn [currTiddlerTitle];\n\t} else {\n\t\treturn [];\n\t}\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "allfilteroperator"
        },
        "$:/core/modules/filters/all/missing.js": {
            "title": "$:/core/modules/filters/all/missing.js",
            "text": "/*\\\ntitle: $:/core/modules/filters/all/missing.js\ntype: application/javascript\nmodule-type: allfilteroperator\n\nFilter function for [all[missing]]\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.missing = function(source,prefix,options) {\n\treturn options.wiki.getMissingTitles();\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "allfilteroperator"
        },
        "$:/core/modules/filters/all/orphans.js": {
            "title": "$:/core/modules/filters/all/orphans.js",
            "text": "/*\\\ntitle: $:/core/modules/filters/all/orphans.js\ntype: application/javascript\nmodule-type: allfilteroperator\n\nFilter function for [all[orphans]]\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.orphans = function(source,prefix,options) {\n\treturn options.wiki.getOrphanTitles();\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "allfilteroperator"
        },
        "$:/core/modules/filters/all/shadows.js": {
            "title": "$:/core/modules/filters/all/shadows.js",
            "text": "/*\\\ntitle: $:/core/modules/filters/all/shadows.js\ntype: application/javascript\nmodule-type: allfilteroperator\n\nFilter function for [all[shadows]]\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.shadows = function(source,prefix,options) {\n\treturn options.wiki.allShadowTitles();\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "allfilteroperator"
        },
        "$:/core/modules/filters/all/tags.js": {
            "title": "$:/core/modules/filters/all/tags.js",
            "text": "/*\\\ntitle: $:/core/modules/filters/all/tags.js\ntype: application/javascript\nmodule-type: allfilteroperator\n\nFilter function for [all[tags]]\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.tags = function(source,prefix,options) {\n\treturn Object.keys(options.wiki.getTagMap());\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "allfilteroperator"
        },
        "$:/core/modules/filters/all/tiddlers.js": {
            "title": "$:/core/modules/filters/all/tiddlers.js",
            "text": "/*\\\ntitle: $:/core/modules/filters/all/tiddlers.js\ntype: application/javascript\nmodule-type: allfilteroperator\n\nFilter function for [all[tiddlers]]\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.tiddlers = function(source,prefix,options) {\n\treturn options.wiki.allTitles();\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "allfilteroperator"
        },
        "$:/core/modules/filters/all.js": {
            "title": "$:/core/modules/filters/all.js",
            "text": "/*\\\ntitle: $:/core/modules/filters/all.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for selecting tiddlers\n\n[all[shadows+tiddlers]]\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar allFilterOperators;\n\nfunction getAllFilterOperators() {\n\tif(!allFilterOperators) {\n\t\tallFilterOperators = {};\n\t\t$tw.modules.applyMethods(\"allfilteroperator\",allFilterOperators);\n\t}\n\treturn allFilterOperators;\n}\n\n/*\nExport our filter function\n*/\nexports.all = function(source,operator,options) {\n\t// Get our suboperators\n\tvar allFilterOperators = getAllFilterOperators();\n\t// Cycle through the suboperators accumulating their results\n\tvar results = [],\n\t\tsubops = operator.operand.split(\"+\");\n\t// Check for common optimisations\n\tif(subops.length === 1 && subops[0] === \"\") {\n\t\treturn source;\n\t} else if(subops.length === 1 && subops[0] === \"tiddlers\") {\n\t\treturn options.wiki.each;\n\t} else if(subops.length === 1 && subops[0] === \"shadows\") {\n\t\treturn options.wiki.eachShadow;\n\t} else if(subops.length === 2 && subops[0] === \"tiddlers\" && subops[1] === \"shadows\") {\n\t\treturn options.wiki.eachTiddlerPlusShadows;\n\t} else if(subops.length === 2 && subops[0] === \"shadows\" && subops[1] === \"tiddlers\") {\n\t\treturn options.wiki.eachShadowPlusTiddlers;\n\t}\n\t// Do it the hard way\n\tfor(var t=0; t<subops.length; t++) {\n\t\tvar subop = allFilterOperators[subops[t]];\n\t\tif(subop) {\n\t\t\t$tw.utils.pushTop(results,subop(source,operator.prefix,options));\n\t\t}\n\t}\n\treturn results;\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/core/modules/filters/backlinks.js": {
            "title": "$:/core/modules/filters/backlinks.js",
            "text": "/*\\\ntitle: $:/core/modules/filters/backlinks.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for returning all the backlinks from a tiddler\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.backlinks = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\t$tw.utils.pushTop(results,options.wiki.getTiddlerBacklinks(title));\n\t});\n\treturn results;\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/core/modules/filters/before.js": {
            "title": "$:/core/modules/filters/before.js",
            "text": "/*\\\ntitle: $:/core/modules/filters/before.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator returning the tiddler from the current list that is before the tiddler named in the operand.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.before = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tresults.push(title);\n\t});\n\tvar index = results.indexOf(operator.operand);\n\tif(index <= 0) {\n\t\treturn [];\n\t} else {\n\t\treturn [results[index - 1]];\n\t}\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/core/modules/filters/commands.js": {
            "title": "$:/core/modules/filters/commands.js",
            "text": "/*\\\ntitle: $:/core/modules/filters/commands.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for returning the names of the commands available in this wiki\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.commands = function(source,operator,options) {\n\tvar results = [];\n\t$tw.utils.each($tw.commands,function(commandInfo,name) {\n\t\tresults.push(name);\n\t});\n\tresults.sort();\n\treturn results;\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/core/modules/filters/compare.js": {
            "title": "$:/core/modules/filters/compare.js",
            "text": "/*\\\ntitle: $:/core/modules/filters/compare.js\ntype: application/javascript\nmodule-type: filteroperator\n\nGeneral purpose comparison operator\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.compare = function(source,operator,options) {\n\tvar suffixes = operator.suffixes || [],\n\t\ttype = (suffixes[0] || [])[0],\n\t\tmode = (suffixes[1] || [])[0],\n\t\ttypeFn = $tw.utils.makeCompareFunction(type,{defaultType: \"number\"}),\n\t\tmodeFn = modes[mode] || modes.eq,\n\t\tinvert = operator.prefix === \"!\",\n\t\tresults = [];\n\tsource(function(tiddler,title) {\n\t\tif(modeFn(typeFn(title,operator.operand)) !== invert) {\n\t\t\tresults.push(title);\n\t\t}\n\t});\n\treturn results;\n};\n\nvar modes = {\n\t\"eq\": function(value) {return value === 0;},\n\t\"ne\": function(value) {return value !== 0;},\n\t\"gteq\": function(value) {return value >= 0;},\n\t\"gt\": function(value) {return value > 0;},\n\t\"lteq\": function(value) {return value <= 0;},\n\t\"lt\": function(value) {return value < 0;}\n}\n\n})();\n",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/core/modules/filters/contains.js": {
            "title": "$:/core/modules/filters/contains.js",
            "text": "/*\\\ntitle: $:/core/modules/filters/contains.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for finding values in array fields\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.contains = function(source,operator,options) {\n\tvar results = [],\n\t\tfieldname = (operator.suffix || \"list\").toLowerCase();\n\tif(operator.prefix === \"!\") {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(tiddler) {\n\t\t\t\tvar list = tiddler.getFieldList(fieldname);\n\t\t\t\tif(list.indexOf(operator.operand) === -1) {\n\t\t\t\t\tresults.push(title);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t} else {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(tiddler) {\n\t\t\t\tvar list = tiddler.getFieldList(fieldname);\n\t\t\t\tif(list.indexOf(operator.operand) !== -1) {\n\t\t\t\t\tresults.push(title);\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t}\n\treturn results;\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/core/modules/filters/count.js": {
            "title": "$:/core/modules/filters/count.js",
            "text": "/*\\\ntitle: $:/core/modules/filters/count.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator returning the number of entries in the current list.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.count = function(source,operator,options) {\n\tvar count = 0;\n\tsource(function(tiddler,title) {\n\t\tcount++;\n\t});\n\treturn [count + \"\"];\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/core/modules/filters/days.js": {
            "title": "$:/core/modules/filters/days.js",
            "text": "/*\\\ntitle: $:/core/modules/filters/days.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator that selects tiddlers with a specified date field within a specified date interval.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.days = function(source,operator,options) {\n\tvar results = [],\n\t\tfieldName = operator.suffix || \"modified\",\n\t\tdayInterval = (parseInt(operator.operand,10)||0),\n\t\tdayIntervalSign = $tw.utils.sign(dayInterval),\n\t\ttargetTimeStamp = (new Date()).setHours(0,0,0,0) + 1000*60*60*24*dayInterval,\n\t\tisWithinDays = function(dateField) {\n\t\t\tvar sign = $tw.utils.sign(targetTimeStamp - (new Date(dateField)).setHours(0,0,0,0));\n\t\t\treturn sign === 0 || sign === dayIntervalSign;\n\t\t};\n\n\tif(operator.prefix === \"!\") {\n\t\ttargetTimeStamp = targetTimeStamp - 1000*60*60*24*dayIntervalSign;\n\t\tsource(function(tiddler,title) {\n\t\t\tif(tiddler && tiddler.fields[fieldName]) {\n\t\t\t\tif(!isWithinDays($tw.utils.parseDate(tiddler.fields[fieldName]))) {\n\t\t\t\t\tresults.push(title);\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t} else {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(tiddler && tiddler.fields[fieldName]) {\n\t\t\t\tif(isWithinDays($tw.utils.parseDate(tiddler.fields[fieldName]))) {\n\t\t\t\t\tresults.push(title);\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t}\n\treturn results;\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/core/modules/filters/duplicateslugs.js": {
            "title": "$:/core/modules/filters/duplicateslugs.js",
            "text": "/*\\\ntitle: $:/core/modules/filters/duplicateslugs.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter function for [duplicateslugs[]]\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.duplicateslugs = function(source,operator,options) {\n\tvar slugs = Object.create(null), // Hashmap by slug of title, replaced with \"true\" if the duplicate title has already been output\n\t\tresults = [];\n\tsource(function(tiddler,title) {\n\t\tvar slug = options.wiki.slugify(title);\n\t\tif(slug in slugs) {\n\t\t\tif(slugs[slug] !== true) {\n\t\t\t\tresults.push(slugs[slug]);\n\t\t\t\tslugs[slug] = true;\n\t\t\t}\n\t\t\tresults.push(title);\n\t\t} else {\n\t\t\tslugs[slug] = title;\n\t\t}\n\t});\n\treturn results;\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/core/modules/filters/each.js": {
            "title": "$:/core/modules/filters/each.js",
            "text": "/*\\\ntitle: $:/core/modules/filters/each.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator that selects one tiddler for each unique value of the specified field.\nWith suffix \"list\", selects all tiddlers that are values in a specified list field.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.each = function(source,operator,options) {\n\tvar results =[] ,\n\tvalue,values = {},\n\tfield = operator.operand || \"title\";\n\tif(operator.suffix === \"value\" && field === \"title\") {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(!$tw.utils.hop(values,title)) {\n\t\t\t\tvalues[title] = true;\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t} else if(operator.suffix !== \"list-item\") {\n\t\tif(field === \"title\") {\n\t\t\tsource(function(tiddler,title) {\n\t\t\t\tif(tiddler && !$tw.utils.hop(values,title)) {\n\t\t\t\t\tvalues[title] = true;\n\t\t\t\t\tresults.push(title);\n\t\t\t\t}\n\t\t\t});\n\t\t} else {\n\t\t\tsource(function(tiddler,title) {\n\t\t\t\tif(tiddler) {\n\t\t\t\t\tvalue = tiddler.getFieldString(field);\n\t\t\t\t\tif(!$tw.utils.hop(values,value)) {\n\t\t\t\t\t\tvalues[value] = true;\n\t\t\t\t\t\tresults.push(title);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t} else {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(tiddler) {\n\t\t\t\t$tw.utils.each(\n\t\t\t\t\toptions.wiki.getTiddlerList(title,field),\n\t\t\t\t\tfunction(value) {\n\t\t\t\t\t\tif(!$tw.utils.hop(values,value)) {\n\t\t\t\t\t\t\tvalues[value] = true;\n\t\t\t\t\t\t\tresults.push(value);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t);\n\t\t\t}\n\t\t});\n\t}\n\treturn results;\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/core/modules/filters/eachday.js": {
            "title": "$:/core/modules/filters/eachday.js",
            "text": "/*\\\ntitle: $:/core/modules/filters/eachday.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator that selects one tiddler for each unique day covered by the specified date field\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.eachday = function(source,operator,options) {\n\tvar results = [],\n\t\tvalues = [],\n\t\tfieldName = operator.operand || \"modified\";\n\t// Function to convert a date/time to a date integer\n\tvar toDate = function(value) {\n\t\tvalue = (new Date(value)).setHours(0,0,0,0);\n\t\treturn value+0;\n\t};\n\tsource(function(tiddler,title) {\n\t\tif(tiddler && tiddler.fields[fieldName]) {\n\t\t\tvar value = toDate($tw.utils.parseDate(tiddler.fields[fieldName]));\n\t\t\tif(values.indexOf(value) === -1) {\n\t\t\t\tvalues.push(value);\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t}\n\t});\n\treturn results;\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/core/modules/filters/editiondescription.js": {
            "title": "$:/core/modules/filters/editiondescription.js",
            "text": "/*\\\ntitle: $:/core/modules/filters/editiondescription.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for returning the descriptions of the specified edition names\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.editiondescription = function(source,operator,options) {\n\tvar results = [];\n\tif($tw.node) {\n\t\tvar editionInfo = $tw.utils.getEditionInfo();\n\t\tif(editionInfo) {\n\t\t\tsource(function(tiddler,title) {\n\t\t\t\tif($tw.utils.hop(editionInfo,title)) {\n\t\t\t\t\tresults.push(editionInfo[title].description || \"\");\t\t\t\t\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t}\n\treturn results;\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/core/modules/filters/editions.js": {
            "title": "$:/core/modules/filters/editions.js",
            "text": "/*\\\ntitle: $:/core/modules/filters/editions.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for returning the names of the available editions in this wiki\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.editions = function(source,operator,options) {\n\tvar results = [];\n\tif($tw.node) {\n\t\tvar editionInfo = $tw.utils.getEditionInfo();\n\t\tif(editionInfo) {\n\t\t\t$tw.utils.each(editionInfo,function(info,name) {\n\t\t\t\tresults.push(name);\n\t\t\t});\n\t\t}\n\t\tresults.sort();\n\t}\n\treturn results;\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/core/modules/filters/else.js": {
            "title": "$:/core/modules/filters/else.js",
            "text": "/*\\\ntitle: $:/core/modules/filters/else.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for replacing an empty input list with a constant, passing a non-empty input list straight through\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.else = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tresults.push(title);\n\t});\n\tif(results.length === 0) {\n\t\treturn [operator.operand];\n\t} else {\n\t\treturn results;\n\t}\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/core/modules/filters/decodeuricomponent.js": {
            "title": "$:/core/modules/filters/decodeuricomponent.js",
            "text": "/*\\\ntitle: $:/core/modules/filters/decodeuricomponent.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for applying decodeURIComponent() to each item.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter functions\n*/\n\nexports.decodeuricomponent = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tvar value = title;\n\t\ttry {\n\t\t\tvalue = decodeURIComponent(title);\n\t\t} catch(e) {\n\t\t}\n\t\tresults.push(value);\n\t});\n\treturn results;\n};\n\nexports.encodeuricomponent = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tresults.push(encodeURIComponent(title));\n\t});\n\treturn results;\n};\n\nexports.decodeuri = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tvar value = title;\n\t\ttry {\n\t\t\tvalue = decodeURI(title);\n\t\t} catch(e) {\n\t\t}\n\t\tresults.push(value);\n\t});\n\treturn results;\n};\n\nexports.encodeuri = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tresults.push(encodeURI(title));\n\t});\n\treturn results;\n};\n\nexports.decodehtml = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tresults.push($tw.utils.htmlDecode(title));\n\t});\n\treturn results;\n};\n\nexports.encodehtml = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tresults.push($tw.utils.htmlEncode(title));\n\t});\n\treturn results;\n};\n\nexports.stringify = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tresults.push($tw.utils.stringify(title,(operator.suffix === \"rawunicode\")));\n\t});\n\treturn results;\n};\n\nexports.jsonstringify = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tresults.push($tw.utils.jsonStringify(title,(operator.suffix === \"rawunicode\")));\n\t});\n\treturn results;\n};\n\nexports.escaperegexp = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tresults.push($tw.utils.escapeRegExp(title));\n\t});\n\treturn results;\n};\n\nexports.escapecss = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\t// escape any character with a special meaning in CSS using CSS.escape()\n\t\tresults.push(CSS.escape(title));\n\t});\n\treturn results;\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/core/modules/filters/enlist.js": {
            "title": "$:/core/modules/filters/enlist.js",
            "text": "/*\\\ntitle: $:/core/modules/filters/enlist.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator returning its operand parsed as a list\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.enlist = function(source,operator,options) {\n\tvar allowDuplicates = false;\n\tswitch(operator.suffix) {\n\t\tcase \"raw\":\n\t\t\tallowDuplicates = true;\n\t\t\tbreak;\n\t\tcase \"dedupe\":\n\t\t\tallowDuplicates = false;\n\t\t\tbreak;\n\t}\n\tvar list = $tw.utils.parseStringArray(operator.operand,allowDuplicates);\n\tif(operator.prefix === \"!\") {\n\t\tvar results = [];\n\t\tsource(function(tiddler,title) {\n\t\t\tif(list.indexOf(title) === -1) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t\treturn results;\n\t} else {\n\t\treturn list;\n\t}\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/core/modules/filters/field.js": {
            "title": "$:/core/modules/filters/field.js",
            "text": "/*\\\ntitle: $:/core/modules/filters/field.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for comparing fields for equality\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.field = function(source,operator,options) {\n\tvar results = [],indexedResults,\n\t\tfieldname = (operator.suffix || operator.operator || \"title\").toLowerCase();\n\tif(operator.prefix === \"!\") {\n\t\tif(operator.regexp) {\n\t\t\tsource(function(tiddler,title) {\n\t\t\t\tif(tiddler) {\n\t\t\t\t\tvar text = tiddler.getFieldString(fieldname);\n\t\t\t\t\tif(text !== null && !operator.regexp.exec(text)) {\n\t\t\t\t\t\tresults.push(title);\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tresults.push(title);\n\t\t\t\t}\n\t\t\t});\n\t\t} else {\n\t\t\tsource(function(tiddler,title) {\n\t\t\t\tif(tiddler) {\n\t\t\t\t\tvar text = tiddler.getFieldString(fieldname);\n\t\t\t\t\tif(text !== null && text !== operator.operand) {\n\t\t\t\t\t\tresults.push(title);\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tresults.push(title);\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t} else {\n\t\tif(operator.regexp) {\n\t\t\tsource(function(tiddler,title) {\n\t\t\t\tif(tiddler) {\n\t\t\t\t\tvar text = tiddler.getFieldString(fieldname);\n\t\t\t\t\tif(text !== null && !!operator.regexp.exec(text)) {\n\t\t\t\t\t\tresults.push(title);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\t} else {\n\t\t\tif(source.byField && operator.operand) {\n\t\t\t\tindexedResults = source.byField(fieldname,operator.operand);\n\t\t\t\tif(indexedResults) {\n\t\t\t\t\treturn indexedResults\n\t\t\t\t}\n\t\t\t}\n\t\t\tsource(function(tiddler,title) {\n\t\t\t\tif(tiddler) {\n\t\t\t\t\tvar text = tiddler.getFieldString(fieldname);\n\t\t\t\t\tif(text !== null && text === operator.operand) {\n\t\t\t\t\t\tresults.push(title);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t}\n\treturn results;\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/core/modules/filters/fields.js": {
            "title": "$:/core/modules/filters/fields.js",
            "text": "/*\\\ntitle: $:/core/modules/filters/fields.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for returning the names of the fields on the selected tiddlers\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.fields = function(source,operator,options) {\n\tvar results = [],\n\t\tfieldName,\n\t\tsuffixes = (operator.suffixes || [])[0] || [],\n\t\toperand = $tw.utils.parseStringArray(operator.operand);\n\t\n\tsource(function(tiddler,title) {\n\t\tif(tiddler) {\n\t\t\tif(suffixes.indexOf(\"include\") !== -1) {\n\t\t\t\tfor(fieldName in tiddler.fields) {\n\t\t\t\t\t(operand.indexOf(fieldName) !== -1) ? $tw.utils.pushTop(results,fieldName) : \"\";\n\t\t\t\t}\n\t\t\t} else if (suffixes.indexOf(\"exclude\") !== -1) {\n\t\t\t\tfor(fieldName in tiddler.fields) {\n\t\t\t\t\t(operand.indexOf(fieldName) !== -1) ? \"\" : $tw.utils.pushTop(results,fieldName);\n\t\t\t\t}\n\t\t\t} // else if\n\t\t\telse {\n\t\t\t\tfor(fieldName in tiddler.fields) {\n\t\t\t\t\t$tw.utils.pushTop(results,fieldName);\n\t\t\t\t}\n\t\t\t} // else\n\t\t} // if (tiddler)\n\t});\n\treturn results;\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/core/modules/filters/filter.js": {
            "title": "$:/core/modules/filters/filter.js",
            "text": "/*\\\ntitle: $:/core/modules/filters/filter.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator returning those input titles that pass a subfilter\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.filter = function(source,operator,options) {\n\tvar filterFn = options.wiki.compileFilter(operator.operand),\n\t\tresults = [],\n\t\ttarget = operator.prefix !== \"!\";\n\tsource(function(tiddler,title) {\n\t\tvar list = filterFn.call(options.wiki,options.wiki.makeTiddlerIterator([title]));\n\t\tif((list.length > 0) === target) {\n\t\t\tresults.push(title);\n\t\t}\n\t});\n\treturn results;\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/core/modules/filters/format/date.js": {
            "title": "$:/core/modules/filters/format/date.js",
            "text": "/*\\\ntitle: $:/core/modules/filters/format/date.js\ntype: application/javascript\nmodule-type: formatfilteroperator\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.date = function(source,operand,options) {\n\tvar results = [];\t\n\tsource(function(tiddler,title) {\n\t\tvar value = $tw.utils.parseDate(title);\n\t\tif(value && $tw.utils.isDate(value) && value.toString() !== \"Invalid Date\") {\n\t\t\tresults.push($tw.utils.formatDateString(value,operand || \"YYYY MM DD 0hh:0mm\"));\n\t\t}\n\t});\t\n\treturn results;\n};\n\n})();",
            "type": "application/javascript",
            "module-type": "formatfilteroperator"
        },
        "$:/core/modules/filters/format/relativedate.js": {
            "title": "$:/core/modules/filters/format/relativedate.js",
            "text": "/*\\\ntitle: $:/core/modules/filters/format/relativedate.js\ntype: application/javascript\nmodule-type: formatfilteroperator\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.relativedate = function(source,operand,options) {\n\tvar results = [];\t\n\tsource(function(tiddler,title) {\n\t\tvar value = $tw.utils.parseDate(title);\n\t\tif(value && $tw.utils.isDate(value) && value.toString() !== \"Invalid Date\") {\n\t\t\tresults.push($tw.utils.getRelativeDate((new Date()) - (new Date(value))).description);\n\t\t}\n\t});\t\n\treturn results;\n};\n\n})();",
            "type": "application/javascript",
            "module-type": "formatfilteroperator"
        },
        "$:/core/modules/filters/format.js": {
            "title": "$:/core/modules/filters/format.js",
            "text": "/*\\\ntitle: $:/core/modules/filters/format.js\ntype: application/javascript\nmodule-type: filteroperator\nFilter operator for formatting strings\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar formatFilterOperators;\n\nfunction getFormatFilterOperators() {\n\tif(!formatFilterOperators) {\n\t\tformatFilterOperators = {};\n\t\t$tw.modules.applyMethods(\"formatfilteroperator\",formatFilterOperators);\n\t}\n\treturn formatFilterOperators;\n}\n\n/*\nExport our filter function\n*/\nexports.format = function(source,operator,options) {\n\t// Dispatch to the correct formatfilteroperator\n\tvar formatFilterOperators = getFormatFilterOperators();\n\tif(operator.suffix) {\n\t\tvar formatFilterOperator = formatFilterOperators[operator.suffix];\n\t\tif(formatFilterOperator) {\n\t\t\treturn formatFilterOperator(source,operator.operand,options);\n\t\t} else {\n\t\t\treturn [$tw.language.getString(\"Error/FormatFilterOperator\")];\n\t\t}\n\t} else {\n\t\t// Return all unchanged if the suffix is missing\n\t\tvar results = [];\n\t\tsource(function(tiddler,title) {\n\t\t\tresults.push(title);\n\t\t});\n\t\treturn results;\n\t}\n};\n\n})();",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/core/modules/filters/get.js": {
            "title": "$:/core/modules/filters/get.js",
            "text": "/*\\\ntitle: $:/core/modules/filters/get.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for replacing tiddler titles by the value of the field specified in the operand.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.get = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tif(tiddler) {\n\t\t\tvar value = tiddler.getFieldString(operator.operand);\n\t\t\tif(value) {\n\t\t\t\tresults.push(value);\n\t\t\t}\n\t\t}\n\t});\n\treturn results;\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/core/modules/filters/getindex.js": {
            "title": "$:/core/modules/filters/getindex.js",
            "text": "/*\\\ntitle: $:/core/modules/filters/getindex.js\ntype: application/javascript\nmodule-type: filteroperator\n\nreturns the value at a given index of datatiddlers\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.getindex = function(source,operator,options) {\n\tvar data,title,results = [];\n\tif(operator.operand){\n\t\tsource(function(tiddler,title) {\n\t\t\ttitle = tiddler ? tiddler.fields.title : title;\n\t\t\tdata = options.wiki.extractTiddlerDataItem(tiddler,operator.operand);\n\t\t\tif(data) {\n\t\t\t\tresults.push(data);\n\t\t\t}\n\t\t});\n\t}\n\treturn results;\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/core/modules/filters/getvariable.js": {
            "title": "$:/core/modules/filters/getvariable.js",
            "text": "/*\\\ntitle: $:/core/modules/filters/getvariable.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for replacing input values by the value of the variable with the same name, or blank if the variable is missing\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.getvariable = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tresults.push(options.widget.getVariable(title) || \"\");\n\t});\n\treturn results;\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/core/modules/filters/has.js": {
            "title": "$:/core/modules/filters/has.js",
            "text": "/*\\\ntitle: $:/core/modules/filters/has.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for checking if a tiddler has the specified field or index\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.has = function(source,operator,options) {\n\tvar results = [],\n\t\tinvert = operator.prefix === \"!\";\n\n\tif(operator.suffix === \"field\") {\n\t\tif(invert) {\n\t\t\tsource(function(tiddler,title) {\n\t\t\t\tif(!tiddler || (tiddler && (!$tw.utils.hop(tiddler.fields,operator.operand)))) {\n\t\t\t\t\tresults.push(title);\n\t\t\t\t}\n\t\t\t});\n\t\t} else {\n\t\t\tsource(function(tiddler,title) {\n\t\t\t\tif(tiddler && $tw.utils.hop(tiddler.fields,operator.operand)) {\n\t\t\t\t\tresults.push(title);\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t}\n\telse if(operator.suffix === \"index\") {\n\t\tif(invert) {\n\t\t\tsource(function(tiddler,title) {\n\t\t\t\tif(!tiddler || (tiddler && (!$tw.utils.hop(options.wiki.getTiddlerDataCached(tiddler,Object.create(null)),operator.operand)))) {\n\t\t\t\t\tresults.push(title);\n\t\t\t\t}\n\t\t\t});\n\t\t} else {\n\t\t\tsource(function(tiddler,title) {\n\t\t\t\tif(tiddler && $tw.utils.hop(options.wiki.getTiddlerDataCached(tiddler,Object.create(null)),operator.operand)) {\n\t\t\t\t\tresults.push(title);\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t}\n\telse {\n\t\tif(invert) {\n\t\t\tsource(function(tiddler,title) {\n\t\t\t\tif(!tiddler || !$tw.utils.hop(tiddler.fields,operator.operand) || (tiddler.fields[operator.operand].length === 0)) {\n\t\t\t\t\tresults.push(title);\n\t\t\t\t}\n\t\t\t});\n\t\t} else {\n\t\t\tsource(function(tiddler,title) {\n\t\t\t\tif(tiddler && $tw.utils.hop(tiddler.fields,operator.operand) && (tiddler.fields[operator.operand].length !== 0)) {\n\t\t\t\t\tresults.push(title);\n\t\t\t\t}\n\t\t\t});\t\t\t\t\n\t\t}\n\t}\n\treturn results;\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/core/modules/filters/haschanged.js": {
            "title": "$:/core/modules/filters/haschanged.js",
            "text": "/*\\\ntitle: $:/core/modules/filters/haschanged.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator returns tiddlers from the list that have a non-zero changecount.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.haschanged = function(source,operator,options) {\n\tvar results = [];\n\tif(operator.prefix === \"!\") {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(options.wiki.getChangeCount(title) === 0) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t} else {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(options.wiki.getChangeCount(title) > 0) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t}\n\treturn results;\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/core/modules/filters/indexes.js": {
            "title": "$:/core/modules/filters/indexes.js",
            "text": "/*\\\ntitle: $:/core/modules/filters/indexes.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for returning the indexes of a data tiddler\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.indexes = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tvar data = options.wiki.getTiddlerDataCached(title);\n\t\tif(data) {\n\t\t\t$tw.utils.pushTop(results,Object.keys(data));\n\t\t}\n\t});\n\tresults.sort();\n\treturn results;\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/core/modules/filters/insertbefore.js": {
            "title": "$:/core/modules/filters/insertbefore.js",
            "text": "/*\\\ntitle: $:/core/modules/filters/insertbefore.js\ntype: application/javascript\nmodule-type: filteroperator\n\nInsert an item before another item in a list\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nOrder a list\n*/\nexports.insertbefore = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tresults.push(title);\n\t});\n\tvar target = options.widget && options.widget.getVariable(operator.suffix || \"currentTiddler\");\n\tif(target !== operator.operand) {\n\t\t// Remove the entry from the list if it is present\n\t\tvar pos = results.indexOf(operator.operand);\n\t\tif(pos !== -1) {\n\t\t\tresults.splice(pos,1);\n\t\t}\n\t\t// Insert the entry before the target marker\n\t\tpos = results.indexOf(target);\n\t\tif(pos !== -1) {\n\t\t\tresults.splice(pos,0,operator.operand);\n\t\t} else {\n\t\t\tresults.push(operator.operand);\n\t\t}\n\t}\n\treturn results;\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/core/modules/filters/is/binary.js": {
            "title": "$:/core/modules/filters/is/binary.js",
            "text": "/*\\\ntitle: $:/core/modules/filters/is/binary.js\ntype: application/javascript\nmodule-type: isfilteroperator\n\nFilter function for [is[binary]]\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.binary = function(source,prefix,options) {\n\tvar results = [];\n\tif(prefix === \"!\") {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(!options.wiki.isBinaryTiddler(title)) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t} else {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(options.wiki.isBinaryTiddler(title)) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t}\n\treturn results;\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "isfilteroperator"
        },
        "$:/core/modules/filters/is/blank.js": {
            "title": "$:/core/modules/filters/is/blank.js",
            "text": "/*\\\ntitle: $:/core/modules/filters/is/blank.js\ntype: application/javascript\nmodule-type: isfilteroperator\n\nFilter function for [is[blank]]\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.blank = function(source,prefix,options) {\n\tvar results = [];\n\tif(prefix === \"!\") {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(title) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t} else {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(!title) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t}\n\treturn results;\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "isfilteroperator"
        },
        "$:/core/modules/filters/is/current.js": {
            "title": "$:/core/modules/filters/is/current.js",
            "text": "/*\\\ntitle: $:/core/modules/filters/is/current.js\ntype: application/javascript\nmodule-type: isfilteroperator\n\nFilter function for [is[current]]\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.current = function(source,prefix,options) {\n\tvar results = [],\n\t\tcurrTiddlerTitle = options.widget && options.widget.getVariable(\"currentTiddler\");\n\tif(prefix === \"!\") {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(title !== currTiddlerTitle) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t} else {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(title === currTiddlerTitle) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t}\n\treturn results;\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "isfilteroperator"
        },
        "$:/core/modules/filters/is/draft.js": {
            "title": "$:/core/modules/filters/is/draft.js",
            "text": "/*\\\ntitle: $:/core/modules/filters/is/draft.js\ntype: application/javascript\nmodule-type: isfilteroperator\n\nFilter function for [is[draft]] analagous to [has[draft.of]]\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.draft = function(source,prefix,options) {\n\tvar results = [];\n\tif(prefix === \"!\") {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(!tiddler || !$tw.utils.hop(tiddler.fields,\"draft.of\")) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t} else {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(tiddler && $tw.utils.hop(tiddler.fields,\"draft.of\") && (tiddler.fields[\"draft.of\"].length !== 0)) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\t\t\t\t\n\t}\n\treturn results;\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "isfilteroperator"
        },
        "$:/core/modules/filters/is/image.js": {
            "title": "$:/core/modules/filters/is/image.js",
            "text": "/*\\\ntitle: $:/core/modules/filters/is/image.js\ntype: application/javascript\nmodule-type: isfilteroperator\n\nFilter function for [is[image]]\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.image = function(source,prefix,options) {\n\tvar results = [];\n\tif(prefix === \"!\") {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(!options.wiki.isImageTiddler(title)) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t} else {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(options.wiki.isImageTiddler(title)) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t}\n\treturn results;\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "isfilteroperator"
        },
        "$:/core/modules/filters/is/missing.js": {
            "title": "$:/core/modules/filters/is/missing.js",
            "text": "/*\\\ntitle: $:/core/modules/filters/is/missing.js\ntype: application/javascript\nmodule-type: isfilteroperator\n\nFilter function for [is[missing]]\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.missing = function(source,prefix,options) {\n\tvar results = [];\n\tif(prefix === \"!\") {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(options.wiki.tiddlerExists(title)) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t} else {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(!options.wiki.tiddlerExists(title)) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t}\n\treturn results;\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "isfilteroperator"
        },
        "$:/core/modules/filters/is/orphan.js": {
            "title": "$:/core/modules/filters/is/orphan.js",
            "text": "/*\\\ntitle: $:/core/modules/filters/is/orphan.js\ntype: application/javascript\nmodule-type: isfilteroperator\n\nFilter function for [is[orphan]]\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.orphan = function(source,prefix,options) {\n\tvar results = [],\n\t\torphanTitles = options.wiki.getOrphanTitles();\n\tif(prefix === \"!\") {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(orphanTitles.indexOf(title) === -1) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t} else {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(orphanTitles.indexOf(title) !== -1) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t}\n\treturn results;\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "isfilteroperator"
        },
        "$:/core/modules/filters/is/shadow.js": {
            "title": "$:/core/modules/filters/is/shadow.js",
            "text": "/*\\\ntitle: $:/core/modules/filters/is/shadow.js\ntype: application/javascript\nmodule-type: isfilteroperator\n\nFilter function for [is[shadow]]\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.shadow = function(source,prefix,options) {\n\tvar results = [];\n\tif(prefix === \"!\") {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(!options.wiki.isShadowTiddler(title)) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t} else {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(options.wiki.isShadowTiddler(title)) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t}\n\treturn results;\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "isfilteroperator"
        },
        "$:/core/modules/filters/is/system.js": {
            "title": "$:/core/modules/filters/is/system.js",
            "text": "/*\\\ntitle: $:/core/modules/filters/is/system.js\ntype: application/javascript\nmodule-type: isfilteroperator\n\nFilter function for [is[system]]\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.system = function(source,prefix,options) {\n\tvar results = [];\n\tif(prefix === \"!\") {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(!options.wiki.isSystemTiddler(title)) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t} else {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(options.wiki.isSystemTiddler(title)) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t}\n\treturn results;\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "isfilteroperator"
        },
        "$:/core/modules/filters/is/tag.js": {
            "title": "$:/core/modules/filters/is/tag.js",
            "text": "/*\\\ntitle: $:/core/modules/filters/is/tag.js\ntype: application/javascript\nmodule-type: isfilteroperator\n\nFilter function for [is[tag]]\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.tag = function(source,prefix,options) {\n\tvar results = [],\n\t\ttagMap = options.wiki.getTagMap();\n\tif(prefix === \"!\") {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(!$tw.utils.hop(tagMap,title)) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t} else {\n\t\tsource(function(tiddler,title) {\n\t\t\tif($tw.utils.hop(tagMap,title)) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t}\n\treturn results;\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "isfilteroperator"
        },
        "$:/core/modules/filters/is/tiddler.js": {
            "title": "$:/core/modules/filters/is/tiddler.js",
            "text": "/*\\\ntitle: $:/core/modules/filters/is/tiddler.js\ntype: application/javascript\nmodule-type: isfilteroperator\n\nFilter function for [is[tiddler]]\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.tiddler = function(source,prefix,options) {\n\tvar results = [];\n\tif(prefix === \"!\") {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(!options.wiki.tiddlerExists(title)) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t} else {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(options.wiki.tiddlerExists(title)) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t}\n\treturn results;\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "isfilteroperator"
        },
        "$:/core/modules/filters/is/variable.js": {
            "title": "$:/core/modules/filters/is/variable.js",
            "text": "/*\\\ntitle: $:/core/modules/filters/is/variable.js\ntype: application/javascript\nmodule-type: isfilteroperator\n\nFilter function for [is[variable]]\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.variable = function(source,prefix,options) {\n\tvar results = [];\n\tif(prefix === \"!\") {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(!(title in options.widget.variables)) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t} else {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(title in options.widget.variables) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t}\n\treturn results;\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "isfilteroperator"
        },
        "$:/core/modules/filters/is.js": {
            "title": "$:/core/modules/filters/is.js",
            "text": "/*\\\ntitle: $:/core/modules/filters/is.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for checking tiddler properties\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar isFilterOperators;\n\nfunction getIsFilterOperators() {\n\tif(!isFilterOperators) {\n\t\tisFilterOperators = {};\n\t\t$tw.modules.applyMethods(\"isfilteroperator\",isFilterOperators);\n\t}\n\treturn isFilterOperators;\n}\n\n/*\nExport our filter function\n*/\nexports.is = function(source,operator,options) {\n\t// Dispatch to the correct isfilteroperator\n\tvar isFilterOperators = getIsFilterOperators();\n\tif(operator.operand) {\n\t\tvar isFilterOperator = isFilterOperators[operator.operand];\n\t\tif(isFilterOperator) {\n\t\t\treturn isFilterOperator(source,operator.prefix,options);\n\t\t} else {\n\t\t\treturn [$tw.language.getString(\"Error/IsFilterOperator\")];\n\t\t}\n\t} else {\n\t\t// Return all tiddlers if the operand is missing\n\t\tvar results = [];\n\t\tsource(function(tiddler,title) {\n\t\t\tresults.push(title);\n\t\t});\n\t\treturn results;\n\t}\n};\n\n})();",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/core/modules/filters/limit.js": {
            "title": "$:/core/modules/filters/limit.js",
            "text": "/*\\\ntitle: $:/core/modules/filters/limit.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for chopping the results to a specified maximum number of entries\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.limit = function(source,operator,options) {\n\tvar results = [];\n\t// Convert to an array\n\tsource(function(tiddler,title) {\n\t\tresults.push(title);\n\t});\n\t// Slice the array if necessary\n\tvar limit = Math.min(results.length,parseInt(operator.operand,10));\n\tif(operator.prefix === \"!\") {\n\t\tresults = results.slice(-limit);\n\t} else {\n\t\tresults = results.slice(0,limit);\n\t}\n\treturn results;\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/core/modules/filters/links.js": {
            "title": "$:/core/modules/filters/links.js",
            "text": "/*\\\ntitle: $:/core/modules/filters/links.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for returning all the links from a tiddler\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.links = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\t$tw.utils.pushTop(results,options.wiki.getTiddlerLinks(title));\n\t});\n\treturn results;\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/core/modules/filters/list.js": {
            "title": "$:/core/modules/filters/list.js",
            "text": "/*\\\ntitle: $:/core/modules/filters/list.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator returning the tiddlers whose title is listed in the operand tiddler\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.list = function(source,operator,options) {\n\tvar results = [],\n\t\ttr = $tw.utils.parseTextReference(operator.operand),\n\t\tcurrTiddlerTitle = options.widget && options.widget.getVariable(\"currentTiddler\"),\n\t\tlist = options.wiki.getTiddlerList(tr.title || currTiddlerTitle,tr.field,tr.index);\n\tif(operator.prefix === \"!\") {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(list.indexOf(title) === -1) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t} else {\n\t\tresults = list;\n\t}\n\treturn results;\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/core/modules/filters/listed.js": {
            "title": "$:/core/modules/filters/listed.js",
            "text": "/*\\\ntitle: $:/core/modules/filters/listed.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator returning all tiddlers that have the selected tiddlers in a list\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.listed = function(source,operator,options) {\n\tvar field = operator.operand || \"list\",\n\t\tresults = [];\n\tsource(function(tiddler,title) {\n\t\t$tw.utils.pushTop(results,options.wiki.findListingsOfTiddler(title,field));\n\t});\n\treturn results;\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/core/modules/filters/listops.js": {
            "title": "$:/core/modules/filters/listops.js",
            "text": "/*\\\ntitle: $:/core/modules/filters/listops.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operators for manipulating the current selection list\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nOrder a list\n*/\nexports.order = function(source,operator,options) {\n\tvar results = [];\n\tif(operator.operand.toLowerCase() === \"reverse\") {\n\t\tsource(function(tiddler,title) {\n\t\t\tresults.unshift(title);\n\t\t});\n\t} else {\n\t\tsource(function(tiddler,title) {\n\t\t\tresults.push(title);\n\t\t});\n\t}\n\treturn results;\n};\n\n/*\nReverse list\n*/\nexports.reverse = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tresults.unshift(title);\n\t});\n\treturn results;\n};\n\n/*\nFirst entry/entries in list\n*/\nexports.first = function(source,operator,options) {\n\tvar count = $tw.utils.getInt(operator.operand,1),\n\t\tresults = [];\n\tsource(function(tiddler,title) {\n\t\tresults.push(title);\n\t});\n\treturn results.slice(0,count);\n};\n\n/*\nLast entry/entries in list\n*/\nexports.last = function(source,operator,options) {\n\tvar count = $tw.utils.getInt(operator.operand,1),\n\t\tresults = [];\n\tsource(function(tiddler,title) {\n\t\tresults.push(title);\n\t});\n\treturn results.slice(-count);\n};\n\n/*\nAll but the first entry/entries of the list\n*/\nexports.rest = function(source,operator,options) {\n\tvar count = $tw.utils.getInt(operator.operand,1),\n\t\tresults = [];\n\tsource(function(tiddler,title) {\n\t\tresults.push(title);\n\t});\n\treturn results.slice(count);\n};\nexports.butfirst = exports.rest;\nexports.bf = exports.rest;\n\n/*\nAll but the last entry/entries of the list\n*/\nexports.butlast = function(source,operator,options) {\n\tvar count = $tw.utils.getInt(operator.operand,1),\n\t\tresults = [];\n\tsource(function(tiddler,title) {\n\t\tresults.push(title);\n\t});\n\treturn results.slice(0,-count);\n};\nexports.bl = exports.butlast;\n\n/*\nThe nth member of the list\n*/\nexports.nth = function(source,operator,options) {\n\tvar count = $tw.utils.getInt(operator.operand,1),\n\t\tresults = [];\n\tsource(function(tiddler,title) {\n\t\tresults.push(title);\n\t});\n\treturn results.slice(count - 1,count);\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/core/modules/filters/lookup.js": {
            "title": "$:/core/modules/filters/lookup.js",
            "text": "/*\\\ntitle: $:/core/modules/filters/lookup.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator that looks up values via a title prefix\n\n[lookup:<field>[<prefix>]]\n\nPrepends the prefix to the selected items and returns the specified field value\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.lookup = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tresults.push(options.wiki.getTiddlerText(operator.operand + title) || operator.suffix);\n\t});\n\treturn results;\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/core/modules/filters/match.js": {
            "title": "$:/core/modules/filters/match.js",
            "text": "/*\\\ntitle: $:/core/modules/filters/match.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for checking if a title matches a string\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.match = function(source,operator,options) {\n\tvar results = [],\n\t\tsuffixes = (operator.suffixes || [])[0] || [];\n\tif(suffixes.indexOf(\"caseinsensitive\") !== -1) {\n\t\tif(operator.prefix === \"!\") {\n\t\t\tsource(function(tiddler,title) {\n\t\t\t\tif(title.toLowerCase() !== (operator.operand || \"\").toLowerCase()) {\n\t\t\t\t\tresults.push(title);\n\t\t\t\t}\n\t\t\t});\n\t\t} else {\n\t\t\tsource(function(tiddler,title) {\n\t\t\t\tif(title.toLowerCase() === (operator.operand || \"\").toLowerCase()) {\n\t\t\t\t\tresults.push(title);\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t} else {\n\t\tif(operator.prefix === \"!\") {\n\t\t\tsource(function(tiddler,title) {\n\t\t\t\tif(title !== operator.operand) {\n\t\t\t\t\tresults.push(title);\n\t\t\t\t}\n\t\t\t});\n\t\t} else {\n\t\t\tsource(function(tiddler,title) {\n\t\t\t\tif(title === operator.operand) {\n\t\t\t\t\tresults.push(title);\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t}\n\treturn results;\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/core/modules/filters/math.js": {
            "title": "$:/core/modules/filters/math.js",
            "text": "/*\\\ntitle: $:/core/modules/filters/math.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operators for math. Unary/binary operators work on each item in turn, and return a new item list.\n\nSum/product/maxall/minall operate on the entire list, returning a single item.\n\nNote that strings are converted to numbers automatically. Trailing non-digits are ignored.\n\n* \"\" converts to 0\n* \"12kk\" converts to 12\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.negate = makeNumericBinaryOperator(\n\tfunction(a) {return -a}\n);\n\nexports.abs = makeNumericBinaryOperator(\n\tfunction(a) {return Math.abs(a)}\n);\n\nexports.ceil = makeNumericBinaryOperator(\n\tfunction(a) {return Math.ceil(a)}\n);\n\nexports.floor = makeNumericBinaryOperator(\n\tfunction(a) {return Math.floor(a)}\n);\n\nexports.round = makeNumericBinaryOperator(\n\tfunction(a) {return Math.round(a)}\n);\n\nexports.trunc = makeNumericBinaryOperator(\n\tfunction(a) {return Math.trunc(a)}\n);\n\nexports.untrunc = makeNumericBinaryOperator(\n\tfunction(a) {return Math.ceil(Math.abs(a)) * Math.sign(a)}\n);\n\nexports.sign = makeNumericBinaryOperator(\n\tfunction(a) {return Math.sign(a)}\n);\n\nexports.add = makeNumericBinaryOperator(\n\tfunction(a,b) {return a + b;}\n);\n\nexports.subtract = makeNumericBinaryOperator(\n\tfunction(a,b) {return a - b;}\n);\n\nexports.multiply = makeNumericBinaryOperator(\n\tfunction(a,b) {return a * b;}\n);\n\nexports.divide = makeNumericBinaryOperator(\n\tfunction(a,b) {return a / b;}\n);\n\nexports.remainder = makeNumericBinaryOperator(\n\tfunction(a,b) {return a % b;}\n);\n\nexports.max = makeNumericBinaryOperator(\n\tfunction(a,b) {return Math.max(a,b);}\n);\n\nexports.min = makeNumericBinaryOperator(\n\tfunction(a,b) {return Math.min(a,b);}\n);\n\nexports.fixed = makeNumericBinaryOperator(\n\tfunction(a,b) {return Number.prototype.toFixed.call(a,Math.min(Math.max(b,0),100));}\n);\n\nexports.precision = makeNumericBinaryOperator(\n\tfunction(a,b) {return Number.prototype.toPrecision.call(a,Math.min(Math.max(b,1),100));}\n);\n\nexports.exponential = makeNumericBinaryOperator(\n\tfunction(a,b) {return Number.prototype.toExponential.call(a,Math.min(Math.max(b,0),100));}\n);\n\nexports.power = makeNumericBinaryOperator(\n\tfunction(a,b) {return Math.pow(a,b);}\n);\n\nexports.log = makeNumericBinaryOperator(\n\tfunction(a,b) {\n\t\tif(b) {\n\t\t\treturn Math.log(a)/Math.log(b);\n\t\t} else {\n\t\t\treturn Math.log(a);\n\t\t}\n\t}\n);\n\nexports.sum = makeNumericReducingOperator(\n\tfunction(accumulator,value) {return accumulator + value},\n\t0 // Initial value\n);\n\nexports.product = makeNumericReducingOperator(\n\tfunction(accumulator,value) {return accumulator * value},\n\t1 // Initial value\n);\n\nexports.maxall = makeNumericReducingOperator(\n\tfunction(accumulator,value) {return Math.max(accumulator,value)},\n\t-Infinity // Initial value\n);\n\nexports.minall = makeNumericReducingOperator(\n\tfunction(accumulator,value) {return Math.min(accumulator,value)},\n\tInfinity // Initial value\n);\n\nfunction makeNumericBinaryOperator(fnCalc) {\n\treturn function(source,operator,options) {\n\t\tvar result = [],\n\t\t\tnumOperand = $tw.utils.parseNumber(operator.operand);\n\t\tsource(function(tiddler,title) {\n\t\t\tresult.push($tw.utils.stringifyNumber(fnCalc($tw.utils.parseNumber(title),numOperand)));\n\t\t});\n\t\treturn result;\n\t};\n}\n\nfunction makeNumericReducingOperator(fnCalc,initialValue) {\n\tinitialValue = initialValue || 0;\n\treturn function(source,operator,options) {\n\t\tvar result = [];\n\t\tsource(function(tiddler,title) {\n\t\t\tresult.push(title);\n\t\t});\n\t\treturn [$tw.utils.stringifyNumber(result.reduce(function(accumulator,currentValue) {\n\t\t\treturn fnCalc(accumulator,$tw.utils.parseNumber(currentValue));\n\t\t},initialValue))];\n\t};\n}\n\n})();\n",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/core/modules/filters/minlength.js": {
            "title": "$:/core/modules/filters/minlength.js",
            "text": "/*\\\ntitle: $:/core/modules/filters/minlength.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for filtering out titles that don't meet the minimum length in the operand\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.minlength = function(source,operator,options) {\n\tvar results = [],\n\t\tminLength = parseInt(operator.operand || \"\",10) || 0;\n\tsource(function(tiddler,title) {\n\t\tif(title.length >= minLength) {\n\t\t\tresults.push(title);\n\t\t}\n\t});\n\treturn results;\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/core/modules/filters/modules.js": {
            "title": "$:/core/modules/filters/modules.js",
            "text": "/*\\\ntitle: $:/core/modules/filters/modules.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for returning the titles of the modules of a given type in this wiki\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.modules = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\t$tw.utils.each($tw.modules.types[title],function(moduleInfo,moduleName) {\n\t\t\tresults.push(moduleName);\n\t\t});\n\t});\n\tresults.sort();\n\treturn results;\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/core/modules/filters/moduletypes.js": {
            "title": "$:/core/modules/filters/moduletypes.js",
            "text": "/*\\\ntitle: $:/core/modules/filters/moduletypes.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for returning the names of the module types in this wiki\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.moduletypes = function(source,operator,options) {\n\tvar results = [];\n\t$tw.utils.each($tw.modules.types,function(moduleInfo,type) {\n\t\tresults.push(type);\n\t});\n\tresults.sort();\n\treturn results;\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/core/modules/filters/next.js": {
            "title": "$:/core/modules/filters/next.js",
            "text": "/*\\\ntitle: $:/core/modules/filters/next.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator returning the tiddler whose title occurs next in the list supplied in the operand tiddler\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.next = function(source,operator,options) {\n\tvar results = [],\n\t\tlist = options.wiki.getTiddlerList(operator.operand);\n\tsource(function(tiddler,title) {\n\t\tvar match = list.indexOf(title);\n\t\t// increment match and then test if result is in range\n\t\tmatch++;\n\t\tif(match > 0 && match < list.length) {\n\t\t\tresults.push(list[match]);\n\t\t}\n\t});\n\treturn results;\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/core/modules/filters/plugintiddlers.js": {
            "title": "$:/core/modules/filters/plugintiddlers.js",
            "text": "/*\\\ntitle: $:/core/modules/filters/plugintiddlers.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for returning the titles of the shadow tiddlers within a plugin\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.plugintiddlers = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tvar pluginInfo = options.wiki.getPluginInfo(title) || options.wiki.getTiddlerDataCached(title,{tiddlers:[]});\n\t\tif(pluginInfo && pluginInfo.tiddlers) {\n\t\t\t$tw.utils.each(pluginInfo.tiddlers,function(fields,title) {\n\t\t\t\tresults.push(title);\n\t\t\t});\n\t\t}\n\t});\n\tresults.sort();\n\treturn results;\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/core/modules/filters/prefix.js": {
            "title": "$:/core/modules/filters/prefix.js",
            "text": "/*\\\ntitle: $:/core/modules/filters/prefix.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for checking if a title starts with a prefix\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.prefix = function(source,operator,options) {\n\tvar results = [];\n\tif(operator.prefix === \"!\") {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(title.substr(0,operator.operand.length) !== operator.operand) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t} else {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(title.substr(0,operator.operand.length) === operator.operand) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t}\n\treturn results;\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/core/modules/filters/previous.js": {
            "title": "$:/core/modules/filters/previous.js",
            "text": "/*\\\ntitle: $:/core/modules/filters/previous.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator returning the tiddler whose title occurs immediately prior in the list supplied in the operand tiddler\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.previous = function(source,operator,options) {\n\tvar results = [],\n\t\tlist = options.wiki.getTiddlerList(operator.operand);\n\tsource(function(tiddler,title) {\n\t\tvar match = list.indexOf(title);\n\t\t// increment match and then test if result is in range\n\t\tmatch--;\n\t\tif(match >= 0) {\n\t\t\tresults.push(list[match]);\n\t\t}\n\t});\n\treturn results;\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/core/modules/filters/range.js": {
            "title": "$:/core/modules/filters/range.js",
            "text": "/*\\\ntitle: $:/core/modules/filters/range.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for generating a numeric range.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.range = function(source,operator,options) {\n\tvar results = [];\n\t// Split the operand into numbers delimited by these symbols\n\tvar parts = operator.operand.split(/[,:;]/g),\n\t\tbeg, end, inc, i, fixed = 0;\n\tfor (i=0; i<parts.length; i++) {\n\t\t// Validate real number\n\t\tif(!/^\\s*[+-]?((\\d+(\\.\\d*)?)|(\\.\\d+))\\s*$/.test(parts[i])) {\n\t\t\treturn [\"range: bad number \\\"\" + parts[i] + \"\\\"\"];\n\t\t}\n\t\t// Count digits; the most precise number determines decimal places in output.\n\t\tvar frac = /\\.\\d+/.exec(parts[i]);\n\t\tif(frac) {\n\t\t\tfixed = Math.max(fixed,frac[0].length-1);\n\t\t}\n\t\tparts[i] = parseFloat(parts[i]);\n\t}\n\tswitch(parts.length) {\n\t\tcase 1:\n\t\t\tend = parts[0];\n\t\t\tif (end >= 1) {\n\t\t\t\tbeg = 1;\n\t\t\t}\n\t\t\telse if (end <= -1) {\n\t\t\t\tbeg = -1;\n\t\t\t}\n\t\t\telse {\n\t\t\t\treturn [];\n\t\t\t}\n\t\t\tinc = 1;\n\t\t\tbreak;\n\t\tcase 2:\n\t\t\tbeg = parts[0];\n\t\t\tend = parts[1];\n\t\t\tinc = 1;\n\t\t\tbreak;\n\t\tcase 3:\n\t\t\tbeg = parts[0];\n\t\t\tend = parts[1];\n\t\t\tinc = Math.abs(parts[2]);\n\t\t\tbreak;\n\t}\n\tif(inc === 0) {\n\t\treturn [\"range: increment 0 causes infinite loop\"];\n\t}\n\t// May need to count backwards\n\tvar direction = ((end < beg) ? -1 : 1);\n\tinc *= direction;\n\t// Estimate number of resulting elements\n\tif((end - beg) / inc > 10000) {\n\t\treturn [\"range: too many steps (over 10K)\"];\n\t}\n\t// Avoid rounding error on last step\n\tend += direction * 0.5 * Math.pow(0.1,fixed);\n\tvar safety = 10010;\n\t// Enumerate the range\n\tif (end<beg) {\n\t\tfor(i=beg; i>end; i+=inc) {\n\t\t\tresults.push(i.toFixed(fixed));\n\t\t\tif(--safety<0) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t} else {\n\t\tfor(i=beg; i<end; i+=inc) {\n\t\t\tresults.push(i.toFixed(fixed));\n\t\t\tif(--safety<0) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\tif(safety<0) {\n\t\treturn [\"range: unexpectedly large output\"];\n\t}\n\t// Reverse?\n\tif(operator.prefix === \"!\") {\n\t\tresults.reverse();\n\t}\n\treturn results;\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/core/modules/filters/reduce.js": {
            "title": "$:/core/modules/filters/reduce.js",
            "text": "/*\\\ntitle: $:/core/modules/filters/reduce.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator evaluates a subfilter for each item, making the running total available in the variable `accumulator`, and the current index available in the variable `index`\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.reduce = function(source,operator,options) {\n\t// Accumulate the list\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tresults.push(title);\n\t});\n\t// Run the filter over each item\n\tvar filterFn = options.wiki.compileFilter(operator.operand),\n\t\taccumulator = operator.operands[1] || \"\";\n\tfor(var index=0; index<results.length; index++) {\n\t\tvar title = results[index],\n\t\t\tlist = filterFn.call(options.wiki,options.wiki.makeTiddlerIterator([title]),{\n\t\t\t\tgetVariable: function(name) {\n\t\t\t\t\tswitch(name) {\n\t\t\t\t\t\tcase \"currentTiddler\":\n\t\t\t\t\t\t\treturn \"\" + title;\n\t\t\t\t\t\tcase \"accumulator\":\n\t\t\t\t\t\t\treturn \"\" + accumulator;\n\t\t\t\t\t\tcase \"index\":\n\t\t\t\t\t\t\treturn \"\" + index;\n\t\t\t\t\t\tcase \"revIndex\":\n\t\t\t\t\t\t\treturn \"\" + (results.length - 1 - index);\n\t\t\t\t\t\tcase \"length\":\n\t\t\t\t\t\t\treturn \"\" + results.length;\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\treturn options.widget.getVariable(name);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\tif(list.length > 0) {\n\t\t\taccumulator = \"\" +  list[0];\n\t\t}\n\t}\n\tif(results.length > 0) {\n\t\treturn [accumulator];\n\t} else {\n\t\treturn [];\n\t}\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/core/modules/filters/regexp.js": {
            "title": "$:/core/modules/filters/regexp.js",
            "text": "/*\\\ntitle: $:/core/modules/filters/regexp.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for regexp matching\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.regexp = function(source,operator,options) {\n\tvar results = [],\n\t\tfieldname = (operator.suffix || \"title\").toLowerCase(),\n\t\tregexpString, regexp, flags = \"\", match,\n\t\tgetFieldString = function(tiddler,title) {\n\t\t\tif(tiddler) {\n\t\t\t\treturn tiddler.getFieldString(fieldname);\n\t\t\t} else if(fieldname === \"title\") {\n\t\t\t\treturn title;\n\t\t\t} else {\n\t\t\t\treturn null;\n\t\t\t}\n\t\t};\n\t// Process flags and construct regexp\n\tregexpString = operator.operand;\n\tmatch = /^\\(\\?([gim]+)\\)/.exec(regexpString);\n\tif(match) {\n\t\tflags = match[1];\n\t\tregexpString = regexpString.substr(match[0].length);\n\t} else {\n\t\tmatch = /\\(\\?([gim]+)\\)$/.exec(regexpString);\n\t\tif(match) {\n\t\t\tflags = match[1];\n\t\t\tregexpString = regexpString.substr(0,regexpString.length - match[0].length);\n\t\t}\n\t}\n\ttry {\n\t\tregexp = new RegExp(regexpString,flags);\n\t} catch(e) {\n\t\treturn [\"\" + e];\n\t}\n\t// Process the incoming tiddlers\n\tif(operator.prefix === \"!\") {\n\t\tsource(function(tiddler,title) {\n\t\t\tvar text = getFieldString(tiddler,title);\n\t\t\tif(text !== null) {\n\t\t\t\tif(!regexp.exec(text)) {\n\t\t\t\t\tresults.push(title);\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t} else {\n\t\tsource(function(tiddler,title) {\n\t\t\tvar text = getFieldString(tiddler,title);\n\t\t\tif(text !== null) {\n\t\t\t\tif(!!regexp.exec(text)) {\n\t\t\t\t\tresults.push(title);\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t}\n\treturn results;\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/core/modules/filters/removeprefix.js": {
            "title": "$:/core/modules/filters/removeprefix.js",
            "text": "/*\\\ntitle: $:/core/modules/filters/removeprefix.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for removing a prefix from each title in the list. Titles that do not start with the prefix are removed.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.removeprefix = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tif(title.substr(0,operator.operand.length) === operator.operand) {\n\t\t\tresults.push(title.substr(operator.operand.length));\n\t\t}\n\t});\n\treturn results;\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/core/modules/filters/removesuffix.js": {
            "title": "$:/core/modules/filters/removesuffix.js",
            "text": "/*\\\ntitle: $:/core/modules/filters/removesuffix.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for removing a suffix from each title in the list. Titles that do not end with the suffix are removed.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.removesuffix = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tif(title && title.substr(-operator.operand.length) === operator.operand) {\n\t\t\tresults.push(title.substr(0,title.length - operator.operand.length));\n\t\t}\n\t});\n\treturn results;\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/core/modules/filters/sameday.js": {
            "title": "$:/core/modules/filters/sameday.js",
            "text": "/*\\\ntitle: $:/core/modules/filters/sameday.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator that selects tiddlers with a modified date field on the same day as the provided value.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.sameday = function(source,operator,options) {\n\tvar results = [],\n\t\tfieldName = operator.suffix || \"modified\",\n\t\ttargetDate = (new Date($tw.utils.parseDate(operator.operand))).setHours(0,0,0,0);\n\t// Function to convert a date/time to a date integer\n\tsource(function(tiddler,title) {\n\t\tif(tiddler) {\n\t\t\tif(tiddler.getFieldDay(fieldName) === targetDate) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t}\n\t});\n\treturn results;\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/core/modules/filters/search.js": {
            "title": "$:/core/modules/filters/search.js",
            "text": "/*\\\ntitle: $:/core/modules/filters/search.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for searching for the text in the operand tiddler\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.search = function(source,operator,options) {\n\tvar invert = operator.prefix === \"!\";\n\tif(operator.suffixes) {\n\t\tvar hasFlag = function(flag) {\n\t\t\t\treturn (operator.suffixes[1] || []).indexOf(flag) !== -1;\n\t\t\t},\n\t\t\texcludeFields = false,\n\t\t\tfieldList = operator.suffixes[0] || [],\n\t\t\tfirstField = fieldList[0] || \"\", \n\t\t\tfirstChar = firstField.charAt(0),\n\t\t\tfields;\n\t\tif(firstChar === \"-\") {\n\t\t\tfields = [firstField.slice(1)].concat(fieldList.slice(1));\n\t\t\texcludeFields = true;\n\t\t} else if(fieldList[0] === \"*\"){\n\t\t\tfields = [];\n\t\t\texcludeFields = true;\n\t\t} else {\n\t\t\tfields = fieldList.slice(0);\n\t\t}\n\t\treturn options.wiki.search(operator.operand,{\n\t\t\tsource: source,\n\t\t\tinvert: invert,\n\t\t\tfield: fields,\n\t\t\texcludeField: excludeFields,\n\t\t\tcaseSensitive: hasFlag(\"casesensitive\"),\n\t\t\tliteral: hasFlag(\"literal\"),\n\t\t\twhitespace: hasFlag(\"whitespace\"),\n\t\t\tanchored: hasFlag(\"anchored\"),\n\t\t\tregexp: hasFlag(\"regexp\"),\n\t\t\twords: hasFlag(\"words\")\n\t\t});\n\t} else {\n\t\treturn options.wiki.search(operator.operand,{\n\t\t\tsource: source,\n\t\t\tinvert: invert\n\t\t});\n\t}\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/core/modules/filters/shadowsource.js": {
            "title": "$:/core/modules/filters/shadowsource.js",
            "text": "/*\\\ntitle: $:/core/modules/filters/shadowsource.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for returning the source plugins for shadow tiddlers\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.shadowsource = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tvar source = options.wiki.getShadowSource(title);\n\t\tif(source) {\n\t\t\t$tw.utils.pushTop(results,source);\n\t\t}\n\t});\n\tresults.sort();\n\treturn results;\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/core/modules/filters/slugify.js": {
            "title": "$:/core/modules/filters/slugify.js",
            "text": "/*\\\ntitle: $:/core/modules/filters/slugify.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for slugifying a tiddler title\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.slugify = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tresults.push(options.wiki.slugify(title));\n\t});\n\treturn results;\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/core/modules/filters/sort.js": {
            "title": "$:/core/modules/filters/sort.js",
            "text": "/*\\\ntitle: $:/core/modules/filters/sort.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for sorting\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.sort = function(source,operator,options) {\n\tvar results = prepare_results(source);\n\toptions.wiki.sortTiddlers(results,operator.operand || \"title\",operator.prefix === \"!\",false,false);\n\treturn results;\n};\n\nexports.nsort = function(source,operator,options) {\n\tvar results = prepare_results(source);\n\toptions.wiki.sortTiddlers(results,operator.operand || \"title\",operator.prefix === \"!\",false,true);\n\treturn results;\n};\n\nexports.sortan = function(source, operator, options) {\n\tvar results = prepare_results(source);\n\toptions.wiki.sortTiddlers(results, operator.operand || \"title\", operator.prefix === \"!\",false,false,true);\n\treturn results;\n};\n\nexports.sortcs = function(source,operator,options) {\n\tvar results = prepare_results(source);\n\toptions.wiki.sortTiddlers(results,operator.operand || \"title\",operator.prefix === \"!\",true,false);\n\treturn results;\n};\n\nexports.nsortcs = function(source,operator,options) {\n\tvar results = prepare_results(source);\n\toptions.wiki.sortTiddlers(results,operator.operand || \"title\",operator.prefix === \"!\",true,true);\n\treturn results;\n};\n\nvar prepare_results = function (source) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tresults.push(title);\n\t});\n\treturn results;\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/core/modules/filters/sortsub.js": {
            "title": "$:/core/modules/filters/sortsub.js",
            "text": "/*\\\ntitle: $:/core/modules/filters/sortsub.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for sorting by a subfilter\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.sortsub = function(source,operator,options) {\n\t// Compile the subfilter\n\tvar filterFn = options.wiki.compileFilter(operator.operand);\n\t// Collect the input titles and the corresponding sort keys\n\tvar inputTitles = [],\n\t\tsortKeys = [];\n\tsource(function(tiddler,title) {\n\t\tinputTitles.push(title);\n\t\tvar r = filterFn.call(options.wiki,function(iterator) {\n\t\t\titerator(options.wiki.getTiddler(title),title);\n\t\t},{\n\t\t\tgetVariable: function(name) {\n\t\t\t\tif(name === \"currentTiddler\") {\n\t\t\t\t\treturn title;\n\t\t\t\t} else {\n\t\t\t\t\treturn options.widget.getVariable(name);\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t\tsortKeys.push(r[0] || \"\");\n\t});\n\t// Rather than sorting the titles array, we'll sort the indexes so that we can consult both arrays\n\tvar indexes = new Array(inputTitles.length);\n\tfor(var t=0; t<inputTitles.length; t++) {\n\t\tindexes[t] = t;\n\t}\n\t// Sort the indexes\n\tvar compareFn = $tw.utils.makeCompareFunction(operator.suffix,{defaultType: \"string\",invert: operator.prefix === \"!\"});\n\tindexes = indexes.sort(function(a,b) {\n\t\treturn compareFn(sortKeys[a],sortKeys[b]);\n\t});\n\t// Make the results array in order\n\tvar results = [];\n\t$tw.utils.each(indexes,function(index) {\n\t\tresults.push(inputTitles[index]);\n\t});\n\treturn results;\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/core/modules/filters/splitbefore.js": {
            "title": "$:/core/modules/filters/splitbefore.js",
            "text": "/*\\\ntitle: $:/core/modules/filters/splitbefore.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator that splits each result on the first occurance of the specified separator and returns the unique values.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.splitbefore = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tvar parts = title.split(operator.operand);\n\t\tif(parts.length === 1) {\n\t\t\t$tw.utils.pushTop(results,parts[0]);\n\t\t} else {\n\t\t\t$tw.utils.pushTop(results,parts[0] + operator.operand);\n\t\t}\n\t});\n\treturn results;\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/core/modules/filters/storyviews.js": {
            "title": "$:/core/modules/filters/storyviews.js",
            "text": "/*\\\ntitle: $:/core/modules/filters/storyviews.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for returning the names of the story views in this wiki\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.storyviews = function(source,operator,options) {\n\tvar results = [],\n\t\tstoryviews = {};\n\t$tw.modules.applyMethods(\"storyview\",storyviews);\n\t$tw.utils.each(storyviews,function(info,name) {\n\t\tresults.push(name);\n\t});\n\tresults.sort();\n\treturn results;\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/core/modules/filters/strings.js": {
            "title": "$:/core/modules/filters/strings.js",
            "text": "/*\\\ntitle: $:/core/modules/filters/strings.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operators for strings. Unary/binary operators work on each item in turn, and return a new item list.\n\nSum/product/maxall/minall operate on the entire list, returning a single item.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.length = makeStringBinaryOperator(\n\tfunction(a) {return [\"\" + (\"\" + a).length];}\n);\n\nexports.uppercase = makeStringBinaryOperator(\n\tfunction(a) {return [(\"\" + a).toUpperCase()];}\n);\n\nexports.lowercase = makeStringBinaryOperator(\n\tfunction(a) {return [(\"\" + a).toLowerCase()];}\n);\n\nexports.sentencecase = makeStringBinaryOperator(\n\tfunction(a) {return [$tw.utils.toSentenceCase(a)];}\n);\n\nexports.titlecase = makeStringBinaryOperator(\n\tfunction(a) {return [$tw.utils.toTitleCase(a)];}\n);\n\nexports.trim = function(source,operator,options) {\n\tvar result = [],\n\t\tsuffix = operator.suffix || \"\",\n\t\toperand = (operator.operand || \"\"),\n\t\tfnCalc;\n\tif(suffix === \"prefix\") {\n\t\tfnCalc = function(a,b) {return [$tw.utils.trimPrefix(a,b)];}\n\t} else if(suffix === \"suffix\") {\n\t\tfnCalc = function(a,b) {return [$tw.utils.trimSuffix(a,b)];}\n\t} else {\n\t\tif(operand === \"\") {\n\t\t\tfnCalc = function(a) {return [$tw.utils.trim(a)];}\n\t\t} else {\n\t\t\tfnCalc = function(a,b) {return [$tw.utils.trimSuffix($tw.utils.trimPrefix(a,b),b)];}\n\t\t}\n\t}\n\tsource(function(tiddler,title) {\n\t\tArray.prototype.push.apply(result,fnCalc(title,operand));\n\t});\n\treturn result;\n};\n\nexports.split = makeStringBinaryOperator(\n\tfunction(a,b) {return (\"\" + a).split(b);}\n);\n\nexports[\"enlist-input\"] = makeStringBinaryOperator(\n\tfunction(a,o,s) {return $tw.utils.parseStringArray(\"\" + a,(s === \"raw\"));}\n);\n\nexports.join = makeStringReducingOperator(\n\tfunction(accumulator,value,operand) {\n\t\tif(accumulator === null) {\n\t\t\treturn value;\n\t\t} else {\n\t\t\treturn accumulator + operand + value;\n\t\t}\n\t},null\n);\n\nfunction makeStringBinaryOperator(fnCalc) {\n\treturn function(source,operator,options) {\n\t\tvar result = [];\n\t\tsource(function(tiddler,title) {\n\t\t\tArray.prototype.push.apply(result,fnCalc(title,operator.operand || \"\",operator.suffix || \"\"));\n\t\t});\n\t\treturn result;\n\t};\n}\n\nfunction makeStringReducingOperator(fnCalc,initialValue) {\n\treturn function(source,operator,options) {\n\t\tvar result = [];\n\t\tsource(function(tiddler,title) {\n\t\t\tresult.push(title);\n\t\t});\n\t\tif(result.length === 0) {\n\t\t\treturn [];\n\t\t}\n\t\treturn [result.reduce(function(accumulator,currentValue) {\n\t\t\treturn fnCalc(accumulator,currentValue,operator.operand || \"\");\n\t\t},initialValue) || \"\"];\n\t};\n}\n\nexports.splitregexp = function(source,operator,options) {\n\tvar result = [],\n\t\tsuffix = operator.suffix || \"\",\n\t\tflags = (suffix.indexOf(\"m\") !== -1 ? \"m\" : \"\") + (suffix.indexOf(\"i\") !== -1 ? \"i\" : \"\"),\n\t\tregExp;\n\ttry {\n\t\tregExp = new RegExp(operator.operand || \"\",flags);\t\t\n\t} catch(ex) {\n\t\treturn [\"RegExp error: \" + ex];\n\t}\n\tsource(function(tiddler,title) {\n\t\tArray.prototype.push.apply(result,title.split(regExp));\n\t});\t\t\n\treturn result;\n};\n\nexports[\"search-replace\"] = function(source,operator,options) {\n\tvar results = [],\n\t\tsuffixes = operator.suffixes || [],\n\t\tflagSuffix = (suffixes[0] ? (suffixes[0][0] || \"\") : \"\"),\n\t\tflags = (flagSuffix.indexOf(\"g\") !== -1 ? \"g\" : \"\") + (flagSuffix.indexOf(\"i\") !== -1 ? \"i\" : \"\"),\n\t\tisRegExp = (suffixes[1] && suffixes[1][0] === \"regexp\") ? true : false,\n\t\tsearchTerm,\n\t\tregExp;\n\t\n\tsource(function(tiddler,title) {\n\t\tif(title && (operator.operands.length > 1)) {\n\t\t\t//Escape regexp characters if the operand is not a regular expression\n\t\t\tsearchTerm = isRegExp ? operator.operand : $tw.utils.escapeRegExp(operator.operand);\n\t\t\ttry {\n\t\t\t\tregExp = new RegExp(searchTerm,flags);\n\t\t\t} catch(ex) {\n\t\t\t\treturn [\"RegExp error: \" + ex];\n\t\t\t}\n\t\t\tresults.push(\n\t\t\t\ttitle.replace(regExp,operator.operands[1])\n\t\t\t);\n\t\t} else {\n\t\t\tresults.push(title);\n\t\t}\n\t});\n\treturn results;\n};\n\nexports.pad = function(source,operator,options) {\n\tvar results = [],\n\t\ttargetLength = operator.operand ? parseInt(operator.operand) : 0,\n\t\tfill = operator.operands[1] || \"0\";\n\n\tsource(function(tiddler,title) {\n\t\tif(title && title.length) {\n\t\t\tif(title.length >= targetLength) {\n\t\t\t\tresults.push(title);\n\t\t\t} else {\n\t\t\t\tvar padString = \"\",\n\t\t\t\t\tpadStringLength = targetLength - title.length;\n\t\t\t\twhile (padStringLength > padString.length) {\n\t\t\t\t\tpadString += fill;\t\t\t\t\t\n\t\t\t\t}\n\t\t\t\t//make sure we do not exceed the specified length\n\t\t\t\tpadString = padString.slice(0,padStringLength);\n\t\t\t\tif(operator.suffix && (operator.suffix === \"suffix\")) {\n\t\t\t\t\ttitle = title + padString;\n\t\t\t\t} else {\n\t\t\t\t\ttitle = padString + title;\n\t\t\t\t}\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t}\n\t});\n\treturn results;\n}\n\n})();\n",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/core/modules/filters/subfilter.js": {
            "title": "$:/core/modules/filters/subfilter.js",
            "text": "/*\\\ntitle: $:/core/modules/filters/subfilter.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator returning its operand evaluated as a filter\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.subfilter = function(source,operator,options) {\n\tvar list = options.wiki.filterTiddlers(operator.operand,options.widget,source);\n\tif(operator.prefix === \"!\") {\n\t\tvar results = [];\n\t\tsource(function(tiddler,title) {\n\t\t\tif(list.indexOf(title) === -1) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t\treturn results;\n\t} else {\n\t\treturn list;\n\t}\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/core/modules/filters/subtiddlerfields.js": {
            "title": "$:/core/modules/filters/subtiddlerfields.js",
            "text": "/*\\\ntitle: $:/core/modules/filters/subtiddlerfields.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for returning the names of the fields on the selected subtiddlers of the plugin named in the operand\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.subtiddlerfields = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tvar subtiddler = options.wiki.getSubTiddler(operator.operand,title);\n\t\tif(subtiddler) {\n\t\t\tfor(var fieldName in subtiddler.fields) {\n\t\t\t\t$tw.utils.pushTop(results,fieldName);\n\t\t\t}\n\t\t}\n\t});\n\treturn results;\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/core/modules/filters/suffix.js": {
            "title": "$:/core/modules/filters/suffix.js",
            "text": "/*\\\ntitle: $:/core/modules/filters/suffix.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for checking if a title ends with a suffix\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.suffix = function(source,operator,options) {\n\tvar results = [];\n\tif(operator.prefix === \"!\") {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(title.substr(-operator.operand.length) !== operator.operand) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t} else {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(title.substr(-operator.operand.length) === operator.operand) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t}\n\treturn results;\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/core/modules/filters/tag.js": {
            "title": "$:/core/modules/filters/tag.js",
            "text": "/*\\\ntitle: $:/core/modules/filters/tag.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for checking for the presence of a tag\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.tag = function(source,operator,options) {\n\tvar results = [],indexedResults;\n\tif((operator.suffix || \"\").toLowerCase() === \"strict\" && !operator.operand) {\n\t\t// New semantics:\n\t\t// Always return copy of input if operator.operand is missing\n\t\tsource(function(tiddler,title) {\n\t\t\tresults.push(title);\n\t\t});\n\t} else {\n\t\t// Old semantics:\n\t\tvar tiddlers;\n\t\tif(operator.prefix === \"!\") {\n\t\t\t// Returns a copy of the input if operator.operand is missing\n\t\t\ttiddlers = options.wiki.getTiddlersWithTag(operator.operand);\n\t\t\tsource(function(tiddler,title) {\n\t\t\t\tif(tiddlers.indexOf(title) === -1) {\n\t\t\t\t\tresults.push(title);\n\t\t\t\t}\n\t\t\t});\n\t\t} else {\n\t\t\t// Returns empty results if operator.operand is missing\n\t\t\tif(source.byTag) {\n\t\t\t\tindexedResults = source.byTag(operator.operand);\n\t\t\t\tif(indexedResults) {\n\t\t\t\t\treturn indexedResults;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\ttiddlers = options.wiki.getTiddlersWithTag(operator.operand);\n\t\t\t\tsource(function(tiddler,title) {\n\t\t\t\t\tif(tiddlers.indexOf(title) !== -1) {\n\t\t\t\t\t\tresults.push(title);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\tresults = options.wiki.sortByList(results,operator.operand);\n\t\t\t}\n\t\t}\t\t\n\t}\n\treturn results;\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/core/modules/filters/tagging.js": {
            "title": "$:/core/modules/filters/tagging.js",
            "text": "/*\\\ntitle: $:/core/modules/filters/tagging.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator returning all tiddlers that are tagged with the selected tiddlers\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.tagging = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\t$tw.utils.pushTop(results,options.wiki.getTiddlersWithTag(title));\n\t});\n\treturn results;\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/core/modules/filters/tags.js": {
            "title": "$:/core/modules/filters/tags.js",
            "text": "/*\\\ntitle: $:/core/modules/filters/tags.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator returning all the tags of the selected tiddlers\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.tags = function(source,operator,options) {\n\tvar tags = {};\n\tsource(function(tiddler,title) {\n\t\tvar t, length;\n\t\tif(tiddler && tiddler.fields.tags) {\n\t\t\tfor(t=0, length=tiddler.fields.tags.length; t<length; t++) {\n\t\t\t\ttags[tiddler.fields.tags[t]] = true;\n\t\t\t}\n\t\t}\n\t});\n\treturn Object.keys(tags);\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/core/modules/filters/then.js": {
            "title": "$:/core/modules/filters/then.js",
            "text": "/*\\\ntitle: $:/core/modules/filters/then.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for replacing any titles with a constant\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.then = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tresults.push(operator.operand);\n\t});\n\treturn results;\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/core/modules/filters/title.js": {
            "title": "$:/core/modules/filters/title.js",
            "text": "/*\\\ntitle: $:/core/modules/filters/title.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for comparing title fields for equality\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.title = function(source,operator,options) {\n\tvar results = [];\n\tif(operator.prefix === \"!\") {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(tiddler && tiddler.fields.title !== operator.operand) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t} else {\n\t\tresults.push(operator.operand);\n\t}\n\treturn results;\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/core/modules/filters/untagged.js": {
            "title": "$:/core/modules/filters/untagged.js",
            "text": "/*\\\ntitle: $:/core/modules/filters/untagged.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator returning all the selected tiddlers that are untagged\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.untagged = function(source,operator,options) {\n\tvar results = [];\n\tif(operator.prefix === \"!\") {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(tiddler && $tw.utils.isArray(tiddler.fields.tags) && tiddler.fields.tags.length > 0) {\n\t\t\t\t$tw.utils.pushTop(results,title);\n\t\t\t}\n\t\t});\n\t} else {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(!tiddler || !tiddler.hasField(\"tags\") || ($tw.utils.isArray(tiddler.fields.tags) && tiddler.fields.tags.length === 0)) {\n\t\t\t\t$tw.utils.pushTop(results,title);\n\t\t\t}\n\t\t});\n\t}\n\treturn results;\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/core/modules/filters/variables.js": {
            "title": "$:/core/modules/filters/variables.js",
            "text": "/*\\\ntitle: $:/core/modules/filters/variables.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for returning the names of the active variables\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.variables = function(source,operator,options) {\n\tvar names = [];\n\tfor(var variable in options.widget.variables) {\n\t\tnames.push(variable);\n\t}\n\treturn names.sort();\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/core/modules/filters/wikiparserrules.js": {
            "title": "$:/core/modules/filters/wikiparserrules.js",
            "text": "/*\\\ntitle: $:/core/modules/filters/wikiparserrules.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for returning the names of the wiki parser rules in this wiki\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.wikiparserrules = function(source,operator,options) {\n\tvar results = [],\n\t\toperand = operator.operand;\n\t$tw.utils.each($tw.modules.types.wikirule,function(mod) {\n\t\tvar exp = mod.exports;\n\t\tif(!operand || exp.types[operand]) {\n\t\t\tresults.push(exp.name);\n\t\t}\n\t});\n\tresults.sort();\n\treturn results;\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/core/modules/filters/x-listops.js": {
            "title": "$:/core/modules/filters/x-listops.js",
            "text": "/*\\\ntitle: $:/core/modules/filters/x-listops.js\ntype: application/javascript\nmodule-type: filteroperator\n\nExtended filter operators to manipulate the current list.\n\n\\*/\n(function () {\n\n\t/*jslint node: true, browser: true */\n\t/*global $tw: false */\n\t\"use strict\";\n\n\t/*\n\tFetch titles from the current list\n\t*/\n\tvar prepare_results = function (source) {\n\tvar results = [];\n\t\tsource(function (tiddler, title) {\n\t\t\tresults.push(title);\n\t\t});\n\t\treturn results;\n\t};\n\n\t/*\n\tMoves a number of items from the tail of the current list before the item named in the operand\n\t*/\n\texports.putbefore = function (source, operator) {\n\t\tvar results = prepare_results(source),\n\t\t\tindex = results.indexOf(operator.operand),\n\t\t\tcount = $tw.utils.getInt(operator.suffix,1);\n\t\treturn (index === -1) ?\n\t\t\tresults.slice(0, -1) :\n\t\t\tresults.slice(0, index).concat(results.slice(-count)).concat(results.slice(index, -count));\n\t};\n\n\t/*\n\tMoves a number of items from the tail of the current list after the item named in the operand\n\t*/\n\texports.putafter = function (source, operator) {\n\t\tvar results = prepare_results(source),\n\t\t\tindex = results.indexOf(operator.operand),\n\t\t\tcount = $tw.utils.getInt(operator.suffix,1);\n\t\treturn (index === -1) ?\n\t\t\tresults.slice(0, -1) :\n\t\t\tresults.slice(0, index + 1).concat(results.slice(-count)).concat(results.slice(index + 1, -count));\n\t};\n\n\t/*\n\tReplaces the item named in the operand with a number of items from the tail of the current list\n\t*/\n\texports.replace = function (source, operator) {\n\t\tvar results = prepare_results(source),\n\t\t\tindex = results.indexOf(operator.operand),\n\t\t\tcount = $tw.utils.getInt(operator.suffix,1);\n\t\treturn (index === -1) ?\n\t\t\tresults.slice(0, -count) :\n\t\t\tresults.slice(0, index).concat(results.slice(-count)).concat(results.slice(index + 1, -count));\n\t};\n\n\t/*\n\tMoves a number of items from the tail of the current list to the head of the list\n\t*/\n\texports.putfirst = function (source, operator) {\n\t\tvar results = prepare_results(source),\n\t\t\tcount = $tw.utils.getInt(operator.suffix,1);\n\t\treturn results.slice(-count).concat(results.slice(0, -count));\n\t};\n\n\t/*\n\tMoves a number of items from the head of the current list to the tail of the list\n\t*/\n\texports.putlast = function (source, operator) {\n\t\tvar results = prepare_results(source),\n\t\t\tcount = $tw.utils.getInt(operator.suffix,1);\n\t\treturn results.slice(count).concat(results.slice(0, count));\n\t};\n\n\t/*\n\tMoves the item named in the operand a number of places forward or backward in the list\n\t*/\n\texports.move = function (source, operator) {\n\t\tvar results = prepare_results(source),\n\t\t\tindex = results.indexOf(operator.operand),\n\t\t\tcount = $tw.utils.getInt(operator.suffix,1),\n\t\t\tmarker = results.splice(index, 1),\n\t\t\toffset =  (index + count) > 0 ? index + count : 0;\n\t\treturn results.slice(0, offset).concat(marker).concat(results.slice(offset));\n\t};\n\n\t/*\n\tReturns the items from the current list that are after the item named in the operand\n\t*/\n\texports.allafter = function (source, operator) {\n\t\tvar results = prepare_results(source),\n\t\t\tindex = results.indexOf(operator.operand);\n\t\treturn (index === -1) ? [] :\n\t\t\t(operator.suffix) ? results.slice(index) :\n\t\t\tresults.slice(index + 1);\n\t};\n\n\t/*\n\tReturns the items from the current list that are before the item named in the operand\n\t*/\n\texports.allbefore = function (source, operator) {\n\t\tvar results = prepare_results(source),\n\t\t\tindex = results.indexOf(operator.operand);\n\t\treturn (index === -1) ? [] :\n\t\t\t(operator.suffix) ? results.slice(0, index + 1) :\n\t\t\tresults.slice(0, index);\n\t};\n\n\t/*\n\tAppends the items listed in the operand array to the tail of the current list\n\t*/\n\texports.append = function (source, operator) {\n\t\tvar append = $tw.utils.parseStringArray(operator.operand, \"true\"),\n\t\t\tresults = prepare_results(source),\n\t\t\tcount = parseInt(operator.suffix) || append.length;\n\t\treturn (append.length === 0) ? results :\n\t\t\t(operator.prefix) ? results.concat(append.slice(-count)) :\n\t\t\tresults.concat(append.slice(0, count));\n\t};\n\n\t/*\n\tPrepends the items listed in the operand array to the head of the current list\n\t*/\n\texports.prepend = function (source, operator) {\n\t\tvar prepend = $tw.utils.parseStringArray(operator.operand, \"true\"),\n\t\t\tresults = prepare_results(source),\n\t\t\tcount = $tw.utils.getInt(operator.suffix,prepend.length);\n\t\treturn (prepend.length === 0) ? results :\n\t\t\t(operator.prefix) ? prepend.slice(-count).concat(results) :\n\t\t\tprepend.slice(0, count).concat(results);\n\t};\n\n\t/*\n\tReturns all items from the current list except the items listed in the operand array\n\t*/\n\texports.remove = function (source, operator) {\n\t\tvar array = $tw.utils.parseStringArray(operator.operand, \"true\"),\n\t\t\tresults = prepare_results(source),\n\t\t\tcount = parseInt(operator.suffix) || array.length,\n\t\t\tp,\n\t\t\tlen,\n\t\t\tindex;\n\t\tlen = array.length - 1;\n\t\tfor (p = 0; p < count; ++p) {\n\t\t\tif (operator.prefix) {\n\t\t\t\tindex = results.indexOf(array[len - p]);\n\t\t\t} else {\n\t\t\t\tindex = results.indexOf(array[p]);\n\t\t\t}\n\t\t\tif (index !== -1) {\n\t\t\t\tresults.splice(index, 1);\n\t\t\t}\n\t\t}\n\t\treturn results;\n\t};\n\n\t/*\n\tReturns all items from the current list sorted in the order of the items in the operand array\n\t*/\n\texports.sortby = function (source, operator) {\n\t\tvar results = prepare_results(source);\n\t\tif (!results || results.length < 2) {\n\t\t\treturn results;\n\t\t}\n\t\tvar lookup = $tw.utils.parseStringArray(operator.operand, \"true\");\n\t\tresults.sort(function (a, b) {\n\t\t\treturn lookup.indexOf(a) - lookup.indexOf(b);\n\t\t});\n\t\treturn results;\n\t};\n\n\t/*\n\tRemoves all duplicate items from the current list\n\t*/\n\texports.unique = function (source, operator) {\n\t\tvar results = prepare_results(source);\n\t\tvar set = results.reduce(function (a, b) {\n\t\t\tif (a.indexOf(b) < 0) {\n\t\t\t\ta.push(b);\n\t\t\t}\n\t\t\treturn a;\n\t\t}, []);\n\t\treturn set;\n\t};\n\n\tvar cycleValueInArray = function(results,operands,stepSize) {\n\t\tvar resultsIndex,\n\t\t\tstep = stepSize || 1,\n\t\t\ti = 0,\n\t\t\topLength = operands.length,\n\t\t\tnextOperandIndex;\t\t\n\t\tfor(i; i < opLength; i++) {\n\t\t\tresultsIndex = results.indexOf(operands[i]);\n\t\t\tif(resultsIndex !== -1) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\tif(resultsIndex !== -1) {\n\t\t\ti = i + step;\n\t\t\tnextOperandIndex = (i < opLength ? i : i - opLength);\n\t\t\tif(operands.length > 1) {\n\t\t\t\tresults.splice(resultsIndex,1,operands[nextOperandIndex]);\n\t\t\t} else {\n\t\t\t\tresults.splice(resultsIndex,1);\n\t\t\t}\n\t\t} else {\n\t\t\tresults.push(operands[0]);\n\t\t}\n\t\treturn results;\t\t\n\t}\n\n\t/*\n\tToggles an item in the current list.\n\t*/\t\n\texports.toggle = function(source,operator) {\n\t\treturn cycleValueInArray(prepare_results(source),operator.operands);\n\t}\n\n\texports.cycle = function(source,operator) {\n\t\tvar results = prepare_results(source),\n\t\t\toperands = (operator.operand.length ? $tw.utils.parseStringArray(operator.operand, \"true\") : [\"\"]),\n\t\t\tstep = $tw.utils.getInt(operator.operands[1]||\"\",1);\n\t\tif(step < 0) {\n\t\t\toperands.reverse();\n\t\t\tstep = Math.abs(step);\n\t\t}\t\n\t\treturn cycleValueInArray(results,operands,step);\n\t}\n\t\n})();\n",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/core/modules/filters.js": {
            "title": "$:/core/modules/filters.js",
            "text": "/*\\\ntitle: $:/core/modules/filters.js\ntype: application/javascript\nmodule-type: wikimethod\n\nAdds tiddler filtering methods to the $tw.Wiki object.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nParses an operation (i.e. a run) within a filter string\n\toperators: Array of array of operator nodes into which results should be inserted\n\tfilterString: filter string\n\tp: start position within the string\nReturns the new start position, after the parsed operation\n*/\nfunction parseFilterOperation(operators,filterString,p) {\n\tvar nextBracketPos, operator;\n\t// Skip the starting square bracket\n\tif(filterString.charAt(p++) !== \"[\") {\n\t\tthrow \"Missing [ in filter expression\";\n\t}\n\t// Process each operator in turn\n\tdo {\n\t\toperator = {};\n\t\t// Check for an operator prefix\n\t\tif(filterString.charAt(p) === \"!\") {\n\t\t\toperator.prefix = filterString.charAt(p++);\n\t\t}\n\t\t// Get the operator name\n\t\tnextBracketPos = filterString.substring(p).search(/[\\[\\{<\\/]/);\n\t\tif(nextBracketPos === -1) {\n\t\t\tthrow \"Missing [ in filter expression\";\n\t\t}\n\t\tnextBracketPos += p;\n\t\tvar bracket = filterString.charAt(nextBracketPos);\n\t\toperator.operator = filterString.substring(p,nextBracketPos);\n\t\t// Any suffix?\n\t\tvar colon = operator.operator.indexOf(':');\n\t\tif(colon > -1) {\n\t\t\t// The raw suffix for older filters\n\t\t\toperator.suffix = operator.operator.substring(colon + 1);\n\t\t\toperator.operator = operator.operator.substring(0,colon) || \"field\";\n\t\t\t// The processed suffix for newer filters\n\t\t\toperator.suffixes = [];\n\t\t\t$tw.utils.each(operator.suffix.split(\":\"),function(subsuffix) {\n\t\t\t\toperator.suffixes.push([]);\n\t\t\t\t$tw.utils.each(subsuffix.split(\",\"),function(entry) {\n\t\t\t\t\tentry = $tw.utils.trim(entry);\n\t\t\t\t\tif(entry) {\n\t\t\t\t\t\toperator.suffixes[operator.suffixes.length - 1].push(entry); \n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t});\n\t\t}\n\t\t// Empty operator means: title\n\t\telse if(operator.operator === \"\") {\n\t\t\toperator.operator = \"title\";\n\t\t}\n\t\toperator.operands = [];\n\t\tfunction parseOperand(bracketType) {\n\t\t\tvar operand = {};\n\t\t\tswitch (bracketType) {\n\t\t\t\tcase \"{\": // Curly brackets\n\t\t\t\t\toperand.indirect = true;\n\t\t\t\t\tnextBracketPos = filterString.indexOf(\"}\",p);\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"[\": // Square brackets\n\t\t\t\t\tnextBracketPos = filterString.indexOf(\"]\",p);\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"<\": // Angle brackets\n\t\t\t\t\toperand.variable = true;\n\t\t\t\t\tnextBracketPos = filterString.indexOf(\">\",p);\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"/\": // regexp brackets\n\t\t\t\t\tvar rex = /^((?:[^\\\\\\/]*|\\\\.)*)\\/(?:\\(([mygi]+)\\))?/g,\n\t\t\t\t\t\trexMatch = rex.exec(filterString.substring(p));\n\t\t\t\t\tif(rexMatch) {\n\t\t\t\t\t\toperator.regexp = new RegExp(rexMatch[1], rexMatch[2]);\n\t// DEPRECATION WARNING\n\tconsole.log(\"WARNING: Filter\",operator.operator,\"has a deprecated regexp operand\",operator.regexp);\n\t\t\t\t\t\tnextBracketPos = p + rex.lastIndex - 1;\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tthrow \"Unterminated regular expression in filter expression\";\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tif(nextBracketPos === -1) {\n\t\t\t\tthrow \"Missing closing bracket in filter expression\";\n\t\t\t}\n\t\t\tif(!operator.regexp) {\n\t\t\t\toperand.text = filterString.substring(p,nextBracketPos);\n\t\t\t\toperator.operands.push(operand);\n\t\t\t}\n\t\t\tp = nextBracketPos + 1;\n\t\t}\n\t\t\n\t\tp = nextBracketPos + 1;\n\t\tparseOperand(bracket);\n\t\t\n\t\t// Check for multiple operands\n\t\twhile(filterString.charAt(p) === \",\") {\n\t\t\tp++;\n\t\t\tif(/^[\\[\\{<\\/]/.test(filterString.substring(p))) {\n\t\t\t\tnextBracketPos = p;\n\t\t\t\tp++;\n\t\t\t\tparseOperand(filterString.charAt(nextBracketPos));\n\t\t\t} else {\n\t\t\t\tthrow \"Missing [ in filter expression\";\n\t\t\t}\n\t\t}\n\t\t\n\t\t// Push this operator\n\t\toperators.push(operator);\n\t} while(filterString.charAt(p) !== \"]\");\n\t// Skip the ending square bracket\n\tif(filterString.charAt(p++) !== \"]\") {\n\t\tthrow \"Missing ] in filter expression\";\n\t}\n\t// Return the parsing position\n\treturn p;\n}\n\n/*\nParse a filter string\n*/\nexports.parseFilter = function(filterString) {\n\tfilterString = filterString || \"\";\n\tvar results = [], // Array of arrays of operator nodes {operator:,operand:}\n\t\tp = 0, // Current position in the filter string\n\t\tmatch;\n\tvar whitespaceRegExp = /(\\s+)/mg,\n\t\toperandRegExp = /((?:\\+|\\-|~|=|\\:(\\w+))?)(?:(\\[)|(?:\"([^\"]*)\")|(?:'([^']*)')|([^\\s\\[\\]]+))/mg;\n\twhile(p < filterString.length) {\n\t\t// Skip any whitespace\n\t\twhitespaceRegExp.lastIndex = p;\n\t\tmatch = whitespaceRegExp.exec(filterString);\n\t\tif(match && match.index === p) {\n\t\t\tp = p + match[0].length;\n\t\t}\n\t\t// Match the start of the operation\n\t\tif(p < filterString.length) {\n\t\t\toperandRegExp.lastIndex = p;\n\t\t\tmatch = operandRegExp.exec(filterString);\n\t\t\tif(!match || match.index !== p) {\n\t\t\t\tthrow $tw.language.getString(\"Error/FilterSyntax\");\n\t\t\t}\n\t\t\tvar operation = {\n\t\t\t\tprefix: \"\",\n\t\t\t\toperators: []\n\t\t\t};\n\t\t\tif(match[1]) {\n\t\t\t\toperation.prefix = match[1];\n\t\t\t\tp = p + operation.prefix.length;\n\t\t\t\tif(match[2]) {\n\t\t\t\t\toperation.namedPrefix = match[2];\n\t\t\t\t}\n\t\t\t}\n\t\t\tif(match[3]) { // Opening square bracket\n\t\t\t\tp = parseFilterOperation(operation.operators,filterString,p);\n\t\t\t} else {\n\t\t\t\tp = match.index + match[0].length;\n\t\t\t}\n\t\t\tif(match[4] || match[5] || match[6]) { // Double quoted string, single quoted string or unquoted title\n\t\t\t\toperation.operators.push(\n\t\t\t\t\t{operator: \"title\", operands: [{text: match[4] || match[5] || match[6]}]}\n\t\t\t\t);\n\t\t\t}\n\t\t\tresults.push(operation);\n\t\t}\n\t}\n\treturn results;\n};\n\nexports.getFilterOperators = function() {\n\tif(!this.filterOperators) {\n\t\t$tw.Wiki.prototype.filterOperators = {};\n\t\t$tw.modules.applyMethods(\"filteroperator\",this.filterOperators);\n\t}\n\treturn this.filterOperators;\n};\n\nexports.getFilterRunPrefixes = function() {\n\tif(!this.filterRunPrefixes) {\n\t\t$tw.Wiki.prototype.filterRunPrefixes = {};\n\t\t$tw.modules.applyMethods(\"filterrunprefix\",this.filterRunPrefixes);\n\t}\n\treturn this.filterRunPrefixes;\n}\n\nexports.filterTiddlers = function(filterString,widget,source) {\n\tvar fn = this.compileFilter(filterString);\n\treturn fn.call(this,source,widget);\n};\n\n/*\nCompile a filter into a function with the signature fn(source,widget) where:\nsource: an iterator function for the source tiddlers, called source(iterator), where iterator is called as iterator(tiddler,title)\nwidget: an optional widget node for retrieving the current tiddler etc.\n*/\nexports.compileFilter = function(filterString) {\n\tvar filterParseTree;\n\ttry {\n\t\tfilterParseTree = this.parseFilter(filterString);\n\t} catch(e) {\n\t\treturn function(source,widget) {\n\t\t\treturn [$tw.language.getString(\"Error/Filter\") + \": \" + e];\n\t\t};\n\t}\n\t// Get the hashmap of filter operator functions\n\tvar filterOperators = this.getFilterOperators();\n\t// Assemble array of functions, one for each operation\n\tvar operationFunctions = [];\n\t// Step through the operations\n\tvar self = this;\n\t$tw.utils.each(filterParseTree,function(operation) {\n\t\t// Create a function for the chain of operators in the operation\n\t\tvar operationSubFunction = function(source,widget) {\n\t\t\tvar accumulator = source,\n\t\t\t\tresults = [],\n\t\t\t\tcurrTiddlerTitle = widget && widget.getVariable(\"currentTiddler\");\n\t\t\t$tw.utils.each(operation.operators,function(operator) {\n\t\t\t\tvar operands = [],\n\t\t\t\t\toperatorFunction;\n\t\t\t\tif(!operator.operator) {\n\t\t\t\t\toperatorFunction = filterOperators.title;\n\t\t\t\t} else if(!filterOperators[operator.operator]) {\n\t\t\t\t\toperatorFunction = filterOperators.field;\n\t\t\t\t} else {\n\t\t\t\t\toperatorFunction = filterOperators[operator.operator];\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\t$tw.utils.each(operator.operands,function(operand) {\n\t\t\t\t\tif(operand.indirect) {\n\t\t\t\t\t\toperand.value = self.getTextReference(operand.text,\"\",currTiddlerTitle);\n\t\t\t\t\t} else if(operand.variable) {\n\t\t\t\t\t\toperand.value = widget.getVariable(operand.text,{defaultValue: \"\"});\n\t\t\t\t\t} else {\n\t\t\t\t\t\toperand.value = operand.text;\n\t\t\t\t\t}\n\t\t\t\t\toperands.push(operand.value);\n\t\t\t\t});\n\n\t\t\t\t// Invoke the appropriate filteroperator module\n\t\t\t\tresults = operatorFunction(accumulator,{\n\t\t\t\t\t\t\toperator: operator.operator,\n\t\t\t\t\t\t\toperand: operands.length > 0 ? operands[0] : undefined,\n\t\t\t\t\t\t\toperands: operands,\n\t\t\t\t\t\t\tprefix: operator.prefix,\n\t\t\t\t\t\t\tsuffix: operator.suffix,\n\t\t\t\t\t\t\tsuffixes: operator.suffixes,\n\t\t\t\t\t\t\tregexp: operator.regexp\n\t\t\t\t\t\t},{\n\t\t\t\t\t\t\twiki: self,\n\t\t\t\t\t\t\twidget: widget\n\t\t\t\t\t\t});\n\t\t\t\tif($tw.utils.isArray(results)) {\n\t\t\t\t\taccumulator = self.makeTiddlerIterator(results);\n\t\t\t\t} else {\n\t\t\t\t\taccumulator = results;\n\t\t\t\t}\n\t\t\t});\n\t\t\tif($tw.utils.isArray(results)) {\n\t\t\t\treturn results;\n\t\t\t} else {\n\t\t\t\tvar resultArray = [];\n\t\t\t\tresults(function(tiddler,title) {\n\t\t\t\t\tresultArray.push(title);\n\t\t\t\t});\n\t\t\t\treturn resultArray;\n\t\t\t}\n\t\t};\n\t\tvar filterRunPrefixes = self.getFilterRunPrefixes();\n\t\t// Wrap the operator functions in a wrapper function that depends on the prefix\n\t\toperationFunctions.push((function() {\n\t\t\tvar options = {wiki: self};\n\t\t\tswitch(operation.prefix || \"\") {\n\t\t\t\tcase \"\": // No prefix means that the operation is unioned into the result\n\t\t\t\t\treturn filterRunPrefixes[\"or\"](operationSubFunction, options);\n\t\t\t\tcase \"=\": // The results of the operation are pushed into the result without deduplication\n\t\t\t\t\treturn filterRunPrefixes[\"all\"](operationSubFunction, options);\n\t\t\t\tcase \"-\": // The results of this operation are removed from the main result\n\t\t\t\t\treturn filterRunPrefixes[\"except\"](operationSubFunction, options);\n\t\t\t\tcase \"+\": // This operation is applied to the main results so far\n\t\t\t\t\treturn filterRunPrefixes[\"and\"](operationSubFunction, options);\n\t\t\t\tcase \"~\": // This operation is unioned into the result only if the main result so far is empty\n\t\t\t\t\treturn filterRunPrefixes[\"else\"](operationSubFunction, options);\n\t\t\t\tdefault: \n\t\t\t\t\tif(operation.namedPrefix && filterRunPrefixes[operation.namedPrefix]) {\n\t\t\t\t\t\treturn filterRunPrefixes[operation.namedPrefix](operationSubFunction, options);\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn function(results,source,widget) {\n\t\t\t\t\t\t\tresults.clear();\n\t\t\t\t\t\t\tresults.push($tw.language.getString(\"Error/FilterRunPrefix\"));\n\t\t\t\t\t\t};\n\t\t\t\t\t}\n\t\t\t}\n\t\t})());\n\t});\n\t// Return a function that applies the operations to a source iterator of tiddler titles\n\treturn $tw.perf.measure(\"filter: \" + filterString,function filterFunction(source,widget) {\n\t\tif(!source) {\n\t\t\tsource = self.each;\n\t\t} else if(typeof source === \"object\") { // Array or hashmap\n\t\t\tsource = self.makeTiddlerIterator(source);\n\t\t}\n\t\tvar results = new $tw.utils.LinkedList();\n\t\t$tw.utils.each(operationFunctions,function(operationFunction) {\n\t\t\toperationFunction(results,source,widget);\n\t\t});\n\t\treturn results.toArray();\n\t});\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "wikimethod"
        },
        "$:/core/modules/indexers/backlinks-indexer.js": {
            "title": "$:/core/modules/indexers/backlinks-indexer.js",
            "text": "/*\\\ntitle: $:/core/modules/indexers/backlinks-indexer.js\ntype: application/javascript\nmodule-type: indexer\n\nIndexes the tiddlers' backlinks\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global modules: false */\n\"use strict\";\n\n\nfunction BacklinksIndexer(wiki) {\n\tthis.wiki = wiki;\n}\n\nBacklinksIndexer.prototype.init = function() {\n\tthis.index = null;\n}\n\nBacklinksIndexer.prototype.rebuild = function() {\n\tthis.index = null;\n}\n\nBacklinksIndexer.prototype._getLinks = function(tiddler) {\n\tvar parser =  this.wiki.parseText(tiddler.fields.type, tiddler.fields.text, {});\n\tif(parser) {\n\t\treturn this.wiki.extractLinks(parser.tree);\n\t}\n\treturn [];\n}\n\nBacklinksIndexer.prototype.update = function(updateDescriptor) {\n\tif(!this.index) {\n\t\treturn;\n\t}\n\tvar newLinks = [],\n\t    oldLinks = [],\n\t    self = this;\n\tif(updateDescriptor.old.exists) {\n\t\toldLinks = this._getLinks(updateDescriptor.old.tiddler);\n\t}\n\tif(updateDescriptor.new.exists) {\n\t\tnewLinks = this._getLinks(updateDescriptor.new.tiddler);\n\t}\n\n\t$tw.utils.each(oldLinks,function(link) {\n\t\tif(self.index[link]) {\n\t\t\tdelete self.index[link][updateDescriptor.old.tiddler.fields.title];\n\t\t}\n\t});\n\t$tw.utils.each(newLinks,function(link) {\n\t\tif(!self.index[link]) {\n\t\t\tself.index[link] = Object.create(null);\n\t\t}\n\t\tself.index[link][updateDescriptor.new.tiddler.fields.title] = true;\n\t});\n}\n\nBacklinksIndexer.prototype.lookup = function(title) {\n\tif(!this.index) {\n\t\tthis.index = Object.create(null);\n\t\tvar self = this;\n\t\tthis.wiki.forEachTiddler(function(title,tiddler) {\n\t\t\tvar links = self._getLinks(tiddler);\n\t\t\t$tw.utils.each(links, function(link) {\n\t\t\t\tif(!self.index[link]) {\n\t\t\t\t\tself.index[link] = Object.create(null);\n\t\t\t\t}\n\t\t\t\tself.index[link][title] = true;\n\t\t\t});\n\t\t});\n\t}\n\tif(this.index[title]) {\n\t\treturn Object.keys(this.index[title]);\n\t} else {\n\t\treturn [];\n\t}\n}\n\nexports.BacklinksIndexer = BacklinksIndexer;\n\n})();\n",
            "type": "application/javascript",
            "module-type": "indexer"
        },
        "$:/core/modules/indexers/field-indexer.js": {
            "title": "$:/core/modules/indexers/field-indexer.js",
            "text": "/*\\\ntitle: $:/core/modules/indexers/field-indexer.js\ntype: application/javascript\nmodule-type: indexer\n\nIndexes the tiddlers with each field value\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global modules: false */\n\"use strict\";\n\nvar DEFAULT_MAXIMUM_INDEXED_VALUE_LENGTH = 128;\n\nfunction FieldIndexer(wiki) {\n\tthis.wiki = wiki;\n}\n\nFieldIndexer.prototype.init = function() {\n\tthis.index = null;\n\tthis.maxIndexedValueLength = DEFAULT_MAXIMUM_INDEXED_VALUE_LENGTH;\n\tthis.addIndexMethods();\n}\n\n// Provided for testing\nFieldIndexer.prototype.setMaxIndexedValueLength = function(length) {\n\tthis.index = null;\n\tthis.maxIndexedValueLength = length;\n};\n\nFieldIndexer.prototype.addIndexMethods = function() {\n\tvar self = this;\n\tthis.wiki.each.byField = function(name,value) {\n\t\tvar titles = self.wiki.allTitles(),\n\t\t\tlookup = self.lookup(name,value);\n\t\treturn lookup && lookup.filter(function(title) {\n\t\t\treturn titles.indexOf(title) !== -1;\n\t\t});\n\t};\n\tthis.wiki.eachShadow.byField = function(name,value) {\n\t\tvar titles = self.wiki.allShadowTitles(),\n\t\t\tlookup = self.lookup(name,value);\n\t\treturn lookup && lookup.filter(function(title) {\n\t\t\treturn titles.indexOf(title) !== -1;\n\t\t});\n\t};\n\tthis.wiki.eachTiddlerPlusShadows.byField = function(name,value) {\n\t\tvar lookup = self.lookup(name,value);\n\t\treturn lookup ? lookup.slice(0) : null;\n\t};\n\tthis.wiki.eachShadowPlusTiddlers.byField = function(name,value) {\n\t\tvar lookup = self.lookup(name,value);\n\t\treturn lookup ? lookup.slice(0) : null;\n\t};\n};\n\n/*\nTear down and then rebuild the index as if all tiddlers have changed\n*/\nFieldIndexer.prototype.rebuild = function() {\n\t// Invalidate the index so that it will be rebuilt when it is next used\n\tthis.index = null;\n};\n\n/*\nBuild the index for a particular field\n*/\nFieldIndexer.prototype.buildIndexForField = function(name) {\n\tvar self = this;\n\t// Hashmap by field name of hashmap by field value of array of tiddler titles\n\tthis.index = this.index || Object.create(null);\n\tthis.index[name] = Object.create(null);\n\tvar baseIndex = this.index[name];\n\t// Update the index for each tiddler\n\tthis.wiki.eachTiddlerPlusShadows(function(tiddler,title) {\n\t\tif(name in tiddler.fields) {\n\t\t\tvar value = tiddler.getFieldString(name);\n\t\t\t// Skip any values above the maximum length\n\t\t\tif(value.length < self.maxIndexedValueLength) {\n\t\t\t\tbaseIndex[value] = baseIndex[value] || [];\n\t\t\t\tbaseIndex[value].push(title);\n\t\t\t}\n\t\t}\n\t});\n};\n\n/*\nUpdate the index in the light of a tiddler value changing; note that the title must be identical. (Renames are handled as a separate delete and create)\nupdateDescriptor: {old: {tiddler: <tiddler>, shadow: <boolean>, exists: <boolean>},new: {tiddler: <tiddler>, shadow: <boolean>, exists: <boolean>}}\n*/\nFieldIndexer.prototype.update = function(updateDescriptor) {\n\tvar self = this;\n\t// Don't do anything if the index hasn't been built yet\n\tif(this.index === null) {\n\t\treturn;\n\t}\n\t// Remove the old tiddler from the index\n\tif(updateDescriptor.old.tiddler) {\n\t\t$tw.utils.each(this.index,function(indexEntry,name) {\n\t\t\tif(name in updateDescriptor.old.tiddler.fields) {\n\t\t\t\tvar value = updateDescriptor.old.tiddler.getFieldString(name),\n\t\t\t\t\ttiddlerList = indexEntry[value];\n\t\t\t\tif(tiddlerList) {\n\t\t\t\t\tvar index = tiddlerList.indexOf(updateDescriptor.old.tiddler.fields.title);\n\t\t\t\t\tif(index !== -1) {\n\t\t\t\t\t\ttiddlerList.splice(index,1);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t}\n\t// Add the new tiddler to the index\n\tif(updateDescriptor[\"new\"].tiddler) {\n\t\t$tw.utils.each(this.index,function(indexEntry,name) {\n\t\t\tif(name in updateDescriptor[\"new\"].tiddler.fields) {\n\t\t\t\tvar value = updateDescriptor[\"new\"].tiddler.getFieldString(name);\n\t\t\t\tif(value.length < self.maxIndexedValueLength) {\n\t\t\t\t\tindexEntry[value] = indexEntry[value] || [];\n\t\t\t\t\tindexEntry[value].push(updateDescriptor[\"new\"].tiddler.fields.title);\n\t\t\t\t}\n\t\t\t}\n\t\t});\t\t\n\t}\n};\n\n// Lookup the given field returning a list of tiddler titles\nFieldIndexer.prototype.lookup = function(name,value) {\n\t// Fail the lookup if the value is too long\n\tif(value.length >= this.maxIndexedValueLength) {\n\t\treturn null;\n\t}\n\t// Update the index if it has yet to be built\n\tif(this.index === null || !this.index[name]) {\n\t\tthis.buildIndexForField(name);\n\t}\n\treturn this.index[name][value] || [];\n};\n\nexports.FieldIndexer = FieldIndexer;\n\n})();\n",
            "type": "application/javascript",
            "module-type": "indexer"
        },
        "$:/core/modules/indexers/tag-indexer.js": {
            "title": "$:/core/modules/indexers/tag-indexer.js",
            "text": "/*\\\ntitle: $:/core/modules/indexers/tag-indexer.js\ntype: application/javascript\nmodule-type: indexer\n\nIndexes the tiddlers with each tag\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global modules: false */\n\"use strict\";\n\nfunction TagIndexer(wiki) {\n\tthis.wiki = wiki;\n}\n\nTagIndexer.prototype.init = function() {\n\tthis.subIndexers = [\n\t\tnew TagSubIndexer(this,\"each\"),\n\t\tnew TagSubIndexer(this,\"eachShadow\"),\n\t\tnew TagSubIndexer(this,\"eachTiddlerPlusShadows\"),\n\t\tnew TagSubIndexer(this,\"eachShadowPlusTiddlers\")\n\t];\n\t$tw.utils.each(this.subIndexers,function(subIndexer) {\n\t\tsubIndexer.addIndexMethod();\n\t});\n};\n\nTagIndexer.prototype.rebuild = function() {\n\t$tw.utils.each(this.subIndexers,function(subIndexer) {\n\t\tsubIndexer.rebuild();\n\t});\n};\n\nTagIndexer.prototype.update = function(updateDescriptor) {\n\t$tw.utils.each(this.subIndexers,function(subIndexer) {\n\t\tsubIndexer.update(updateDescriptor);\n\t});\n};\n\nfunction TagSubIndexer(indexer,iteratorMethod) {\n\tthis.indexer = indexer;\n\tthis.iteratorMethod = iteratorMethod;\n\tthis.index = null; // Hashmap of tag title to {isSorted: bool, titles: [array]} or null if not yet initialised\n}\n\nTagSubIndexer.prototype.addIndexMethod = function() {\n\tvar self = this;\n\tthis.indexer.wiki[this.iteratorMethod].byTag = function(tag) {\n\t\treturn self.lookup(tag).slice(0);\n\t};\n};\n\nTagSubIndexer.prototype.rebuild = function() {\n\tvar self = this;\n\t// Hashmap by tag of array of {isSorted:, titles:[]}\n\tthis.index = Object.create(null);\n\t// Add all the tags\n\tthis.indexer.wiki[this.iteratorMethod](function(tiddler,title) {\n\t\t$tw.utils.each(tiddler.fields.tags,function(tag) {\n\t\t\tif(!self.index[tag]) {\n\t\t\t\tself.index[tag] = {isSorted: false, titles: [title]};\n\t\t\t} else {\n\t\t\t\tself.index[tag].titles.push(title);\n\t\t\t}\n\t\t});\t\t\n\t});\n};\n\nTagSubIndexer.prototype.update = function(updateDescriptor) {\n\tthis.index = null;\n};\n\nTagSubIndexer.prototype.lookup = function(tag) {\n\t// Update the index if it has yet to be built\n\tif(this.index === null) {\n\t\tthis.rebuild();\n\t}\n\tvar indexRecord = this.index[tag];\n\tif(indexRecord) {\n\t\tif(!indexRecord.isSorted) {\n\t\t\tif(this.indexer.wiki.sortByList) {\n\t\t\t\tindexRecord.titles = this.indexer.wiki.sortByList(indexRecord.titles,tag);\n\t\t\t}\t\t\t\n\t\t\tindexRecord.isSorted = true;\n\t\t}\n\t\treturn indexRecord.titles;\n\t} else {\n\t\treturn [];\n\t}\n};\n\n\nexports.TagIndexer = TagIndexer;\n\n})();\n",
            "type": "application/javascript",
            "module-type": "indexer"
        },
        "$:/core/modules/info/platform.js": {
            "title": "$:/core/modules/info/platform.js",
            "text": "/*\\\ntitle: $:/core/modules/info/platform.js\ntype: application/javascript\nmodule-type: info\n\nInitialise basic platform $:/info/ tiddlers\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.getInfoTiddlerFields = function(updateInfoTiddlersCallback) {\n\tvar mapBoolean = function(value) {return value ? \"yes\" : \"no\";},\n\t\tinfoTiddlerFields = [];\n\t// Basics\n\tinfoTiddlerFields.push({title: \"$:/info/browser\", text: mapBoolean(!!$tw.browser)});\n\tinfoTiddlerFields.push({title: \"$:/info/node\", text: mapBoolean(!!$tw.node)});\n\tinfoTiddlerFields.push({title: \"$:/info/startup-timestamp\", text: $tw.utils.stringifyDate(new Date())});\n\tif($tw.browser) {\n\t\t// Document location\n\t\tvar setLocationProperty = function(name,value) {\n\t\t\t\tinfoTiddlerFields.push({title: \"$:/info/url/\" + name, text: value});\t\t\t\n\t\t\t},\n\t\t\tlocation = document.location;\n\t\tsetLocationProperty(\"full\", (location.toString()).split(\"#\")[0]);\n\t\tsetLocationProperty(\"host\", location.host);\n\t\tsetLocationProperty(\"hostname\", location.hostname);\n\t\tsetLocationProperty(\"protocol\", location.protocol);\n\t\tsetLocationProperty(\"port\", location.port);\n\t\tsetLocationProperty(\"pathname\", location.pathname);\n\t\tsetLocationProperty(\"search\", location.search);\n\t\tsetLocationProperty(\"origin\", location.origin);\n\t\t// Screen size\n\t\tinfoTiddlerFields.push({title: \"$:/info/browser/screen/width\", text: window.screen.width.toString()});\n\t\tinfoTiddlerFields.push({title: \"$:/info/browser/screen/height\", text: window.screen.height.toString()});\n \t\t// Dark mode through event listener on MediaQueryList\n \t\tvar mqList = window.matchMedia(\"(prefers-color-scheme: dark)\"),\n \t\t\tgetDarkModeTiddler = function() {return {title: \"$:/info/darkmode\", text: mqList.matches ? \"yes\" : \"no\"};};\n \t\tinfoTiddlerFields.push(getDarkModeTiddler());\n \t\tmqList.addListener(function(event) {\n \t\t\tupdateInfoTiddlersCallback([getDarkModeTiddler()]);\n \t\t});\n\t\t// Language\n\t\tinfoTiddlerFields.push({title: \"$:/info/browser/language\", text: navigator.language || \"\"});\n\t}\n\treturn infoTiddlerFields;\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "info"
        },
        "$:/core/modules/keyboard.js": {
            "title": "$:/core/modules/keyboard.js",
            "text": "/*\\\ntitle: $:/core/modules/keyboard.js\ntype: application/javascript\nmodule-type: global\n\nKeyboard handling utilities\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar namedKeys = {\n\t\"cancel\": 3,\n\t\"help\": 6,\n\t\"backspace\": 8,\n\t\"tab\": 9,\n\t\"clear\": 12,\n\t\"return\": 13,\n\t\"enter\": 13,\n\t\"pause\": 19,\n\t\"escape\": 27,\n\t\"space\": 32,\n\t\"page_up\": 33,\n\t\"page_down\": 34,\n\t\"end\": 35,\n\t\"home\": 36,\n\t\"left\": 37,\n\t\"up\": 38,\n\t\"right\": 39,\n\t\"down\": 40,\n\t\"printscreen\": 44,\n\t\"insert\": 45,\n\t\"delete\": 46,\n\t\"0\": 48,\n\t\"1\": 49,\n\t\"2\": 50,\n\t\"3\": 51,\n\t\"4\": 52,\n\t\"5\": 53,\n\t\"6\": 54,\n\t\"7\": 55,\n\t\"8\": 56,\n\t\"9\": 57,\n\t\"firefoxsemicolon\": 59,\n\t\"firefoxequals\": 61,\n\t\"a\": 65,\n\t\"b\": 66,\n\t\"c\": 67,\n\t\"d\": 68,\n\t\"e\": 69,\n\t\"f\": 70,\n\t\"g\": 71,\n\t\"h\": 72,\n\t\"i\": 73,\n\t\"j\": 74,\n\t\"k\": 75,\n\t\"l\": 76,\n\t\"m\": 77,\n\t\"n\": 78,\n\t\"o\": 79,\n\t\"p\": 80,\n\t\"q\": 81,\n\t\"r\": 82,\n\t\"s\": 83,\n\t\"t\": 84,\n\t\"u\": 85,\n\t\"v\": 86,\n\t\"w\": 87,\n\t\"x\": 88,\n\t\"y\": 89,\n\t\"z\": 90,\n\t\"numpad0\": 96,\n\t\"numpad1\": 97,\n\t\"numpad2\": 98,\n\t\"numpad3\": 99,\n\t\"numpad4\": 100,\n\t\"numpad5\": 101,\n\t\"numpad6\": 102,\n\t\"numpad7\": 103,\n\t\"numpad8\": 104,\n\t\"numpad9\": 105,\n\t\"multiply\": 106,\n\t\"add\": 107,\n\t\"separator\": 108,\n\t\"subtract\": 109,\n\t\"decimal\": 110,\n\t\"divide\": 111,\n\t\"f1\": 112,\n\t\"f2\": 113,\n\t\"f3\": 114,\n\t\"f4\": 115,\n\t\"f5\": 116,\n\t\"f6\": 117,\n\t\"f7\": 118,\n\t\"f8\": 119,\n\t\"f9\": 120,\n\t\"f10\": 121,\n\t\"f11\": 122,\n\t\"f12\": 123,\n\t\"f13\": 124,\n\t\"f14\": 125,\n\t\"f15\": 126,\n\t\"f16\": 127,\n\t\"f17\": 128,\n\t\"f18\": 129,\n\t\"f19\": 130,\n\t\"f20\": 131,\n\t\"f21\": 132,\n\t\"f22\": 133,\n\t\"f23\": 134,\n\t\"f24\": 135,\n\t\"firefoxminus\": 173,\n\t\"semicolon\": 186,\n\t\"equals\": 187,\n\t\"comma\": 188,\n\t\"dash\": 189,\n\t\"period\": 190,\n\t\"slash\": 191,\n\t\"backquote\": 192,\n\t\"openbracket\": 219,\n\t\"backslash\": 220,\n\t\"closebracket\": 221,\n\t\"quote\": 222\n};\n\nfunction KeyboardManager(options) {\n\tvar self = this;\n\toptions = options || \"\";\n\t// Save the named key hashmap\n\tthis.namedKeys = namedKeys;\n\t// Create a reverse mapping of code to keyname\n\tthis.keyNames = [];\n\t$tw.utils.each(namedKeys,function(keyCode,name) {\n\t\tself.keyNames[keyCode] = name.substr(0,1).toUpperCase() + name.substr(1);\n\t});\n\t// Save the platform-specific name of the \"meta\" key\n\tthis.metaKeyName = $tw.platform.isMac ? \"cmd-\" : \"win-\";\n\tthis.shortcutKeysList = [], // Stores the shortcut-key descriptors\n\tthis.shortcutActionList = [], // Stores the corresponding action strings\n\tthis.shortcutParsedList = []; // Stores the parsed key descriptors\n\tthis.lookupNames = [\"shortcuts\"];\n\tthis.lookupNames.push($tw.platform.isMac ? \"shortcuts-mac\" : \"shortcuts-not-mac\")\n\tthis.lookupNames.push($tw.platform.isWindows ? \"shortcuts-windows\" : \"shortcuts-not-windows\");\n\tthis.lookupNames.push($tw.platform.isLinux ? \"shortcuts-linux\" : \"shortcuts-not-linux\");\n\tthis.updateShortcutLists(this.getShortcutTiddlerList());\n\t$tw.wiki.addEventListener(\"change\",function(changes) {\n\t\tself.handleShortcutChanges(changes);\n\t});\n}\n\n/*\nReturn an array of keycodes for the modifier keys ctrl, shift, alt, meta\n*/\nKeyboardManager.prototype.getModifierKeys = function() {\n\treturn [\n\t\t16, // Shift\n\t\t17, // Ctrl\n\t\t18, // Alt\n\t\t20, // CAPS LOCK\n\t\t91, // Meta (left)\n\t\t93, // Meta (right)\n\t\t224 // Meta (Firefox)\n\t]\n};\n\n/*\nParses a key descriptor into the structure:\n{\n\tkeyCode: numeric keycode\n\tshiftKey: boolean\n\taltKey: boolean\n\tctrlKey: boolean\n\tmetaKey: boolean\n}\nKey descriptors have the following format:\n\tctrl+enter\n\tctrl+shift+alt+A\n*/\nKeyboardManager.prototype.parseKeyDescriptor = function(keyDescriptor) {\n\tvar components = keyDescriptor.split(/\\+|\\-/),\n\t\tinfo = {\n\t\t\tkeyCode: 0,\n\t\t\tshiftKey: false,\n\t\t\taltKey: false,\n\t\t\tctrlKey: false,\n\t\t\tmetaKey: false\n\t\t};\n\tfor(var t=0; t<components.length; t++) {\n\t\tvar s = components[t].toLowerCase(),\n\t\t\tc = s.charCodeAt(0);\n\t\t// Look for modifier keys\n\t\tif(s === \"ctrl\") {\n\t\t\tinfo.ctrlKey = true;\n\t\t} else if(s === \"shift\") {\n\t\t\tinfo.shiftKey = true;\n\t\t} else if(s === \"alt\") {\n\t\t\tinfo.altKey = true;\n\t\t} else if(s === \"meta\" || s === \"cmd\" || s === \"win\") {\n\t\t\tinfo.metaKey = true;\n\t\t}\n\t\t// Replace named keys with their code\n\t\tif(this.namedKeys[s]) {\n\t\t\tinfo.keyCode = this.namedKeys[s];\n\t\t}\n\t}\n\tif(info.keyCode) {\n\t\treturn info;\n\t} else {\n\t\treturn null;\n\t}\n};\n\n/*\nParse a list of key descriptors into an array of keyInfo objects. The key descriptors can be passed as an array of strings or a space separated string\n*/\nKeyboardManager.prototype.parseKeyDescriptors = function(keyDescriptors,options) {\n\tvar self = this;\n\toptions = options || {};\n\toptions.stack = options.stack || [];\n\tvar wiki = options.wiki || $tw.wiki;\n\tif(typeof keyDescriptors === \"string\" && keyDescriptors === \"\") {\n\t\treturn [];\n\t}\n\tif(!$tw.utils.isArray(keyDescriptors)) {\n\t\tkeyDescriptors = keyDescriptors.split(\" \");\n\t}\n\tvar result = [];\n\t$tw.utils.each(keyDescriptors,function(keyDescriptor) {\n\t\t// Look for a named shortcut\n\t\tif(keyDescriptor.substr(0,2) === \"((\" && keyDescriptor.substr(-2,2) === \"))\") {\n\t\t\tif(options.stack.indexOf(keyDescriptor) === -1) {\n\t\t\t\toptions.stack.push(keyDescriptor);\n\t\t\t\tvar name = keyDescriptor.substring(2,keyDescriptor.length - 2),\n\t\t\t\t\tlookupName = function(configName) {\n\t\t\t\t\t\tvar keyDescriptors = wiki.getTiddlerText(\"$:/config/\" + configName + \"/\" + name);\n\t\t\t\t\t\tif(keyDescriptors) {\n\t\t\t\t\t\t\tresult.push.apply(result,self.parseKeyDescriptors(keyDescriptors,options));\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t$tw.utils.each(self.lookupNames,function(platformDescriptor) {\n\t\t\t\t\tlookupName(platformDescriptor);\n\t\t\t\t});\n\t\t\t}\n\t\t} else {\n\t\t\tresult.push(self.parseKeyDescriptor(keyDescriptor));\n\t\t}\n\t});\n\treturn result;\n};\n\nKeyboardManager.prototype.getPrintableShortcuts = function(keyInfoArray) {\n\tvar self = this,\n\t\tresult = [];\n\t$tw.utils.each(keyInfoArray,function(keyInfo) {\n\t\tif(keyInfo) {\n\t\t\tresult.push((keyInfo.ctrlKey ? \"ctrl-\" : \"\") + \n\t\t\t\t   (keyInfo.shiftKey ? \"shift-\" : \"\") + \n\t\t\t\t   (keyInfo.altKey ? \"alt-\" : \"\") + \n\t\t\t\t   (keyInfo.metaKey ? self.metaKeyName : \"\") + \n\t\t\t\t   (self.keyNames[keyInfo.keyCode]));\n\t\t}\n\t});\n\treturn result;\n}\n\nKeyboardManager.prototype.checkKeyDescriptor = function(event,keyInfo) {\n\treturn keyInfo &&\n\t\t\tevent.keyCode === keyInfo.keyCode && \n\t\t\tevent.shiftKey === keyInfo.shiftKey && \n\t\t\tevent.altKey === keyInfo.altKey && \n\t\t\tevent.ctrlKey === keyInfo.ctrlKey && \n\t\t\tevent.metaKey === keyInfo.metaKey;\n};\n\nKeyboardManager.prototype.checkKeyDescriptors = function(event,keyInfoArray) {\n\tfor(var t=0; t<keyInfoArray.length; t++) {\n\t\tif(this.checkKeyDescriptor(event,keyInfoArray[t])) {\n\t\t\treturn true;\n\t\t}\n\t}\n\treturn false;\n};\n\nKeyboardManager.prototype.getEventModifierKeyDescriptor = function(event) {\n\treturn event.ctrlKey && !event.shiftKey && !event.altKey && !event.metaKey ? \"ctrl\" : \n\t\tevent.shiftKey && !event.ctrlKey && !event.altKey && !event.metaKey ? \"shift\" : \n\t\tevent.ctrlKey && event.shiftKey && !event.altKey && !event.metaKey ? \"ctrl-shift\" : \n\t\tevent.altKey && !event.shiftKey && !event.ctrlKey && !event.metaKey ? \"alt\" : \n\t\tevent.altKey && event.shiftKey && !event.ctrlKey && !event.metaKey ? \"alt-shift\" : \n\t\tevent.altKey && event.ctrlKey && !event.shiftKey && !event.metaKey ? \"ctrl-alt\" : \n\t\tevent.altKey && event.shiftKey && event.ctrlKey && !event.metaKey ? \"ctrl-alt-shift\" : \n\t\tevent.metaKey && !event.ctrlKey && !event.shiftKey && !event.altKey ? \"meta\" : \n\t\tevent.metaKey && event.ctrlKey && !event.shiftKey && !event.altKey ? \"meta-ctrl\" :\n\t\tevent.metaKey && event.ctrlKey && event.shiftKey && !event.altKey ? \"meta-ctrl-shift\" :\n\t\tevent.metaKey && event.ctrlKey & event.shiftKey && event.altKey ? \"meta-ctrl-alt-shift\" : \"normal\";\n};\n\nKeyboardManager.prototype.getShortcutTiddlerList = function() {\n\treturn $tw.wiki.getTiddlersWithTag(\"$:/tags/KeyboardShortcut\");\n};\n\nKeyboardManager.prototype.updateShortcutLists = function(tiddlerList) {\n\tthis.shortcutTiddlers = tiddlerList;\n\tfor(var i=0; i<tiddlerList.length; i++) {\n\t\tvar title = tiddlerList[i],\n\t\t\ttiddlerFields = $tw.wiki.getTiddler(title).fields;\n\t\tthis.shortcutKeysList[i] = tiddlerFields.key !== undefined ? tiddlerFields.key : undefined;\n\t\tthis.shortcutActionList[i] = tiddlerFields.text;\n\t\tthis.shortcutParsedList[i] = this.shortcutKeysList[i] !== undefined ? this.parseKeyDescriptors(this.shortcutKeysList[i]) : undefined;\n\t}\n};\n\nKeyboardManager.prototype.handleKeydownEvent = function(event) {\n\tvar key, action;\n\tfor(var i=0; i<this.shortcutTiddlers.length; i++) {\n\t\tif(this.shortcutParsedList[i] !== undefined && this.checkKeyDescriptors(event,this.shortcutParsedList[i])) {\n\t\t\tkey = this.shortcutParsedList[i];\n\t\t\taction = this.shortcutActionList[i];\n\t\t}\n\t}\n\tif(key !== undefined) {\n\t\tevent.preventDefault();\n\t\tevent.stopPropagation();\n\t\t$tw.rootWidget.invokeActionString(action,$tw.rootWidget);\n\t\treturn true;\n\t}\n\treturn false;\n};\n\nKeyboardManager.prototype.detectNewShortcuts = function(changedTiddlers) {\n\tvar shortcutConfigTiddlers = [],\n\t\thandled = false;\n\t$tw.utils.each(this.lookupNames,function(platformDescriptor) {\n\t\tvar descriptorString = \"$:/config/\" + platformDescriptor + \"/\";\n\t\tObject.keys(changedTiddlers).forEach(function(configTiddler) {\n\t\t\tvar configString = configTiddler.substr(0, configTiddler.lastIndexOf(\"/\") + 1);\n\t\t\tif(configString === descriptorString) {\n\t\t\t\tshortcutConfigTiddlers.push(configTiddler);\n\t\t\t\thandled = true;\n\t\t\t}\n\t\t});\n\t});\n\tif(handled) {\n\t\treturn $tw.utils.hopArray(changedTiddlers,shortcutConfigTiddlers);\n\t} else {\n\t\treturn false;\n\t}\n};\n\nKeyboardManager.prototype.handleShortcutChanges = function(changedTiddlers) {\n\tvar newList = this.getShortcutTiddlerList();\n\tvar hasChanged = $tw.utils.hopArray(changedTiddlers,this.shortcutTiddlers) ? true :\n\t\t($tw.utils.hopArray(changedTiddlers,newList) ? true :\n\t\t(this.detectNewShortcuts(changedTiddlers))\n\t);\n\t// Re-cache shortcuts if something changed\n\tif(hasChanged) {\n\t\tthis.updateShortcutLists(newList);\n\t}\n};\n\nexports.KeyboardManager = KeyboardManager;\n\n})();\n",
            "type": "application/javascript",
            "module-type": "global"
        },
        "$:/core/modules/language.js": {
            "title": "$:/core/modules/language.js",
            "text": "/*\\\ntitle: $:/core/modules/language.js\ntype: application/javascript\nmodule-type: global\n\nThe $tw.Language() manages translateable strings\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nCreate an instance of the language manager. Options include:\nwiki: wiki from which to retrieve translation tiddlers\n*/\nfunction Language(options) {\n\toptions = options || \"\";\n\tthis.wiki = options.wiki || $tw.wiki;\n}\n\n/*\nReturn a wikified translateable string. The title is automatically prefixed with \"$:/language/\"\nOptions include:\nvariables: optional hashmap of variables to supply to the language wikification\n*/\nLanguage.prototype.getString = function(title,options) {\n\toptions = options || {};\n\ttitle = \"$:/language/\" + title;\n\treturn this.wiki.renderTiddler(\"text/plain\",title,{variables: options.variables});\n};\n\n/*\nReturn a raw, unwikified translateable string. The title is automatically prefixed with \"$:/language/\"\n*/\nLanguage.prototype.getRawString = function(title) {\n\ttitle = \"$:/language/\" + title;\n\treturn this.wiki.getTiddlerText(title);\n};\n\nexports.Language = Language;\n\n})();\n",
            "type": "application/javascript",
            "module-type": "global"
        },
        "$:/core/modules/macros/changecount.js": {
            "title": "$:/core/modules/macros/changecount.js",
            "text": "/*\\\ntitle: $:/core/modules/macros/changecount.js\ntype: application/javascript\nmodule-type: macro\n\nMacro to return the changecount for the current tiddler\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nInformation about this macro\n*/\n\nexports.name = \"changecount\";\n\nexports.params = [];\n\n/*\nRun the macro\n*/\nexports.run = function() {\n\treturn this.wiki.getChangeCount(this.getVariable(\"currentTiddler\")) + \"\";\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "macro"
        },
        "$:/core/modules/macros/contrastcolour.js": {
            "title": "$:/core/modules/macros/contrastcolour.js",
            "text": "/*\\\ntitle: $:/core/modules/macros/contrastcolour.js\ntype: application/javascript\nmodule-type: macro\n\nMacro to choose which of two colours has the highest contrast with a base colour\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nInformation about this macro\n*/\n\nexports.name = \"contrastcolour\";\n\nexports.params = [\n\t{name: \"target\"},\n\t{name: \"fallbackTarget\"},\n\t{name: \"colourA\"},\n\t{name: \"colourB\"}\n];\n\n/*\nRun the macro\n*/\nexports.run = function(target,fallbackTarget,colourA,colourB) {\n\tvar rgbTarget = $tw.utils.parseCSSColor(target) || $tw.utils.parseCSSColor(fallbackTarget);\n\tif(!rgbTarget) {\n\t\treturn colourA;\n\t}\n\tvar rgbColourA = $tw.utils.parseCSSColor(colourA),\n\t\trgbColourB = $tw.utils.parseCSSColor(colourB);\n\tif(rgbColourA && !rgbColourB) {\n\t\treturn rgbColourA;\n\t}\n\tif(rgbColourB && !rgbColourA) {\n\t\treturn rgbColourB;\n\t}\n\tif(!rgbColourA && !rgbColourB) {\n\t\t// If neither colour is readable, return a crude inverse of the target\n\t\treturn [255 - rgbTarget[0],255 - rgbTarget[1],255 - rgbTarget[2],rgbTarget[3]];\n\t}\n\t// Colour brightness formula derived from http://www.w3.org/WAI/ER/WD-AERT/#color-contrast\n\tvar brightnessTarget = rgbTarget[0] * 0.299 + rgbTarget[1] * 0.587 + rgbTarget[2] * 0.114,\n\t\tbrightnessA = rgbColourA[0] * 0.299 + rgbColourA[1] * 0.587 + rgbColourA[2] * 0.114,\n\t\tbrightnessB = rgbColourB[0] * 0.299 + rgbColourB[1] * 0.587 + rgbColourB[2] * 0.114;\n\treturn Math.abs(brightnessTarget - brightnessA) > Math.abs(brightnessTarget - brightnessB) ? colourA : colourB;\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "macro"
        },
        "$:/core/modules/macros/csvtiddlers.js": {
            "title": "$:/core/modules/macros/csvtiddlers.js",
            "text": "/*\\\ntitle: $:/core/modules/macros/csvtiddlers.js\ntype: application/javascript\nmodule-type: macro\n\nMacro to output tiddlers matching a filter to CSV\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nInformation about this macro\n*/\n\nexports.name = \"csvtiddlers\";\n\nexports.params = [\n\t{name: \"filter\"},\n\t{name: \"format\"},\n];\n\n/*\nRun the macro\n*/\nexports.run = function(filter,format) {\n\tvar self = this,\n\t\ttiddlers = this.wiki.filterTiddlers(filter),\n\t\ttiddler,\n\t\tfields = [],\n\t\tt,f;\n\t// Collect all the fields\n\tfor(t=0;t<tiddlers.length; t++) {\n\t\ttiddler = this.wiki.getTiddler(tiddlers[t]);\n\t\tfor(f in tiddler.fields) {\n\t\t\tif(fields.indexOf(f) === -1) {\n\t\t\t\tfields.push(f);\n\t\t\t}\n\t\t}\n\t}\n\t// Sort the fields and bring the standard ones to the front\n\tfields.sort();\n\t\"title text modified modifier created creator\".split(\" \").reverse().forEach(function(value,index) {\n\t\tvar p = fields.indexOf(value);\n\t\tif(p !== -1) {\n\t\t\tfields.splice(p,1);\n\t\t\tfields.unshift(value)\n\t\t}\n\t});\n\t// Output the column headings\n\tvar output = [], row = [];\n\tfields.forEach(function(value) {\n\t\trow.push(quoteAndEscape(value))\n\t});\n\toutput.push(row.join(\",\"));\n\t// Output each tiddler\n\tfor(var t=0;t<tiddlers.length; t++) {\n\t\trow = [];\n\t\ttiddler = this.wiki.getTiddler(tiddlers[t]);\n\t\t\tfor(f=0; f<fields.length; f++) {\n\t\t\t\trow.push(quoteAndEscape(tiddler ? tiddler.getFieldString(fields[f]) || \"\" : \"\"));\n\t\t\t}\n\t\toutput.push(row.join(\",\"));\n\t}\n\treturn output.join(\"\\n\");\n};\n\nfunction quoteAndEscape(value) {\n\treturn \"\\\"\" + value.replace(/\"/mg,\"\\\"\\\"\") + \"\\\"\";\n}\n\n})();\n",
            "type": "application/javascript",
            "module-type": "macro"
        },
        "$:/core/modules/macros/displayshortcuts.js": {
            "title": "$:/core/modules/macros/displayshortcuts.js",
            "text": "/*\\\ntitle: $:/core/modules/macros/displayshortcuts.js\ntype: application/javascript\nmodule-type: macro\n\nMacro to display a list of keyboard shortcuts in human readable form. Notably, it resolves named shortcuts like `((bold))` to the underlying keystrokes.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nInformation about this macro\n*/\n\nexports.name = \"displayshortcuts\";\n\nexports.params = [\n\t{name: \"shortcuts\"},\n\t{name: \"prefix\"},\n\t{name: \"separator\"},\n\t{name: \"suffix\"}\n];\n\n/*\nRun the macro\n*/\nexports.run = function(shortcuts,prefix,separator,suffix) {\n\tvar shortcutArray = $tw.keyboardManager.getPrintableShortcuts($tw.keyboardManager.parseKeyDescriptors(shortcuts,{\n\t\twiki: this.wiki\n\t}));\n\tif(shortcutArray.length > 0) {\n\t\tshortcutArray.sort(function(a,b) {\n\t\t    return a.toLowerCase().localeCompare(b.toLowerCase());\n\t\t})\n\t\treturn prefix + shortcutArray.join(separator) + suffix;\n\t} else {\n\t\treturn \"\";\n\t}\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "macro"
        },
        "$:/core/modules/macros/jsontiddler.js": {
            "title": "$:/core/modules/macros/jsontiddler.js",
            "text": "/*\\\ntitle: $:/core/modules/macros/jsontiddler.js\ntype: application/javascript\nmodule-type: macro\n\nMacro to output a single tiddler to JSON\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nInformation about this macro\n*/\n\nexports.name = \"jsontiddler\";\n\nexports.params = [\n\t{name: \"title\"}\n];\n\n/*\nRun the macro\n*/\nexports.run = function(title) {\n\ttitle = title || this.getVariable(\"currentTiddler\");\n\tvar tiddler = !!title && this.wiki.getTiddler(title),\n\t\tfields = new Object();\n\tif(tiddler) {\n\t\tfor(var field in tiddler.fields) {\n\t\t\tfields[field] = tiddler.getFieldString(field);\n\t\t}\n\t}\n\treturn JSON.stringify(fields,null,$tw.config.preferences.jsonSpaces);\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "macro"
        },
        "$:/core/modules/macros/jsontiddlers.js": {
            "title": "$:/core/modules/macros/jsontiddlers.js",
            "text": "/*\\\ntitle: $:/core/modules/macros/jsontiddlers.js\ntype: application/javascript\nmodule-type: macro\n\nMacro to output tiddlers matching a filter to JSON\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nInformation about this macro\n*/\n\nexports.name = \"jsontiddlers\";\n\nexports.params = [\n\t{name: \"filter\"},\n\t{name: \"spaces\"}\n];\n\n/*\nRun the macro\n*/\nexports.run = function(filter,spaces) {\n\treturn this.wiki.getTiddlersAsJson(filter,$tw.utils.parseInt(spaces));\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "macro"
        },
        "$:/core/modules/macros/makedatauri.js": {
            "title": "$:/core/modules/macros/makedatauri.js",
            "text": "/*\\\ntitle: $:/core/modules/macros/makedatauri.js\ntype: application/javascript\nmodule-type: macro\n\nMacro to convert a string of text to a data URI\n\n<<makedatauri text:\"Text to be converted\" type:\"text/vnd.tiddlywiki\">>\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nInformation about this macro\n*/\n\nexports.name = \"makedatauri\";\n\nexports.params = [\n\t{name: \"text\"},\n\t{name: \"type\"},\n\t{name: \"_canonical_uri\"}\n];\n\n/*\nRun the macro\n*/\nexports.run = function(text,type,_canonical_uri) {\n\treturn $tw.utils.makeDataUri(text,type,_canonical_uri);\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "macro"
        },
        "$:/core/modules/macros/now.js": {
            "title": "$:/core/modules/macros/now.js",
            "text": "/*\\\ntitle: $:/core/modules/macros/now.js\ntype: application/javascript\nmodule-type: macro\n\nMacro to return a formatted version of the current time\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nInformation about this macro\n*/\n\nexports.name = \"now\";\n\nexports.params = [\n\t{name: \"format\"}\n];\n\n/*\nRun the macro\n*/\nexports.run = function(format) {\n\treturn $tw.utils.formatDateString(new Date(),format || \"0hh:0mm, DDth MMM YYYY\");\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "macro"
        },
        "$:/core/modules/macros/qualify.js": {
            "title": "$:/core/modules/macros/qualify.js",
            "text": "/*\\\ntitle: $:/core/modules/macros/qualify.js\ntype: application/javascript\nmodule-type: macro\n\nMacro to qualify a state tiddler title according\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nInformation about this macro\n*/\n\nexports.name = \"qualify\";\n\nexports.params = [\n\t{name: \"title\"}\n];\n\n/*\nRun the macro\n*/\nexports.run = function(title) {\n\treturn title + \"-\" + this.getStateQualifier();\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "macro"
        },
        "$:/core/modules/macros/resolvepath.js": {
            "title": "$:/core/modules/macros/resolvepath.js",
            "text": "/*\\\ntitle: $:/core/modules/macros/resolvepath.js\ntype: application/javascript\nmodule-type: macro\n\nResolves a relative path for an absolute rootpath.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"resolvepath\";\n\nexports.params = [\n\t{name: \"source\"},\n\t{name: \"root\"}\n];\n\n/*\nRun the macro\n*/\nexports.run = function(source, root) {\n\treturn $tw.utils.resolvePath(source, root);\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "macro"
        },
        "$:/core/modules/macros/unusedtitle.js": {
            "title": "$:/core/modules/macros/unusedtitle.js",
            "text": "/*\\\ntitle: $:/core/modules/macros/unusedtitle.js\ntype: application/javascript\nmodule-type: macro\nMacro to return a new title that is unused in the wiki. It can be given a name as a base.\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nInformation about this macro\n*/\n\nexports.name = \"unusedtitle\";\n\nexports.params = [\n\t{name: \"baseName\"},\n\t{name: \"options\"}\n];\n\n/*\nRun the macro\n*/\nexports.run = function(baseName, options) {\n\tif(!baseName) {\n\t\tbaseName = $tw.language.getString(\"DefaultNewTiddlerTitle\");\n\t}\n\treturn this.wiki.generateNewTitle(baseName, options);\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "macro"
        },
        "$:/core/modules/macros/version.js": {
            "title": "$:/core/modules/macros/version.js",
            "text": "/*\\\ntitle: $:/core/modules/macros/version.js\ntype: application/javascript\nmodule-type: macro\n\nMacro to return the TiddlyWiki core version number\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nInformation about this macro\n*/\n\nexports.name = \"version\";\n\nexports.params = [];\n\n/*\nRun the macro\n*/\nexports.run = function() {\n\treturn $tw.version;\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "macro"
        },
        "$:/core/modules/parsers/audioparser.js": {
            "title": "$:/core/modules/parsers/audioparser.js",
            "text": "/*\\\ntitle: $:/core/modules/parsers/audioparser.js\ntype: application/javascript\nmodule-type: parser\n\nThe audio parser parses an audio tiddler into an embeddable HTML element\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar AudioParser = function(type,text,options) {\n\tvar element = {\n\t\t\ttype: \"element\",\n\t\t\ttag: \"audio\",\n\t\t\tattributes: {\n\t\t\t\tcontrols: {type: \"string\", value: \"controls\"},\n\t\t\t\tstyle: {type: \"string\", value: \"width: 100%; object-fit: contain\"}\n\t\t\t}\n\t\t},\n\t\tsrc;\n\tif(options._canonical_uri) {\n\t\telement.attributes.src = {type: \"string\", value: options._canonical_uri};\n\t} else if(text) {\n\t\telement.attributes.src = {type: \"string\", value: \"data:\" + type + \";base64,\" + text};\n\t}\n\tthis.tree = [element];\n};\n\nexports[\"audio/ogg\"] = AudioParser;\nexports[\"audio/mpeg\"] = AudioParser;\nexports[\"audio/mp3\"] = AudioParser;\nexports[\"audio/mp4\"] = AudioParser;\n\n})();\n\n",
            "type": "application/javascript",
            "module-type": "parser"
        },
        "$:/core/modules/parsers/binaryparser.js": {
            "title": "$:/core/modules/parsers/binaryparser.js",
            "text": "/*\\\ntitle: $:/core/modules/parsers/binaryparser.js\ntype: application/javascript\nmodule-type: parser\n\nThe binary parser parses a binary tiddler into a warning message and download link\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar BINARY_WARNING_MESSAGE = \"$:/core/ui/BinaryWarning\";\nvar EXPORT_BUTTON_IMAGE = \"$:/core/images/export-button\";\n\nvar BinaryParser = function(type,text,options) {\n\t// Transclude the binary data tiddler warning message\n\tvar warn = {\n\t\ttype: \"element\",\n\t\ttag: \"p\",\n\t\tchildren: [{\n\t\t\ttype: \"transclude\",\n\t\t\tattributes: {\n\t\t\t\ttiddler: {type: \"string\", value: BINARY_WARNING_MESSAGE}\n\t\t\t}\n\t\t}]\n\t};\n\t// Create download link based on binary tiddler title\n\tvar link = {\n\t\ttype: \"element\",\n\t\ttag: \"a\",\n\t\tattributes: {\n\t\t\ttitle: {type: \"indirect\", textReference: \"!!title\"},\n\t\t\tdownload: {type: \"indirect\", textReference: \"!!title\"}\n\t\t},\n\t\tchildren: [{\n\t\t\ttype: \"transclude\",\n\t\t\tattributes: {\n\t\t\t\ttiddler: {type: \"string\", value: EXPORT_BUTTON_IMAGE}\n\t\t\t}\n\t\t}]\n\t};\n\t// Set the link href to external or internal data URI\n\tif(options._canonical_uri) {\n\t\tlink.attributes.href = {\n\t\t\ttype: \"string\", \n\t\t\tvalue: options._canonical_uri\n\t\t};\n\t} else if(text) {\n\t\tlink.attributes.href = {\n\t\t\ttype: \"string\", \n\t\t\tvalue: \"data:\" + type + \";base64,\" + text\n\t\t};\n\t}\n\t// Combine warning message and download link in a div\n\tvar element = {\n\t\ttype: \"element\",\n\t\ttag: \"div\",\n\t\tattributes: {\n\t\t\tclass: {type: \"string\", value: \"tc-binary-warning\"}\n\t\t},\n\t\tchildren: [warn, link]\n\t}\n\tthis.tree = [element];\n};\n\nexports[\"application/octet-stream\"] = BinaryParser;\n\n})();\n\n",
            "type": "application/javascript",
            "module-type": "parser"
        },
        "$:/core/modules/parsers/csvparser.js": {
            "title": "$:/core/modules/parsers/csvparser.js",
            "text": "/*\\\ntitle: $:/core/modules/parsers/csvparser.js\ntype: application/javascript\nmodule-type: parser\n\nThe CSV text parser processes CSV files into a table wrapped in a scrollable widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar CsvParser = function(type,text,options) {\n\t// Table framework\n\tthis.tree = [{\n\t\t\"type\": \"scrollable\", \"children\": [{\n\t\t\t\"type\": \"element\", \"tag\": \"table\", \"children\": [{\n\t\t\t\t\"type\": \"element\", \"tag\": \"tbody\", \"children\": []\n\t\t\t}], \"attributes\": {\n\t\t\t\t\"class\": {\"type\": \"string\", \"value\": \"tc-csv-table\"}\n\t\t\t}\n\t\t}]\n\t}];\n\t// Split the text into lines\n\tvar lines = text.split(/\\r?\\n/mg),\n\t\ttag = \"th\";\n\tfor(var line=0; line<lines.length; line++) {\n\t\tvar lineText = lines[line];\n\t\tif(lineText) {\n\t\t\tvar row = {\n\t\t\t\t\t\"type\": \"element\", \"tag\": \"tr\", \"children\": []\n\t\t\t\t};\n\t\t\tvar columns = lineText.split(\",\");\n\t\t\tfor(var column=0; column<columns.length; column++) {\n\t\t\t\trow.children.push({\n\t\t\t\t\t\t\"type\": \"element\", \"tag\": tag, \"children\": [{\n\t\t\t\t\t\t\t\"type\": \"text\",\n\t\t\t\t\t\t\t\"text\": columns[column]\n\t\t\t\t\t\t}]\n\t\t\t\t\t});\n\t\t\t}\n\t\t\ttag = \"td\";\n\t\t\tthis.tree[0].children[0].children[0].children.push(row);\n\t\t}\n\t}\n};\n\nexports[\"text/csv\"] = CsvParser;\n\n})();\n\n",
            "type": "application/javascript",
            "module-type": "parser"
        },
        "$:/core/modules/parsers/htmlparser.js": {
            "title": "$:/core/modules/parsers/htmlparser.js",
            "text": "/*\\\ntitle: $:/core/modules/parsers/htmlparser.js\ntype: application/javascript\nmodule-type: parser\n\nThe HTML parser displays text as raw HTML\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar HtmlParser = function(type,text,options) {\n\tvar src;\n\tif(options._canonical_uri) {\n\t\tsrc = options._canonical_uri;\n\t} else if(text) {\n\t\tsrc = \"data:text/html;charset=utf-8,\" + encodeURIComponent(text);\n\t}\n\tthis.tree = [{\n\t\ttype: \"element\",\n\t\ttag: \"iframe\",\n\t\tattributes: {\n\t\t\tsrc: {type: \"string\", value: src},\n\t\t\tsandbox: {type: \"string\", value: \"\"}\n\t\t}\n\t}];\n};\n\nexports[\"text/html\"] = HtmlParser;\n\n})();\n\n",
            "type": "application/javascript",
            "module-type": "parser"
        },
        "$:/core/modules/parsers/imageparser.js": {
            "title": "$:/core/modules/parsers/imageparser.js",
            "text": "/*\\\ntitle: $:/core/modules/parsers/imageparser.js\ntype: application/javascript\nmodule-type: parser\n\nThe image parser parses an image into an embeddable HTML element\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar ImageParser = function(type,text,options) {\n\tvar element = {\n\t\t\ttype: \"element\",\n\t\t\ttag: \"img\",\n\t\t\tattributes: {}\n\t\t};\n\tif(options._canonical_uri) {\n\t\telement.attributes.src = {type: \"string\", value: options._canonical_uri};\n\t} else if(text) {\n\t\tif(type === \"image/svg+xml\" || type === \".svg\") {\n\t\t\telement.attributes.src = {type: \"string\", value: \"data:image/svg+xml,\" + encodeURIComponent(text)};\n\t\t} else {\n\t\t\telement.attributes.src = {type: \"string\", value: \"data:\" + type + \";base64,\" + text};\n\t\t}\n\t}\n\tthis.tree = [element];\n};\n\nexports[\"image/svg+xml\"] = ImageParser;\nexports[\"image/jpg\"] = ImageParser;\nexports[\"image/jpeg\"] = ImageParser;\nexports[\"image/png\"] = ImageParser;\nexports[\"image/gif\"] = ImageParser;\nexports[\"image/webp\"] = ImageParser;\nexports[\"image/heic\"] = ImageParser;\nexports[\"image/heif\"] = ImageParser;\nexports[\"image/x-icon\"] = ImageParser;\n\n})();\n\n",
            "type": "application/javascript",
            "module-type": "parser"
        },
        "$:/core/modules/utils/parseutils.js": {
            "title": "$:/core/modules/utils/parseutils.js",
            "text": "/*\\\ntitle: $:/core/modules/utils/parseutils.js\ntype: application/javascript\nmodule-type: utils\n\nUtility functions concerned with parsing text into tokens.\n\nMost functions have the following pattern:\n\n* The parameters are:\n** `source`: the source string being parsed\n** `pos`: the current parse position within the string\n** Any further parameters are used to identify the token that is being parsed\n* The return value is:\n** null if the token was not found at the specified position\n** an object representing the token with the following standard fields:\n*** `type`: string indicating the type of the token\n*** `start`: start position of the token in the source string\n*** `end`: end position of the token in the source string\n*** Any further fields required to describe the token\n\nThe exception is `skipWhiteSpace`, which just returns the position after the whitespace.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nLook for a whitespace token. Returns null if not found, otherwise returns {type: \"whitespace\", start:, end:,}\n*/\nexports.parseWhiteSpace = function(source,pos) {\n\tvar p = pos,c;\n\twhile(true) {\n\t\tc = source.charAt(p);\n\t\tif((c === \" \") || (c === \"\\f\") || (c === \"\\n\") || (c === \"\\r\") || (c === \"\\t\") || (c === \"\\v\") || (c === \"\\u00a0\")) { // Ignores some obscure unicode spaces\n\t\t\tp++;\n\t\t} else {\n\t\t\tbreak;\n\t\t}\n\t}\n\tif(p === pos) {\n\t\treturn null;\n\t} else {\n\t\treturn {\n\t\t\ttype: \"whitespace\",\n\t\t\tstart: pos,\n\t\t\tend: p\n\t\t}\n\t}\n};\n\n/*\nConvenience wrapper for parseWhiteSpace. Returns the position after the whitespace\n*/\nexports.skipWhiteSpace = function(source,pos) {\n\tvar c;\n\twhile(true) {\n\t\tc = source.charAt(pos);\n\t\tif((c === \" \") || (c === \"\\f\") || (c === \"\\n\") || (c === \"\\r\") || (c === \"\\t\") || (c === \"\\v\") || (c === \"\\u00a0\")) { // Ignores some obscure unicode spaces\n\t\t\tpos++;\n\t\t} else {\n\t\t\treturn pos;\n\t\t}\n\t}\n};\n\n/*\nLook for a given string token. Returns null if not found, otherwise returns {type: \"token\", value:, start:, end:,}\n*/\nexports.parseTokenString = function(source,pos,token) {\n\tvar match = source.indexOf(token,pos) === pos;\n\tif(match) {\n\t\treturn {\n\t\t\ttype: \"token\",\n\t\t\tvalue: token,\n\t\t\tstart: pos,\n\t\t\tend: pos + token.length\n\t\t};\n\t}\n\treturn null;\n};\n\n/*\nLook for a token matching a regex. Returns null if not found, otherwise returns {type: \"regexp\", match:, start:, end:,}\n*/\nexports.parseTokenRegExp = function(source,pos,reToken) {\n\tvar node = {\n\t\ttype: \"regexp\",\n\t\tstart: pos\n\t};\n\treToken.lastIndex = pos;\n\tnode.match = reToken.exec(source);\n\tif(node.match && node.match.index === pos) {\n\t\tnode.end = pos + node.match[0].length;\n\t\treturn node;\n\t} else {\n\t\treturn null;\n\t}\n};\n\n/*\nLook for a string literal. Returns null if not found, otherwise returns {type: \"string\", value:, start:, end:,}\n*/\nexports.parseStringLiteral = function(source,pos) {\n\tvar node = {\n\t\ttype: \"string\",\n\t\tstart: pos\n\t};\n\tvar reString = /(?:\"\"\"([\\s\\S]*?)\"\"\"|\"([^\"]*)\")|(?:'([^']*)')/g;\n\treString.lastIndex = pos;\n\tvar match = reString.exec(source);\n\tif(match && match.index === pos) {\n\t\tnode.value = match[1] !== undefined ? match[1] :(\n\t\t\tmatch[2] !== undefined ? match[2] : match[3] \n\t\t\t\t\t);\n\t\tnode.end = pos + match[0].length;\n\t\treturn node;\n\t} else {\n\t\treturn null;\n\t}\n};\n\n/*\nLook for a macro invocation parameter. Returns null if not found, or {type: \"macro-parameter\", name:, value:, start:, end:}\n*/\nexports.parseMacroParameter = function(source,pos) {\n\tvar node = {\n\t\ttype: \"macro-parameter\",\n\t\tstart: pos\n\t};\n\t// Define our regexp\n\tvar reMacroParameter = /(?:([A-Za-z0-9\\-_]+)\\s*:)?(?:\\s*(?:\"\"\"([\\s\\S]*?)\"\"\"|\"([^\"]*)\"|'([^']*)'|\\[\\[([^\\]]*)\\]\\]|([^\\s>\"'=]+)))/g;\n\t// Skip whitespace\n\tpos = $tw.utils.skipWhiteSpace(source,pos);\n\t// Look for the parameter\n\tvar token = $tw.utils.parseTokenRegExp(source,pos,reMacroParameter);\n\tif(!token) {\n\t\treturn null;\n\t}\n\tpos = token.end;\n\t// Get the parameter details\n\tnode.value = token.match[2] !== undefined ? token.match[2] : (\n\t\t\t\t\ttoken.match[3] !== undefined ? token.match[3] : (\n\t\t\t\t\t\ttoken.match[4] !== undefined ? token.match[4] : (\n\t\t\t\t\t\t\ttoken.match[5] !== undefined ? token.match[5] : (\n\t\t\t\t\t\t\t\ttoken.match[6] !== undefined ? token.match[6] : (\n\t\t\t\t\t\t\t\t\t\"\"\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t)\n\t\t\t\t\t)\n\t\t\t\t);\n\tif(token.match[1]) {\n\t\tnode.name = token.match[1];\n\t}\n\t// Update the end position\n\tnode.end = pos;\n\treturn node;\n};\n\n/*\nLook for a macro invocation. Returns null if not found, or {type: \"macrocall\", name:, parameters:, start:, end:}\n*/\nexports.parseMacroInvocation = function(source,pos) {\n\tvar node = {\n\t\ttype: \"macrocall\",\n\t\tstart: pos,\n\t\tparams: []\n\t};\n\t// Define our regexps\n\tvar reMacroName = /([^\\s>\"'=]+)/g;\n\t// Skip whitespace\n\tpos = $tw.utils.skipWhiteSpace(source,pos);\n\t// Look for a double less than sign\n\tvar token = $tw.utils.parseTokenString(source,pos,\"<<\");\n\tif(!token) {\n\t\treturn null;\n\t}\n\tpos = token.end;\n\t// Get the macro name\n\tvar name = $tw.utils.parseTokenRegExp(source,pos,reMacroName);\n\tif(!name) {\n\t\treturn null;\n\t}\n\tnode.name = name.match[1];\n\tpos = name.end;\n\t// Process parameters\n\tvar parameter = $tw.utils.parseMacroParameter(source,pos);\n\twhile(parameter) {\n\t\tnode.params.push(parameter);\n\t\tpos = parameter.end;\n\t\t// Get the next parameter\n\t\tparameter = $tw.utils.parseMacroParameter(source,pos);\n\t}\n\t// Skip whitespace\n\tpos = $tw.utils.skipWhiteSpace(source,pos);\n\t// Look for a double greater than sign\n\ttoken = $tw.utils.parseTokenString(source,pos,\">>\");\n\tif(!token) {\n\t\treturn null;\n\t}\n\tpos = token.end;\n\t// Update the end position\n\tnode.end = pos;\n\treturn node;\n};\n\n/*\nLook for an HTML attribute definition. Returns null if not found, otherwise returns {type: \"attribute\", name:, valueType: \"string|indirect|macro\", value:, start:, end:,}\n*/\nexports.parseAttribute = function(source,pos) {\n\tvar node = {\n\t\tstart: pos\n\t};\n\t// Define our regexps\n\tvar reAttributeName = /([^\\/\\s>\"'=]+)/g,\n\t\treUnquotedAttribute = /([^\\/\\s<>\"'=]+)/g,\n\t\treFilteredValue = /\\{\\{\\{(.+?)\\}\\}\\}/g,\n\t\treIndirectValue = /\\{\\{([^\\}]+)\\}\\}/g;\n\t// Skip whitespace\n\tpos = $tw.utils.skipWhiteSpace(source,pos);\n\t// Get the attribute name\n\tvar name = $tw.utils.parseTokenRegExp(source,pos,reAttributeName);\n\tif(!name) {\n\t\treturn null;\n\t}\n\tnode.name = name.match[1];\n\tpos = name.end;\n\t// Skip whitespace\n\tpos = $tw.utils.skipWhiteSpace(source,pos);\n\t// Look for an equals sign\n\tvar token = $tw.utils.parseTokenString(source,pos,\"=\");\n\tif(token) {\n\t\tpos = token.end;\n\t\t// Skip whitespace\n\t\tpos = $tw.utils.skipWhiteSpace(source,pos);\n\t\t// Look for a string literal\n\t\tvar stringLiteral = $tw.utils.parseStringLiteral(source,pos);\n\t\tif(stringLiteral) {\n\t\t\tpos = stringLiteral.end;\n\t\t\tnode.type = \"string\";\n\t\t\tnode.value = stringLiteral.value;\n\t\t} else {\n\t\t\t// Look for a filtered value\n\t\t\tvar filteredValue = $tw.utils.parseTokenRegExp(source,pos,reFilteredValue);\n\t\t\tif(filteredValue) {\n\t\t\t\tpos = filteredValue.end;\n\t\t\t\tnode.type = \"filtered\";\n\t\t\t\tnode.filter = filteredValue.match[1];\n\t\t\t} else {\n\t\t\t\t// Look for an indirect value\n\t\t\t\tvar indirectValue = $tw.utils.parseTokenRegExp(source,pos,reIndirectValue);\n\t\t\t\tif(indirectValue) {\n\t\t\t\t\tpos = indirectValue.end;\n\t\t\t\t\tnode.type = \"indirect\";\n\t\t\t\t\tnode.textReference = indirectValue.match[1];\n\t\t\t\t} else {\n\t\t\t\t\t// Look for a unquoted value\n\t\t\t\t\tvar unquotedValue = $tw.utils.parseTokenRegExp(source,pos,reUnquotedAttribute);\n\t\t\t\t\tif(unquotedValue) {\n\t\t\t\t\t\tpos = unquotedValue.end;\n\t\t\t\t\t\tnode.type = \"string\";\n\t\t\t\t\t\tnode.value = unquotedValue.match[1];\n\t\t\t\t\t} else {\n\t\t\t\t\t\t// Look for a macro invocation value\n\t\t\t\t\t\tvar macroInvocation = $tw.utils.parseMacroInvocation(source,pos);\n\t\t\t\t\t\tif(macroInvocation) {\n\t\t\t\t\t\t\tpos = macroInvocation.end;\n\t\t\t\t\t\t\tnode.type = \"macro\";\n\t\t\t\t\t\t\tnode.value = macroInvocation;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tnode.type = \"string\";\n\t\t\t\t\t\t\tnode.value = \"true\";\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t} else {\n\t\tnode.type = \"string\";\n\t\tnode.value = \"true\";\n\t}\n\t// Update the end position\n\tnode.end = pos;\n\treturn node;\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "utils"
        },
        "$:/core/modules/parsers/pdfparser.js": {
            "title": "$:/core/modules/parsers/pdfparser.js",
            "text": "/*\\\ntitle: $:/core/modules/parsers/pdfparser.js\ntype: application/javascript\nmodule-type: parser\n\nThe PDF parser embeds a PDF viewer\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar ImageParser = function(type,text,options) {\n\tvar element = {\n\t\t\ttype: \"element\",\n\t\t\ttag: \"embed\",\n\t\t\tattributes: {}\n\t\t},\n\t\tsrc;\n\tif(options._canonical_uri) {\n\t\telement.attributes.src = {type: \"string\", value: options._canonical_uri};\n\t} else if(text) {\n\t\telement.attributes.src = {type: \"string\", value: \"data:application/pdf;base64,\" + text};\n\t}\n\tthis.tree = [element];\n};\n\nexports[\"application/pdf\"] = ImageParser;\n\n})();\n\n",
            "type": "application/javascript",
            "module-type": "parser"
        },
        "$:/core/modules/parsers/textparser.js": {
            "title": "$:/core/modules/parsers/textparser.js",
            "text": "/*\\\ntitle: $:/core/modules/parsers/textparser.js\ntype: application/javascript\nmodule-type: parser\n\nThe plain text parser processes blocks of source text into a degenerate parse tree consisting of a single text node\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar TextParser = function(type,text,options) {\n\tthis.tree = [{\n\t\ttype: \"codeblock\",\n\t\tattributes: {\n\t\t\tcode: {type: \"string\", value: text},\n\t\t\tlanguage: {type: \"string\", value: type}\n\t\t}\n\t}];\n};\n\nexports[\"text/plain\"] = TextParser;\nexports[\"text/x-tiddlywiki\"] = TextParser;\nexports[\"application/javascript\"] = TextParser;\nexports[\"application/json\"] = TextParser;\nexports[\"text/css\"] = TextParser;\nexports[\"application/x-tiddler-dictionary\"] = TextParser;\n\n})();\n\n",
            "type": "application/javascript",
            "module-type": "parser"
        },
        "$:/core/modules/parsers/videoparser.js": {
            "title": "$:/core/modules/parsers/videoparser.js",
            "text": "/*\\\ntitle: $:/core/modules/parsers/videoparser.js\ntype: application/javascript\nmodule-type: parser\n\nThe video parser parses a video tiddler into an embeddable HTML element\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar VideoParser = function(type,text,options) {\n\tvar element = {\n\t\t\ttype: \"element\",\n\t\t\ttag: \"video\",\n\t\t\tattributes: {\n\t\t\t\tcontrols: {type: \"string\", value: \"controls\"},\n\t\t\t\tstyle: {type: \"string\", value: \"width: 100%; object-fit: contain\"}\n\t\t\t}\n\t\t},\n\t\tsrc;\n\tif(options._canonical_uri) {\n\t\telement.attributes.src = {type: \"string\", value: options._canonical_uri};\n\t} else if(text) {\n\t\telement.attributes.src = {type: \"string\", value: \"data:\" + type + \";base64,\" + text};\n\t}\n\tthis.tree = [element];\n};\n\nexports[\"video/ogg\"] = VideoParser;\nexports[\"video/webm\"] = VideoParser;\nexports[\"video/mp4\"] = VideoParser;\nexports[\"video/quicktime\"] = VideoParser;\n\n})();\n",
            "type": "application/javascript",
            "module-type": "parser"
        },
        "$:/core/modules/parsers/wikiparser/rules/codeblock.js": {
            "title": "$:/core/modules/parsers/wikiparser/rules/codeblock.js",
            "text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/codeblock.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text rule for code blocks. For example:\n\n```\n\t```\n\tThis text will not be //wikified//\n\t```\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"codeblock\";\nexports.types = {block: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match and get language if defined\n\tthis.matchRegExp = /```([\\w-]*)\\r?\\n/mg;\n};\n\nexports.parse = function() {\n\tvar reEnd = /(\\r?\\n```$)/mg;\n\t// Move past the match\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\n\t// Look for the end of the block\n\treEnd.lastIndex = this.parser.pos;\n\tvar match = reEnd.exec(this.parser.source),\n\t\ttext;\n\t// Process the block\n\tif(match) {\n\t\ttext = this.parser.source.substring(this.parser.pos,match.index);\n\t\tthis.parser.pos = match.index + match[0].length;\n\t} else {\n\t\ttext = this.parser.source.substr(this.parser.pos);\n\t\tthis.parser.pos = this.parser.sourceLength;\n\t}\n\t// Return the $codeblock widget\n\treturn [{\n\t\t\ttype: \"codeblock\",\n\t\t\tattributes: {\n\t\t\t\t\tcode: {type: \"string\", value: text},\n\t\t\t\t\tlanguage: {type: \"string\", value: this.match[1]}\n\t\t\t}\n\t}];\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "wikirule"
        },
        "$:/core/modules/parsers/wikiparser/rules/codeinline.js": {
            "title": "$:/core/modules/parsers/wikiparser/rules/codeinline.js",
            "text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/codeinline.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text inline rule for code runs. For example:\n\n```\n\tThis is a `code run`.\n\tThis is another ``code run``\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"codeinline\";\nexports.types = {inline: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /(``?)/mg;\n};\n\nexports.parse = function() {\n\t// Move past the match\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\tvar reEnd = new RegExp(this.match[1], \"mg\");\n\t// Look for the end marker\n\treEnd.lastIndex = this.parser.pos;\n\tvar match = reEnd.exec(this.parser.source),\n\t\ttext;\n\t// Process the text\n\tif(match) {\n\t\ttext = this.parser.source.substring(this.parser.pos,match.index);\n\t\tthis.parser.pos = match.index + match[0].length;\n\t} else {\n\t\ttext = this.parser.source.substr(this.parser.pos);\n\t\tthis.parser.pos = this.parser.sourceLength;\n\t}\n\treturn [{\n\t\ttype: \"element\",\n\t\ttag: \"code\",\n\t\tchildren: [{\n\t\t\ttype: \"text\",\n\t\t\ttext: text\n\t\t}]\n\t}];\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "wikirule"
        },
        "$:/core/modules/parsers/wikiparser/rules/commentblock.js": {
            "title": "$:/core/modules/parsers/wikiparser/rules/commentblock.js",
            "text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/commentblock.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text block rule for HTML comments. For example:\n\n```\n<!-- This is a comment -->\n```\n\nNote that the syntax for comments is simplified to an opening \"<!--\" sequence and a closing \"-->\" sequence -- HTML itself implements a more complex format (see http://ostermiller.org/findhtmlcomment.html)\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"commentblock\";\nexports.types = {block: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\tthis.matchRegExp = /<!--/mg;\n\tthis.endMatchRegExp = /-->/mg;\n};\n\nexports.findNextMatch = function(startPos) {\n\tthis.matchRegExp.lastIndex = startPos;\n\tthis.match = this.matchRegExp.exec(this.parser.source);\n\tif(this.match) {\n\t\tthis.endMatchRegExp.lastIndex = startPos + this.match[0].length;\n\t\tthis.endMatch = this.endMatchRegExp.exec(this.parser.source);\n\t\tif(this.endMatch) {\n\t\t\treturn this.match.index;\n\t\t}\n\t}\n\treturn undefined;\n};\n\nexports.parse = function() {\n\t// Move past the match\n\tthis.parser.pos = this.endMatchRegExp.lastIndex;\n\t// Don't return any elements\n\treturn [];\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "wikirule"
        },
        "$:/core/modules/parsers/wikiparser/rules/commentinline.js": {
            "title": "$:/core/modules/parsers/wikiparser/rules/commentinline.js",
            "text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/commentinline.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text inline rule for HTML comments. For example:\n\n```\n<!-- This is a comment -->\n```\n\nNote that the syntax for comments is simplified to an opening \"<!--\" sequence and a closing \"-->\" sequence -- HTML itself implements a more complex format (see http://ostermiller.org/findhtmlcomment.html)\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"commentinline\";\nexports.types = {inline: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\tthis.matchRegExp = /<!--/mg;\n\tthis.endMatchRegExp = /-->/mg;\n};\n\nexports.findNextMatch = function(startPos) {\n\tthis.matchRegExp.lastIndex = startPos;\n\tthis.match = this.matchRegExp.exec(this.parser.source);\n\tif(this.match) {\n\t\tthis.endMatchRegExp.lastIndex = startPos + this.match[0].length;\n\t\tthis.endMatch = this.endMatchRegExp.exec(this.parser.source);\n\t\tif(this.endMatch) {\n\t\t\treturn this.match.index;\n\t\t}\n\t}\n\treturn undefined;\n};\n\nexports.parse = function() {\n\t// Move past the match\n\tthis.parser.pos = this.endMatchRegExp.lastIndex;\n\t// Don't return any elements\n\treturn [];\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "wikirule"
        },
        "$:/core/modules/parsers/wikiparser/rules/dash.js": {
            "title": "$:/core/modules/parsers/wikiparser/rules/dash.js",
            "text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/dash.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text inline rule for dashes. For example:\n\n```\nThis is an en-dash: --\n\nThis is an em-dash: ---\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"dash\";\nexports.types = {inline: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /-{2,3}(?!-)/mg;\n};\n\nexports.parse = function() {\n\t// Move past the match\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\tvar dash = this.match[0].length === 2 ? \"&ndash;\" : \"&mdash;\";\n\treturn [{\n\t\ttype: \"entity\",\n\t\tentity: dash\n\t}];\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "wikirule"
        },
        "$:/core/modules/parsers/wikiparser/rules/emphasis/bold.js": {
            "title": "$:/core/modules/parsers/wikiparser/rules/emphasis/bold.js",
            "text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/emphasis/bold.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text inline rule for emphasis - bold. For example:\n\n```\n\tThis is ''bold'' text\n```\n\nThis wikiparser can be modified using the rules eg:\n\n```\n\\rules except bold \n\\rules only bold \n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"bold\";\nexports.types = {inline: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /''/mg;\n};\n\nexports.parse = function() {\n\t// Move past the match\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\n\t// Parse the run including the terminator\n\tvar tree = this.parser.parseInlineRun(/''/mg,{eatTerminator: true});\n\n\t// Return the classed span\n\treturn [{\n\t\ttype: \"element\",\n\t\ttag: \"strong\",\n\t\tchildren: tree\n\t}];\n};\n\n})();",
            "type": "application/javascript",
            "module-type": "wikirule"
        },
        "$:/core/modules/parsers/wikiparser/rules/emphasis/italic.js": {
            "title": "$:/core/modules/parsers/wikiparser/rules/emphasis/italic.js",
            "text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/emphasis/italic.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text inline rule for emphasis - italic. For example:\n\n```\n\tThis is //italic// text\n```\n\nThis wikiparser can be modified using the rules eg:\n\n```\n\\rules except italic\n\\rules only italic\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"italic\";\nexports.types = {inline: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /\\/\\//mg;\n};\n\nexports.parse = function() {\n\t// Move past the match\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\n\t// Parse the run including the terminator\n\tvar tree = this.parser.parseInlineRun(/\\/\\//mg,{eatTerminator: true});\n\n\t// Return the classed span\n\treturn [{\n\t\ttype: \"element\",\n\t\ttag: \"em\",\n\t\tchildren: tree\n\t}];\n};\n\n})();",
            "type": "application/javascript",
            "module-type": "wikirule"
        },
        "$:/core/modules/parsers/wikiparser/rules/emphasis/strikethrough.js": {
            "title": "$:/core/modules/parsers/wikiparser/rules/emphasis/strikethrough.js",
            "text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/emphasis/strikethrough.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text inline rule for emphasis - strikethrough. For example:\n\n```\n\tThis is ~~strikethrough~~ text\n```\n\nThis wikiparser can be modified using the rules eg:\n\n```\n\\rules except strikethrough \n\\rules only strikethrough \n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"strikethrough\";\nexports.types = {inline: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /~~/mg;\n};\n\nexports.parse = function() {\n\t// Move past the match\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\n\t// Parse the run including the terminator\n\tvar tree = this.parser.parseInlineRun(/~~/mg,{eatTerminator: true});\n\n\t// Return the classed span\n\treturn [{\n\t\ttype: \"element\",\n\t\ttag: \"strike\",\n\t\tchildren: tree\n\t}];\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "wikirule"
        },
        "$:/core/modules/parsers/wikiparser/rules/emphasis/subscript.js": {
            "title": "$:/core/modules/parsers/wikiparser/rules/emphasis/subscript.js",
            "text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/emphasis/subscript.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text inline rule for emphasis - subscript. For example:\n\n```\n\tThis is ,,subscript,, text\n```\n\nThis wikiparser can be modified using the rules eg:\n\n```\n\\rules except subscript \n\\rules only subscript \n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"subscript\";\nexports.types = {inline: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /,,/mg;\n};\n\nexports.parse = function() {\n\t// Move past the match\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\n\t// Parse the run including the terminator\n\tvar tree = this.parser.parseInlineRun(/,,/mg,{eatTerminator: true});\n\n\t// Return the classed span\n\treturn [{\n\t\ttype: \"element\",\n\t\ttag: \"sub\",\n\t\tchildren: tree\n\t}];\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "wikirule"
        },
        "$:/core/modules/parsers/wikiparser/rules/emphasis/superscript.js": {
            "title": "$:/core/modules/parsers/wikiparser/rules/emphasis/superscript.js",
            "text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/emphasis/superscript.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text inline rule for emphasis - superscript. For example:\n\n```\n\tThis is ^^superscript^^ text\n```\n\nThis wikiparser can be modified using the rules eg:\n\n```\n\\rules except superscript \n\\rules only superscript \n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"superscript\";\nexports.types = {inline: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /\\^\\^/mg;\n};\n\nexports.parse = function() {\n\t// Move past the match\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\n\t// Parse the run including the terminator\n\tvar tree = this.parser.parseInlineRun(/\\^\\^/mg,{eatTerminator: true});\n\n\t// Return the classed span\n\treturn [{\n\t\ttype: \"element\",\n\t\ttag: \"sup\",\n\t\tchildren: tree\n\t}];\n};\n\n})();",
            "type": "application/javascript",
            "module-type": "wikirule"
        },
        "$:/core/modules/parsers/wikiparser/rules/emphasis/underscore.js": {
            "title": "$:/core/modules/parsers/wikiparser/rules/emphasis/underscore.js",
            "text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/emphasis/underscore.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text inline rule for emphasis - underscore. For example:\n\n```\n\tThis is __underscore__ text\n```\n\nThis wikiparser can be modified using the rules eg:\n\n```\n\\rules except underscore \n\\rules only underscore\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"underscore\";\nexports.types = {inline: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /__/mg;\n};\n\nexports.parse = function() {\n\t// Move past the match\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\n\t// Parse the run including the terminator\n\tvar tree = this.parser.parseInlineRun(/__/mg,{eatTerminator: true});\n\n\t// Return the classed span\n\treturn [{\n\t\ttype: \"element\",\n\t\ttag: \"u\",\n\t\tchildren: tree\n\t}];\n};\n\n})();",
            "type": "application/javascript",
            "module-type": "wikirule"
        },
        "$:/core/modules/parsers/wikiparser/rules/entity.js": {
            "title": "$:/core/modules/parsers/wikiparser/rules/entity.js",
            "text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/entity.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text inline rule for HTML entities. For example:\n\n```\n\tThis is a copyright symbol: &copy;\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"entity\";\nexports.types = {inline: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /(&#?[a-zA-Z0-9]{2,8};)/mg;\n};\n\n/*\nParse the most recent match\n*/\nexports.parse = function() {\n\t// Get all the details of the match\n\tvar entityString = this.match[1];\n\t// Move past the macro call\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\t// Return the entity\n\treturn [{type: \"entity\", entity: this.match[0]}];\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "wikirule"
        },
        "$:/core/modules/parsers/wikiparser/rules/extlink.js": {
            "title": "$:/core/modules/parsers/wikiparser/rules/extlink.js",
            "text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/extlink.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text inline rule for external links. For example:\n\n```\nAn external link: https://www.tiddlywiki.com/\n\nA suppressed external link: ~http://www.tiddlyspace.com/\n```\n\nExternal links can be suppressed by preceding them with `~`.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"extlink\";\nexports.types = {inline: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /~?(?:file|http|https|mailto|ftp|irc|news|data|skype):[^\\s<>{}\\[\\]`|\"\\\\^]+(?:\\/|\\b)/mg;\n};\n\nexports.parse = function() {\n\t// Move past the match\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\t// Create the link unless it is suppressed\n\tif(this.match[0].substr(0,1) === \"~\") {\n\t\treturn [{type: \"text\", text: this.match[0].substr(1)}];\n\t} else {\n\t\treturn [{\n\t\t\ttype: \"element\",\n\t\t\ttag: \"a\",\n\t\t\tattributes: {\n\t\t\t\thref: {type: \"string\", value: this.match[0]},\n\t\t\t\t\"class\": {type: \"string\", value: \"tc-tiddlylink-external\"},\n\t\t\t\ttarget: {type: \"string\", value: \"_blank\"},\n\t\t\t\trel: {type: \"string\", value: \"noopener noreferrer\"}\n\t\t\t},\n\t\t\tchildren: [{\n\t\t\t\ttype: \"text\", text: this.match[0]\n\t\t\t}]\n\t\t}];\n\t}\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "wikirule"
        },
        "$:/core/modules/parsers/wikiparser/rules/filteredtranscludeblock.js": {
            "title": "$:/core/modules/parsers/wikiparser/rules/filteredtranscludeblock.js",
            "text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/filteredtranscludeblock.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text rule for block-level filtered transclusion. For example:\n\n```\n{{{ [tag[docs]] }}}\n{{{ [tag[docs]] |tooltip}}}\n{{{ [tag[docs]] ||TemplateTitle}}}\n{{{ [tag[docs]] |tooltip||TemplateTitle}}}\n{{{ [tag[docs]] }}width:40;height:50;}.class.class\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"filteredtranscludeblock\";\nexports.types = {block: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /\\{\\{\\{([^\\|]+?)(?:\\|([^\\|\\{\\}]+))?(?:\\|\\|([^\\|\\{\\}]+))?\\}\\}([^\\}]*)\\}(?:\\.(\\S+))?(?:\\r?\\n|$)/mg;\n};\n\nexports.parse = function() {\n\t// Move past the match\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\t// Get the match details\n\tvar filter = this.match[1],\n\t\ttooltip = this.match[2],\n\t\ttemplate = $tw.utils.trim(this.match[3]),\n\t\tstyle = this.match[4],\n\t\tclasses = this.match[5];\n\t// Return the list widget\n\tvar node = {\n\t\ttype: \"list\",\n\t\tattributes: {\n\t\t\tfilter: {type: \"string\", value: filter}\n\t\t},\n\t\tisBlock: true\n\t};\n\tif(tooltip) {\n\t\tnode.attributes.tooltip = {type: \"string\", value: tooltip};\n\t}\n\tif(template) {\n\t\tnode.attributes.template = {type: \"string\", value: template};\n\t}\n\tif(style) {\n\t\tnode.attributes.style = {type: \"string\", value: style};\n\t}\n\tif(classes) {\n\t\tnode.attributes.itemClass = {type: \"string\", value: classes.split(\".\").join(\" \")};\n\t}\n\treturn [node];\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "wikirule"
        },
        "$:/core/modules/parsers/wikiparser/rules/filteredtranscludeinline.js": {
            "title": "$:/core/modules/parsers/wikiparser/rules/filteredtranscludeinline.js",
            "text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/filteredtranscludeinline.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text rule for inline filtered transclusion. For example:\n\n```\n{{{ [tag[docs]] }}}\n{{{ [tag[docs]] |tooltip}}}\n{{{ [tag[docs]] ||TemplateTitle}}}\n{{{ [tag[docs]] |tooltip||TemplateTitle}}}\n{{{ [tag[docs]] }}width:40;height:50;}.class.class\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"filteredtranscludeinline\";\nexports.types = {inline: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /\\{\\{\\{([^\\|]+?)(?:\\|([^\\|\\{\\}]+))?(?:\\|\\|([^\\|\\{\\}]+))?\\}\\}([^\\}]*)\\}(?:\\.(\\S+))?/mg;\n};\n\nexports.parse = function() {\n\t// Move past the match\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\t// Get the match details\n\tvar filter = this.match[1],\n\t\ttooltip = this.match[2],\n\t\ttemplate = $tw.utils.trim(this.match[3]),\n\t\tstyle = this.match[4],\n\t\tclasses = this.match[5];\n\t// Return the list widget\n\tvar node = {\n\t\ttype: \"list\",\n\t\tattributes: {\n\t\t\tfilter: {type: \"string\", value: filter}\n\t\t}\n\t};\n\tif(tooltip) {\n\t\tnode.attributes.tooltip = {type: \"string\", value: tooltip};\n\t}\n\tif(template) {\n\t\tnode.attributes.template = {type: \"string\", value: template};\n\t}\n\tif(style) {\n\t\tnode.attributes.style = {type: \"string\", value: style};\n\t}\n\tif(classes) {\n\t\tnode.attributes.itemClass = {type: \"string\", value: classes.split(\".\").join(\" \")};\n\t}\n\treturn [node];\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "wikirule"
        },
        "$:/core/modules/parsers/wikiparser/rules/hardlinebreaks.js": {
            "title": "$:/core/modules/parsers/wikiparser/rules/hardlinebreaks.js",
            "text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/hardlinebreaks.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text inline rule for marking areas with hard line breaks. For example:\n\n```\n\"\"\"\nThis is some text\nThat is set like\nIt is a Poem\nWhen it is\nClearly\nNot\n\"\"\"\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"hardlinebreaks\";\nexports.types = {inline: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /\"\"\"(?:\\r?\\n)?/mg;\n};\n\nexports.parse = function() {\n\tvar reEnd = /(\"\"\")|(\\r?\\n)/mg,\n\t\ttree = [],\n\t\tmatch;\n\t// Move past the match\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\tdo {\n\t\t// Parse the run up to the terminator\n\t\ttree.push.apply(tree,this.parser.parseInlineRun(reEnd,{eatTerminator: false}));\n\t\t// Redo the terminator match\n\t\treEnd.lastIndex = this.parser.pos;\n\t\tmatch = reEnd.exec(this.parser.source);\n\t\tif(match) {\n\t\t\tthis.parser.pos = reEnd.lastIndex;\n\t\t\t// Add a line break if the terminator was a line break\n\t\t\tif(match[2]) {\n\t\t\t\ttree.push({type: \"element\", tag: \"br\"});\n\t\t\t}\n\t\t}\n\t} while(match && !match[1]);\n\t// Return the nodes\n\treturn tree;\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "wikirule"
        },
        "$:/core/modules/parsers/wikiparser/rules/heading.js": {
            "title": "$:/core/modules/parsers/wikiparser/rules/heading.js",
            "text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/heading.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text block rule for headings\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"heading\";\nexports.types = {block: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /(!{1,6})/mg;\n};\n\n/*\nParse the most recent match\n*/\nexports.parse = function() {\n\t// Get all the details of the match\n\tvar headingLevel = this.match[1].length;\n\t// Move past the !s\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\t// Parse any classes, whitespace and then the heading itself\n\tvar classes = this.parser.parseClasses();\n\tthis.parser.skipWhitespace({treatNewlinesAsNonWhitespace: true});\n\tvar tree = this.parser.parseInlineRun(/(\\r?\\n)/mg);\n\t// Return the heading\n\treturn [{\n\t\ttype: \"element\",\n\t\ttag: \"h\" + headingLevel, \n\t\tattributes: {\n\t\t\t\"class\": {type: \"string\", value: classes.join(\" \")}\n\t\t},\n\t\tchildren: tree\n\t}];\n};\n})();\n",
            "type": "application/javascript",
            "module-type": "wikirule"
        },
        "$:/core/modules/parsers/wikiparser/rules/horizrule.js": {
            "title": "$:/core/modules/parsers/wikiparser/rules/horizrule.js",
            "text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/horizrule.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text block rule for rules. For example:\n\n```\n---\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"horizrule\";\nexports.types = {block: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /-{3,}\\r?(?:\\n|$)/mg;\n};\n\nexports.parse = function() {\n\t// Move past the match\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\treturn [{type: \"element\", tag: \"hr\"}];\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "wikirule"
        },
        "$:/core/modules/parsers/wikiparser/rules/html.js": {
            "title": "$:/core/modules/parsers/wikiparser/rules/html.js",
            "text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/html.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki rule for HTML elements and widgets. For example:\n\n{{{\n<aside>\nThis is an HTML5 aside element\n</aside>\n\n<$slider target=\"MyTiddler\">\nThis is a widget invocation\n</$slider>\n\n}}}\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"html\";\nexports.types = {inline: true, block: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n};\n\nexports.findNextMatch = function(startPos) {\n\t// Find the next tag\n\tthis.nextTag = this.findNextTag(this.parser.source,startPos,{\n\t\trequireLineBreak: this.is.block\n\t});\n\treturn this.nextTag ? this.nextTag.start : undefined;\n};\n\n/*\nParse the most recent match\n*/\nexports.parse = function() {\n\t// Retrieve the most recent match so that recursive calls don't overwrite it\n\tvar tag = this.nextTag;\n\tthis.nextTag = null;\n\t// Advance the parser position to past the tag\n\tthis.parser.pos = tag.end;\n\t// Check for an immediately following double linebreak\n\tvar hasLineBreak = !tag.isSelfClosing && !!$tw.utils.parseTokenRegExp(this.parser.source,this.parser.pos,/([^\\S\\n\\r]*\\r?\\n(?:[^\\S\\n\\r]*\\r?\\n|$))/g);\n\t// Set whether we're in block mode\n\ttag.isBlock = this.is.block || hasLineBreak;\n\t// Parse the body if we need to\n\tif(!tag.isSelfClosing && $tw.config.htmlVoidElements.indexOf(tag.tag) === -1) {\n\t\t\tvar reEndString = \"</\" + $tw.utils.escapeRegExp(tag.tag) + \">\",\n\t\t\t\treEnd = new RegExp(\"(\" + reEndString + \")\",\"mg\");\n\t\tif(hasLineBreak) {\n\t\t\ttag.children = this.parser.parseBlocks(reEndString);\n\t\t} else {\n\t\t\ttag.children = this.parser.parseInlineRun(reEnd);\n\t\t}\n\t\treEnd.lastIndex = this.parser.pos;\n\t\tvar endMatch = reEnd.exec(this.parser.source);\n\t\tif(endMatch && endMatch.index === this.parser.pos) {\n\t\t\tthis.parser.pos = endMatch.index + endMatch[0].length;\n\t\t}\n\t}\n\t// Return the tag\n\treturn [tag];\n};\n\n/*\nLook for an HTML tag. Returns null if not found, otherwise returns {type: \"element\", name:, attributes: [], isSelfClosing:, start:, end:,}\n*/\nexports.parseTag = function(source,pos,options) {\n\toptions = options || {};\n\tvar token,\n\t\tnode = {\n\t\t\ttype: \"element\",\n\t\t\tstart: pos,\n\t\t\tattributes: {}\n\t\t};\n\t// Define our regexps\n\tvar reTagName = /([a-zA-Z0-9\\-\\$]+)/g;\n\t// Skip whitespace\n\tpos = $tw.utils.skipWhiteSpace(source,pos);\n\t// Look for a less than sign\n\ttoken = $tw.utils.parseTokenString(source,pos,\"<\");\n\tif(!token) {\n\t\treturn null;\n\t}\n\tpos = token.end;\n\t// Get the tag name\n\ttoken = $tw.utils.parseTokenRegExp(source,pos,reTagName);\n\tif(!token) {\n\t\treturn null;\n\t}\n\tnode.tag = token.match[1];\n\tif(node.tag.slice(1).indexOf(\"$\") !== -1) {\n\t\treturn null;\n\t}\n\tif(node.tag.charAt(0) === \"$\") {\n\t\tnode.type = node.tag.substr(1);\n\t}\n\tpos = token.end;\n\t// Check that the tag is terminated by a space, / or >\n\tif(!$tw.utils.parseWhiteSpace(source,pos) && !(source.charAt(pos) === \"/\") && !(source.charAt(pos) === \">\") ) {\n\t\treturn null;\n\t}\n\t// Process attributes\n\tvar attribute = $tw.utils.parseAttribute(source,pos);\n\twhile(attribute) {\n\t\tnode.attributes[attribute.name] = attribute;\n\t\tpos = attribute.end;\n\t\t// Get the next attribute\n\t\tattribute = $tw.utils.parseAttribute(source,pos);\n\t}\n\t// Skip whitespace\n\tpos = $tw.utils.skipWhiteSpace(source,pos);\n\t// Look for a closing slash\n\ttoken = $tw.utils.parseTokenString(source,pos,\"/\");\n\tif(token) {\n\t\tpos = token.end;\n\t\tnode.isSelfClosing = true;\n\t}\n\t// Look for a greater than sign\n\ttoken = $tw.utils.parseTokenString(source,pos,\">\");\n\tif(!token) {\n\t\treturn null;\n\t}\n\tpos = token.end;\n\t// Check for a required line break\n\tif(options.requireLineBreak) {\n\t\ttoken = $tw.utils.parseTokenRegExp(source,pos,/([^\\S\\n\\r]*\\r?\\n(?:[^\\S\\n\\r]*\\r?\\n|$))/g);\n\t\tif(!token) {\n\t\t\treturn null;\n\t\t}\n\t}\n\t// Update the end position\n\tnode.end = pos;\n\treturn node;\n};\n\nexports.findNextTag = function(source,pos,options) {\n\t// A regexp for finding candidate HTML tags\n\tvar reLookahead = /<([a-zA-Z\\-\\$]+)/g;\n\t// Find the next candidate\n\treLookahead.lastIndex = pos;\n\tvar match = reLookahead.exec(source);\n\twhile(match) {\n\t\t// Try to parse the candidate as a tag\n\t\tvar tag = this.parseTag(source,match.index,options);\n\t\t// Return success\n\t\tif(tag && this.isLegalTag(tag)) {\n\t\t\treturn tag;\n\t\t}\n\t\t// Look for the next match\n\t\treLookahead.lastIndex = match.index + 1;\n\t\tmatch = reLookahead.exec(source);\n\t}\n\t// Failed\n\treturn null;\n};\n\nexports.isLegalTag = function(tag) {\n\t// Widgets are always OK\n\tif(tag.type !== \"element\") {\n\t\treturn true;\n\t// If it's an HTML tag that starts with a dash then it's not legal\n\t} else if(tag.tag.charAt(0) === \"-\") {\n\t\treturn false;\n\t} else {\n\t\t// Otherwise it's OK\n\t\treturn true;\n\t}\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "wikirule"
        },
        "$:/core/modules/parsers/wikiparser/rules/image.js": {
            "title": "$:/core/modules/parsers/wikiparser/rules/image.js",
            "text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/image.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text inline rule for embedding images. For example:\n\n```\n[img[https://tiddlywiki.com/fractalveg.jpg]]\n[img width=23 height=24 [https://tiddlywiki.com/fractalveg.jpg]]\n[img width={{!!width}} height={{!!height}} [https://tiddlywiki.com/fractalveg.jpg]]\n[img[Description of image|https://tiddlywiki.com/fractalveg.jpg]]\n[img[TiddlerTitle]]\n[img[Description of image|TiddlerTitle]]\n```\n\nGenerates the `<$image>` widget.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"image\";\nexports.types = {inline: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n};\n\nexports.findNextMatch = function(startPos) {\n\t// Find the next tag\n\tthis.nextImage = this.findNextImage(this.parser.source,startPos);\n\treturn this.nextImage ? this.nextImage.start : undefined;\n};\n\nexports.parse = function() {\n\t// Move past the match\n\tthis.parser.pos = this.nextImage.end;\n\tvar node = {\n\t\ttype: \"image\",\n\t\tattributes: this.nextImage.attributes\n\t};\n\treturn [node];\n};\n\n/*\nFind the next image from the current position\n*/\nexports.findNextImage = function(source,pos) {\n\t// A regexp for finding candidate HTML tags\n\tvar reLookahead = /(\\[img)/g;\n\t// Find the next candidate\n\treLookahead.lastIndex = pos;\n\tvar match = reLookahead.exec(source);\n\twhile(match) {\n\t\t// Try to parse the candidate as a tag\n\t\tvar tag = this.parseImage(source,match.index);\n\t\t// Return success\n\t\tif(tag) {\n\t\t\treturn tag;\n\t\t}\n\t\t// Look for the next match\n\t\treLookahead.lastIndex = match.index + 1;\n\t\tmatch = reLookahead.exec(source);\n\t}\n\t// Failed\n\treturn null;\n};\n\n/*\nLook for an image at the specified position. Returns null if not found, otherwise returns {type: \"image\", attributes: [], isSelfClosing:, start:, end:,}\n*/\nexports.parseImage = function(source,pos) {\n\tvar token,\n\t\tnode = {\n\t\t\ttype: \"image\",\n\t\t\tstart: pos,\n\t\t\tattributes: {}\n\t\t};\n\t// Skip whitespace\n\tpos = $tw.utils.skipWhiteSpace(source,pos);\n\t// Look for the `[img`\n\ttoken = $tw.utils.parseTokenString(source,pos,\"[img\");\n\tif(!token) {\n\t\treturn null;\n\t}\n\tpos = token.end;\n\t// Skip whitespace\n\tpos = $tw.utils.skipWhiteSpace(source,pos);\n\t// Process attributes\n\tif(source.charAt(pos) !== \"[\") {\n\t\tvar attribute = $tw.utils.parseAttribute(source,pos);\n\t\twhile(attribute) {\n\t\t\tnode.attributes[attribute.name] = attribute;\n\t\t\tpos = attribute.end;\n\t\t\tpos = $tw.utils.skipWhiteSpace(source,pos);\n\t\t\tif(source.charAt(pos) !== \"[\") {\n\t\t\t\t// Get the next attribute\n\t\t\t\tattribute = $tw.utils.parseAttribute(source,pos);\n\t\t\t} else {\n\t\t\t\tattribute = null;\n\t\t\t}\n\t\t}\n\t}\n\t// Skip whitespace\n\tpos = $tw.utils.skipWhiteSpace(source,pos);\n\t// Look for the `[` after the attributes\n\ttoken = $tw.utils.parseTokenString(source,pos,\"[\");\n\tif(!token) {\n\t\treturn null;\n\t}\n\tpos = token.end;\n\t// Skip whitespace\n\tpos = $tw.utils.skipWhiteSpace(source,pos);\n\t// Get the source up to the terminating `]]`\n\ttoken = $tw.utils.parseTokenRegExp(source,pos,/(?:([^|\\]]*?)\\|)?([^\\]]+?)\\]\\]/g);\n\tif(!token) {\n\t\treturn null;\n\t}\n\tpos = token.end;\n\tif(token.match[1]) {\n\t\tnode.attributes.tooltip = {type: \"string\", value: token.match[1].trim()};\n\t}\n\tnode.attributes.source = {type: \"string\", value: (token.match[2] || \"\").trim()};\n\t// Update the end position\n\tnode.end = pos;\n\treturn node;\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "wikirule"
        },
        "$:/core/modules/parsers/wikiparser/rules/import.js": {
            "title": "$:/core/modules/parsers/wikiparser/rules/import.js",
            "text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/import.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki pragma rule for importing variable definitions\n\n```\n\\import [[$:/core/ui/PageMacros]] [all[shadows+tiddlers]tag[$:/tags/Macro]!has[draft.of]]\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"import\";\nexports.types = {pragma: true};\n\n/*\nInstantiate parse rule\n*/\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /^\\\\import[^\\S\\n]/mg;\n};\n\n/*\nParse the most recent match\n*/\nexports.parse = function() {\n\tvar self = this;\n\t// Move past the pragma invocation\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\t// Parse the filter terminated by a line break\n\tvar reMatch = /(.*)(\\r?\\n)|$/mg;\n\treMatch.lastIndex = this.parser.pos;\n\tvar match = reMatch.exec(this.parser.source);\n\tthis.parser.pos = reMatch.lastIndex;\n\t// Parse tree nodes to return\n\treturn [{\n\t\ttype: \"importvariables\",\n\t\tattributes: {\n\t\t\tfilter: {type: \"string\", value: match[1]}\n\t\t},\n\t\tchildren: []\n\t}];\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "wikirule"
        },
        "$:/core/modules/parsers/wikiparser/rules/list.js": {
            "title": "$:/core/modules/parsers/wikiparser/rules/list.js",
            "text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/list.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text block rule for lists. For example:\n\n```\n* This is an unordered list\n* It has two items\n\n# This is a numbered list\n## With a subitem\n# And a third item\n\n; This is a term that is being defined\n: This is the definition of that term\n```\n\nNote that lists can be nested arbitrarily:\n\n```\n#** One\n#* Two\n#** Three\n#**** Four\n#**# Five\n#**## Six\n## Seven\n### Eight\n## Nine\n```\n\nA CSS class can be applied to a list item as follows:\n\n```\n* List item one\n*.active List item two has the class `active`\n* List item three\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"list\";\nexports.types = {block: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /([\\*#;:>]+)/mg;\n};\n\nvar listTypes = {\n\t\"*\": {listTag: \"ul\", itemTag: \"li\"},\n\t\"#\": {listTag: \"ol\", itemTag: \"li\"},\n\t\";\": {listTag: \"dl\", itemTag: \"dt\"},\n\t\":\": {listTag: \"dl\", itemTag: \"dd\"},\n\t\">\": {listTag: \"blockquote\", itemTag: \"div\"}\n};\n\n/*\nParse the most recent match\n*/\nexports.parse = function() {\n\t// Array of parse tree nodes for the previous row of the list\n\tvar listStack = [];\n\t// Cycle through the items in the list\n\twhile(true) {\n\t\t// Match the list marker\n\t\tvar reMatch = /([\\*#;:>]+)/mg;\n\t\treMatch.lastIndex = this.parser.pos;\n\t\tvar match = reMatch.exec(this.parser.source);\n\t\tif(!match || match.index !== this.parser.pos) {\n\t\t\tbreak;\n\t\t}\n\t\t// Check whether the list type of the top level matches\n\t\tvar listInfo = listTypes[match[0].charAt(0)];\n\t\tif(listStack.length > 0 && listStack[0].tag !== listInfo.listTag) {\n\t\t\tbreak;\n\t\t}\n\t\t// Move past the list marker\n\t\tthis.parser.pos = match.index + match[0].length;\n\t\t// Walk through the list markers for the current row\n\t\tfor(var t=0; t<match[0].length; t++) {\n\t\t\tlistInfo = listTypes[match[0].charAt(t)];\n\t\t\t// Remove any stacked up element if we can't re-use it because the list type doesn't match\n\t\t\tif(listStack.length > t && listStack[t].tag !== listInfo.listTag) {\n\t\t\t\tlistStack.splice(t,listStack.length - t);\n\t\t\t}\n\t\t\t// Construct the list element or reuse the previous one at this level\n\t\t\tif(listStack.length <= t) {\n\t\t\t\tvar listElement = {type: \"element\", tag: listInfo.listTag, children: [\n\t\t\t\t\t{type: \"element\", tag: listInfo.itemTag, children: []}\n\t\t\t\t]};\n\t\t\t\t// Link this list element into the last child item of the parent list item\n\t\t\t\tif(t) {\n\t\t\t\t\tvar prevListItem = listStack[t-1].children[listStack[t-1].children.length-1];\n\t\t\t\t\tprevListItem.children.push(listElement);\n\t\t\t\t}\n\t\t\t\t// Save this element in the stack\n\t\t\t\tlistStack[t] = listElement;\n\t\t\t} else if(t === (match[0].length - 1)) {\n\t\t\t\tlistStack[t].children.push({type: \"element\", tag: listInfo.itemTag, children: []});\n\t\t\t}\n\t\t}\n\t\tif(listStack.length > match[0].length) {\n\t\t\tlistStack.splice(match[0].length,listStack.length - match[0].length);\n\t\t}\n\t\t// Process the body of the list item into the last list item\n\t\tvar lastListChildren = listStack[listStack.length-1].children,\n\t\t\tlastListItem = lastListChildren[lastListChildren.length-1],\n\t\t\tclasses = this.parser.parseClasses();\n\t\tthis.parser.skipWhitespace({treatNewlinesAsNonWhitespace: true});\n\t\tvar tree = this.parser.parseInlineRun(/(\\r?\\n)/mg);\n\t\tlastListItem.children.push.apply(lastListItem.children,tree);\n\t\tif(classes.length > 0) {\n\t\t\t$tw.utils.addClassToParseTreeNode(lastListItem,classes.join(\" \"));\n\t\t}\n\t\t// Consume any whitespace following the list item\n\t\tthis.parser.skipWhitespace();\n\t}\n\t// Return the root element of the list\n\treturn [listStack[0]];\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "wikirule"
        },
        "$:/core/modules/parsers/wikiparser/rules/macrocallblock.js": {
            "title": "$:/core/modules/parsers/wikiparser/rules/macrocallblock.js",
            "text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/macrocallblock.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki rule for block macro calls\n\n```\n<<name value value2>>\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"macrocallblock\";\nexports.types = {block: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /<<([^>\\s]+)(?:\\s*)((?:[^>]|(?:>(?!>)))*?)>>(?:\\r?\\n|$)/mg;\n};\n\n/*\nParse the most recent match\n*/\nexports.parse = function() {\n\t// Get all the details of the match\n\tvar macroName = this.match[1],\n\t\tparamString = this.match[2];\n\t// Move past the macro call\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\tvar params = [],\n\t\treParam = /\\s*(?:([A-Za-z0-9\\-_]+)\\s*:)?(?:\\s*(?:\"\"\"([\\s\\S]*?)\"\"\"|\"([^\"]*)\"|'([^']*)'|\\[\\[([^\\]]*)\\]\\]|([^\"'\\s]+)))/mg,\n\t\tparamMatch = reParam.exec(paramString);\n\twhile(paramMatch) {\n\t\t// Process this parameter\n\t\tvar paramInfo = {\n\t\t\tvalue: paramMatch[2] || paramMatch[3] || paramMatch[4] || paramMatch[5] || paramMatch[6]\n\t\t};\n\t\tif(paramMatch[1]) {\n\t\t\tparamInfo.name = paramMatch[1];\n\t\t}\n\t\tparams.push(paramInfo);\n\t\t// Find the next match\n\t\tparamMatch = reParam.exec(paramString);\n\t}\n\treturn [{\n\t\ttype: \"macrocall\",\n\t\tname: macroName,\n\t\tparams: params,\n\t\tisBlock: true\n\t}];\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "wikirule"
        },
        "$:/core/modules/parsers/wikiparser/rules/macrocallinline.js": {
            "title": "$:/core/modules/parsers/wikiparser/rules/macrocallinline.js",
            "text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/macrocallinline.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki rule for macro calls\n\n```\n<<name value value2>>\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"macrocallinline\";\nexports.types = {inline: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /<<([^\\s>]+)\\s*([\\s\\S]*?)>>/mg;\n};\n\n/*\nParse the most recent match\n*/\nexports.parse = function() {\n\t// Get all the details of the match\n\tvar macroName = this.match[1],\n\t\tparamString = this.match[2];\n\t// Move past the macro call\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\tvar params = [],\n\t\treParam = /\\s*(?:([A-Za-z0-9\\-_]+)\\s*:)?(?:\\s*(?:\"\"\"([\\s\\S]*?)\"\"\"|\"([^\"]*)\"|'([^']*)'|\\[\\[([^\\]]*)\\]\\]|([^\"'\\s]+)))/mg,\n\t\tparamMatch = reParam.exec(paramString);\n\twhile(paramMatch) {\n\t\t// Process this parameter\n\t\tvar paramInfo = {\n\t\t\tvalue: paramMatch[2] || paramMatch[3] || paramMatch[4] || paramMatch[5]|| paramMatch[6]\n\t\t};\n\t\tif(paramMatch[1]) {\n\t\t\tparamInfo.name = paramMatch[1];\n\t\t}\n\t\tparams.push(paramInfo);\n\t\t// Find the next match\n\t\tparamMatch = reParam.exec(paramString);\n\t}\n\treturn [{\n\t\ttype: \"macrocall\",\n\t\tname: macroName,\n\t\tparams: params\n\t}];\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "wikirule"
        },
        "$:/core/modules/parsers/wikiparser/rules/macrodef.js": {
            "title": "$:/core/modules/parsers/wikiparser/rules/macrodef.js",
            "text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/macrodef.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki pragma rule for macro definitions\n\n```\n\\define name(param:defaultvalue,param2:defaultvalue)\ndefinition text, including $param$ markers\n\\end\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"macrodef\";\nexports.types = {pragma: true};\n\n/*\nInstantiate parse rule\n*/\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /^\\\\define\\s+([^(\\s]+)\\(\\s*([^)]*)\\)(\\s*\\r?\\n)?/mg;\n};\n\n/*\nParse the most recent match\n*/\nexports.parse = function() {\n\t// Move past the macro name and parameters\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\t// Parse the parameters\n\tvar paramString = this.match[2],\n\t\tparams = [];\n\tif(paramString !== \"\") {\n\t\tvar reParam = /\\s*([A-Za-z0-9\\-_]+)(?:\\s*:\\s*(?:\"\"\"([\\s\\S]*?)\"\"\"|\"([^\"]*)\"|'([^']*)'|\\[\\[([^\\]]*)\\]\\]|([^\"'\\s]+)))?/mg,\n\t\t\tparamMatch = reParam.exec(paramString);\n\t\twhile(paramMatch) {\n\t\t\t// Save the parameter details\n\t\t\tvar paramInfo = {name: paramMatch[1]},\n\t\t\t\tdefaultValue = paramMatch[2] || paramMatch[3] || paramMatch[4] || paramMatch[5] || paramMatch[6];\n\t\t\tif(defaultValue) {\n\t\t\t\tparamInfo[\"default\"] = defaultValue;\n\t\t\t}\n\t\t\tparams.push(paramInfo);\n\t\t\t// Look for the next parameter\n\t\t\tparamMatch = reParam.exec(paramString);\n\t\t}\n\t}\n\t// Is this a multiline definition?\n\tvar reEnd;\n\tif(this.match[3]) {\n\t\t// If so, the end of the body is marked with \\end\n\t\treEnd = /(\\r?\\n\\\\end[^\\S\\n\\r]*(?:$|\\r?\\n))/mg;\n\t} else {\n\t\t// Otherwise, the end of the definition is marked by the end of the line\n\t\treEnd = /($|\\r?\\n)/mg;\n\t\t// Move past any whitespace\n\t\tthis.parser.pos = $tw.utils.skipWhiteSpace(this.parser.source,this.parser.pos);\n\t}\n\t// Find the end of the definition\n\treEnd.lastIndex = this.parser.pos;\n\tvar text,\n\t\tendMatch = reEnd.exec(this.parser.source);\n\tif(endMatch) {\n\t\ttext = this.parser.source.substring(this.parser.pos,endMatch.index);\n\t\tthis.parser.pos = endMatch.index + endMatch[0].length;\n\t} else {\n\t\t// We didn't find the end of the definition, so we'll make it blank\n\t\ttext = \"\";\n\t}\n\t// Save the macro definition\n\treturn [{\n\t\ttype: \"set\",\n\t\tattributes: {\n\t\t\tname: {type: \"string\", value: this.match[1]},\n\t\t\tvalue: {type: \"string\", value: text}\n\t\t},\n\t\tchildren: [],\n\t\tparams: params,\n\t\tisMacroDefinition: true\n\t}];\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "wikirule"
        },
        "$:/core/modules/parsers/wikiparser/rules/prettyextlink.js": {
            "title": "$:/core/modules/parsers/wikiparser/rules/prettyextlink.js",
            "text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/prettyextlink.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text inline rule for external links. For example:\n\n```\n[ext[https://tiddlywiki.com/fractalveg.jpg]]\n[ext[Tooltip|https://tiddlywiki.com/fractalveg.jpg]]\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"prettyextlink\";\nexports.types = {inline: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n};\n\nexports.findNextMatch = function(startPos) {\n\t// Find the next tag\n\tthis.nextLink = this.findNextLink(this.parser.source,startPos);\n\treturn this.nextLink ? this.nextLink.start : undefined;\n};\n\nexports.parse = function() {\n\t// Move past the match\n\tthis.parser.pos = this.nextLink.end;\n\treturn [this.nextLink];\n};\n\n/*\nFind the next link from the current position\n*/\nexports.findNextLink = function(source,pos) {\n\t// A regexp for finding candidate links\n\tvar reLookahead = /(\\[ext\\[)/g;\n\t// Find the next candidate\n\treLookahead.lastIndex = pos;\n\tvar match = reLookahead.exec(source);\n\twhile(match) {\n\t\t// Try to parse the candidate as a link\n\t\tvar link = this.parseLink(source,match.index);\n\t\t// Return success\n\t\tif(link) {\n\t\t\treturn link;\n\t\t}\n\t\t// Look for the next match\n\t\treLookahead.lastIndex = match.index + 1;\n\t\tmatch = reLookahead.exec(source);\n\t}\n\t// Failed\n\treturn null;\n};\n\n/*\nLook for an link at the specified position. Returns null if not found, otherwise returns {type: \"element\", tag: \"a\", attributes: [], isSelfClosing:, start:, end:,}\n*/\nexports.parseLink = function(source,pos) {\n\tvar token,\n\t\ttextNode = {\n\t\t\ttype: \"text\"\n\t\t},\n\t\tnode = {\n\t\t\ttype: \"element\",\n\t\t\ttag: \"a\",\n\t\t\tstart: pos,\n\t\t\tattributes: {\n\t\t\t\t\"class\": {type: \"string\", value: \"tc-tiddlylink-external\"},\n\t\t\t},\n\t\t\tchildren: [textNode]\n\t\t};\n\t// Skip whitespace\n\tpos = $tw.utils.skipWhiteSpace(source,pos);\n\t// Look for the `[ext[`\n\ttoken = $tw.utils.parseTokenString(source,pos,\"[ext[\");\n\tif(!token) {\n\t\treturn null;\n\t}\n\tpos = token.end;\n\t// Look ahead for the terminating `]]`\n\tvar closePos = source.indexOf(\"]]\",pos);\n\tif(closePos === -1) {\n\t\treturn null;\n\t}\n\t// Look for a `|` separating the tooltip\n\tvar splitPos = source.indexOf(\"|\",pos);\n\tif(splitPos === -1 || splitPos > closePos) {\n\t\tsplitPos = null;\n\t}\n\t// Pull out the tooltip and URL\n\tvar tooltip, URL;\n\tif(splitPos) {\n\t\tURL = source.substring(splitPos + 1,closePos).trim();\n\t\ttextNode.text = source.substring(pos,splitPos).trim();\n\t} else {\n\t\tURL = source.substring(pos,closePos).trim();\n\t\ttextNode.text = URL;\n\t}\n\tnode.attributes.href = {type: \"string\", value: URL};\n\tnode.attributes.target = {type: \"string\", value: \"_blank\"};\n\tnode.attributes.rel = {type: \"string\", value: \"noopener noreferrer\"};\n\t// Update the end position\n\tnode.end = closePos + 2;\n\treturn node;\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "wikirule"
        },
        "$:/core/modules/parsers/wikiparser/rules/prettylink.js": {
            "title": "$:/core/modules/parsers/wikiparser/rules/prettylink.js",
            "text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/prettylink.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text inline rule for pretty links. For example:\n\n```\n[[Introduction]]\n\n[[Link description|TiddlerTitle]]\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"prettylink\";\nexports.types = {inline: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /\\[\\[(.*?)(?:\\|(.*?))?\\]\\]/mg;\n};\n\nexports.parse = function() {\n\t// Move past the match\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\t// Process the link\n\tvar text = this.match[1],\n\t\tlink = this.match[2] || text;\n\tif($tw.utils.isLinkExternal(link)) {\n\t\treturn [{\n\t\t\ttype: \"element\",\n\t\t\ttag: \"a\",\n\t\t\tattributes: {\n\t\t\t\thref: {type: \"string\", value: link},\n\t\t\t\t\"class\": {type: \"string\", value: \"tc-tiddlylink-external\"},\n\t\t\t\ttarget: {type: \"string\", value: \"_blank\"},\n\t\t\t\trel: {type: \"string\", value: \"noopener noreferrer\"}\n\t\t\t},\n\t\t\tchildren: [{\n\t\t\t\ttype: \"text\", text: text\n\t\t\t}]\n\t\t}];\n\t} else {\n\t\treturn [{\n\t\t\ttype: \"link\",\n\t\t\tattributes: {\n\t\t\t\tto: {type: \"string\", value: link}\n\t\t\t},\n\t\t\tchildren: [{\n\t\t\t\ttype: \"text\", text: text\n\t\t\t}]\n\t\t}];\n\t}\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "wikirule"
        },
        "$:/core/modules/parsers/wikiparser/rules/quoteblock.js": {
            "title": "$:/core/modules/parsers/wikiparser/rules/quoteblock.js",
            "text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/quoteblock.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text rule for quote blocks. For example:\n\n```\n\t<<<.optionalClass(es) optional cited from\n\ta quote\n\t<<<\n\t\n\t<<<.optionalClass(es)\n\ta quote\n\t<<< optional cited from\n```\n\nQuotes can be quoted by putting more <s\n\n```\n\t<<<\n\tQuote Level 1\n\t\n\t<<<<\n\tQuoteLevel 2\n\t<<<<\n\t\n\t<<<\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"quoteblock\";\nexports.types = {block: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /(<<<+)/mg;\n};\n\nexports.parse = function() {\n\tvar classes = [\"tc-quote\"];\n\t// Get all the details of the match\n\tvar reEndString = \"^\" + this.match[1] + \"(?!<)\";\n\t// Move past the <s\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\t\n\t// Parse any classes, whitespace and then the optional cite itself\n\tclasses.push.apply(classes, this.parser.parseClasses());\n\tthis.parser.skipWhitespace({treatNewlinesAsNonWhitespace: true});\n\tvar cite = this.parser.parseInlineRun(/(\\r?\\n)/mg);\n\t// before handling the cite, parse the body of the quote\n\tvar tree= this.parser.parseBlocks(reEndString);\n\t// If we got a cite, put it before the text\n\tif(cite.length > 0) {\n\t\ttree.unshift({\n\t\t\ttype: \"element\",\n\t\t\ttag: \"cite\",\n\t\t\tchildren: cite\n\t\t});\n\t}\n\t// Parse any optional cite\n\tthis.parser.skipWhitespace({treatNewlinesAsNonWhitespace: true});\n\tcite = this.parser.parseInlineRun(/(\\r?\\n)/mg);\n\t// If we got a cite, push it\n\tif(cite.length > 0) {\n\t\ttree.push({\n\t\t\ttype: \"element\",\n\t\t\ttag: \"cite\",\n\t\t\tchildren: cite\n\t\t});\n\t}\n\t// Return the blockquote element\n\treturn [{\n\t\ttype: \"element\",\n\t\ttag: \"blockquote\",\n\t\tattributes: {\n\t\t\tclass: { type: \"string\", value: classes.join(\" \") },\n\t\t},\n\t\tchildren: tree\n\t}];\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "wikirule"
        },
        "$:/core/modules/parsers/wikiparser/rules/rules.js": {
            "title": "$:/core/modules/parsers/wikiparser/rules/rules.js",
            "text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/rules.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki pragma rule for rules specifications\n\n```\n\\rules except ruleone ruletwo rulethree\n\\rules only ruleone ruletwo rulethree\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"rules\";\nexports.types = {pragma: true};\n\n/*\nInstantiate parse rule\n*/\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /^\\\\rules[^\\S\\n]/mg;\n};\n\n/*\nParse the most recent match\n*/\nexports.parse = function() {\n\t// Move past the pragma invocation\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\t// Parse whitespace delimited tokens terminated by a line break\n\tvar reMatch = /[^\\S\\n]*(\\S+)|(\\r?\\n)/mg,\n\t\ttokens = [];\n\treMatch.lastIndex = this.parser.pos;\n\tvar match = reMatch.exec(this.parser.source);\n\twhile(match && match.index === this.parser.pos) {\n\t\tthis.parser.pos = reMatch.lastIndex;\n\t\t// Exit if we've got the line break\n\t\tif(match[2]) {\n\t\t\tbreak;\n\t\t}\n\t\t// Process the token\n\t\tif(match[1]) {\n\t\t\ttokens.push(match[1]);\n\t\t}\n\t\t// Match the next token\n\t\tmatch = reMatch.exec(this.parser.source);\n\t}\n\t// Process the tokens\n\tif(tokens.length > 0) {\n\t\tthis.parser.amendRules(tokens[0],tokens.slice(1));\n\t}\n\t// No parse tree nodes to return\n\treturn [];\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "wikirule"
        },
        "$:/core/modules/parsers/wikiparser/rules/styleblock.js": {
            "title": "$:/core/modules/parsers/wikiparser/rules/styleblock.js",
            "text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/styleblock.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text block rule for assigning styles and classes to paragraphs and other blocks. For example:\n\n```\n@@.myClass\n@@background-color:red;\nThis paragraph will have the CSS class `myClass`.\n\n* The `<ul>` around this list will also have the class `myClass`\n* List item 2\n\n@@\n```\n\nNote that classes and styles can be mixed subject to the rule that styles must precede classes. For example\n\n```\n@@.myFirstClass.mySecondClass\n@@width:100px;.myThirdClass\nThis is a paragraph\n@@\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"styleblock\";\nexports.types = {block: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /@@((?:[^\\.\\r\\n\\s:]+:[^\\r\\n;]+;)+)?(?:\\.([^\\r\\n\\s]+))?\\r?\\n/mg;\n};\n\nexports.parse = function() {\n\tvar reEndString = \"^@@(?:\\\\r?\\\\n)?\";\n\tvar classes = [], styles = [];\n\tdo {\n\t\t// Get the class and style\n\t\tif(this.match[1]) {\n\t\t\tstyles.push(this.match[1]);\n\t\t}\n\t\tif(this.match[2]) {\n\t\t\tclasses.push(this.match[2].split(\".\").join(\" \"));\n\t\t}\n\t\t// Move past the match\n\t\tthis.parser.pos = this.matchRegExp.lastIndex;\n\t\t// Look for another line of classes and styles\n\t\tthis.match = this.matchRegExp.exec(this.parser.source);\n\t} while(this.match && this.match.index === this.parser.pos);\n\t// Parse the body\n\tvar tree = this.parser.parseBlocks(reEndString);\n\tfor(var t=0; t<tree.length; t++) {\n\t\tif(classes.length > 0) {\n\t\t\t$tw.utils.addClassToParseTreeNode(tree[t],classes.join(\" \"));\n\t\t}\n\t\tif(styles.length > 0) {\n\t\t\t$tw.utils.addAttributeToParseTreeNode(tree[t],\"style\",styles.join(\"\"));\n\t\t}\n\t}\n\treturn tree;\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "wikirule"
        },
        "$:/core/modules/parsers/wikiparser/rules/styleinline.js": {
            "title": "$:/core/modules/parsers/wikiparser/rules/styleinline.js",
            "text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/styleinline.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text inline rule for assigning styles and classes to inline runs. For example:\n\n```\n@@.myClass This is some text with a class@@\n@@background-color:red;This is some text with a background colour@@\n@@width:100px;.myClass This is some text with a class and a width@@\n```\n\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"styleinline\";\nexports.types = {inline: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /@@((?:[^\\.\\r\\n\\s:]+:[^\\r\\n;]+;)+)?(\\.(?:[^\\r\\n\\s]+)\\s+)?/mg;\n};\n\nexports.parse = function() {\n\tvar reEnd = /@@/g;\n\t// Get the styles and class\n\tvar stylesString = this.match[1],\n\t\tclassString = this.match[2] ? this.match[2].split(\".\").join(\" \") : undefined;\n\t// Move past the match\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\t// Parse the run up to the terminator\n\tvar tree = this.parser.parseInlineRun(reEnd,{eatTerminator: true});\n\t// Return the classed span\n\tvar node = {\n\t\ttype: \"element\",\n\t\ttag: \"span\",\n\t\tattributes: {\n\t\t\t\"class\": {type: \"string\", value: \"tc-inline-style\"}\n\t\t},\n\t\tchildren: tree\n\t};\n\tif(classString) {\n\t\t$tw.utils.addClassToParseTreeNode(node,classString);\n\t}\n\tif(stylesString) {\n\t\t$tw.utils.addAttributeToParseTreeNode(node,\"style\",stylesString);\n\t}\n\treturn [node];\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "wikirule"
        },
        "$:/core/modules/parsers/wikiparser/rules/syslink.js": {
            "title": "$:/core/modules/parsers/wikiparser/rules/syslink.js",
            "text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/syslink.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text inline rule for system tiddler links.\nCan be suppressed preceding them with `~`.\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"syslink\";\nexports.types = {inline: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = new RegExp(\n\t\t\"~?\\\\$:\\\\/[\" +\n\t\t$tw.config.textPrimitives.anyLetter.substr(1,$tw.config.textPrimitives.anyLetter.length - 2) +\n\t\t\"\\/._-]+\",\n\t\t\"mg\"\n\t);\n};\n\nexports.parse = function() {\n\tvar match = this.match[0];\n\t// Move past the match\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\t// Create the link unless it is suppressed\n\tif(match.substr(0,1) === \"~\") {\n\t\treturn [{type: \"text\", text: match.substr(1)}];\n\t} else {\n\t\treturn [{\n\t\t\ttype: \"link\",\n\t\t\tattributes: {\n\t\t\t\tto: {type: \"string\", value: match}\n\t\t\t},\n\t\t\tchildren: [{\n\t\t\t\ttype: \"text\",\n\t\t\t\ttext: match\n\t\t\t}]\n\t\t}];\n\t}\n};\n\n})();",
            "type": "application/javascript",
            "module-type": "wikirule"
        },
        "$:/core/modules/parsers/wikiparser/rules/table.js": {
            "title": "$:/core/modules/parsers/wikiparser/rules/table.js",
            "text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/table.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text block rule for tables.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"table\";\nexports.types = {block: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /^\\|(?:[^\\n]*)\\|(?:[fhck]?)\\r?(?:\\n|$)/mg;\n};\n\nvar processRow = function(prevColumns) {\n\tvar cellRegExp = /(?:\\|([^\\n\\|]*)\\|)|(\\|[fhck]?\\r?(?:\\n|$))/mg,\n\t\tcellTermRegExp = /((?:\\x20*)\\|)/mg,\n\t\ttree = [],\n\t\tcol = 0,\n\t\tcolSpanCount = 1,\n\t\tprevCell,\n\t\tvAlign;\n\t// Match a single cell\n\tcellRegExp.lastIndex = this.parser.pos;\n\tvar cellMatch = cellRegExp.exec(this.parser.source);\n\twhile(cellMatch && cellMatch.index === this.parser.pos) {\n\t\tif(cellMatch[1] === \"~\") {\n\t\t\t// Rowspan\n\t\t\tvar last = prevColumns[col];\n\t\t\tif(last) {\n\t\t\t\tlast.rowSpanCount++;\n\t\t\t\t$tw.utils.addAttributeToParseTreeNode(last.element,\"rowspan\",last.rowSpanCount);\n\t\t\t\tvAlign = $tw.utils.getAttributeValueFromParseTreeNode(last.element,\"valign\",\"center\");\n\t\t\t\t$tw.utils.addAttributeToParseTreeNode(last.element,\"valign\",vAlign);\n\t\t\t\tif(colSpanCount > 1) {\n\t\t\t\t\t$tw.utils.addAttributeToParseTreeNode(last.element,\"colspan\",colSpanCount);\n\t\t\t\t\tcolSpanCount = 1;\n\t\t\t\t}\n\t\t\t}\n\t\t\t// Move to just before the `|` terminating the cell\n\t\t\tthis.parser.pos = cellRegExp.lastIndex - 1;\n\t\t} else if(cellMatch[1] === \">\") {\n\t\t\t// Colspan\n\t\t\tcolSpanCount++;\n\t\t\t// Move to just before the `|` terminating the cell\n\t\t\tthis.parser.pos = cellRegExp.lastIndex - 1;\n\t\t} else if(cellMatch[1] === \"<\" && prevCell) {\n\t\t\tcolSpanCount = 1 + $tw.utils.getAttributeValueFromParseTreeNode(prevCell,\"colspan\",1);\n\t\t\t$tw.utils.addAttributeToParseTreeNode(prevCell,\"colspan\",colSpanCount);\n\t\t\tcolSpanCount = 1;\n\t\t\t// Move to just before the `|` terminating the cell\n\t\t\tthis.parser.pos = cellRegExp.lastIndex - 1;\n\t\t} else if(cellMatch[2]) {\n\t\t\t// End of row\n\t\t\tif(prevCell && colSpanCount > 1) {\n\t\t\t\tif(prevCell.attributes && prevCell.attributes && prevCell.attributes.colspan) {\n\t\t\t\t\t\tcolSpanCount += prevCell.attributes.colspan.value;\n\t\t\t\t} else {\n\t\t\t\t\tcolSpanCount -= 1;\n\t\t\t\t}\n\t\t\t\t$tw.utils.addAttributeToParseTreeNode(prevCell,\"colspan\",colSpanCount);\n\t\t\t}\n\t\t\tthis.parser.pos = cellRegExp.lastIndex - 1;\n\t\t\tbreak;\n\t\t} else {\n\t\t\t// For ordinary cells, step beyond the opening `|`\n\t\t\tthis.parser.pos++;\n\t\t\t// Look for a space at the start of the cell\n\t\t\tvar spaceLeft = false;\n\t\t\tvAlign = null;\n\t\t\tif(this.parser.source.substr(this.parser.pos).search(/^\\^([^\\^]|\\^\\^)/) === 0) {\n\t\t\t\tvAlign = \"top\";\n\t\t\t} else if(this.parser.source.substr(this.parser.pos).search(/^,([^,]|,,)/) === 0) {\n\t\t\t\tvAlign = \"bottom\";\n\t\t\t}\n\t\t\tif(vAlign) {\n\t\t\t\tthis.parser.pos++;\n\t\t\t}\n\t\t\tvar chr = this.parser.source.substr(this.parser.pos,1);\n\t\t\twhile(chr === \" \") {\n\t\t\t\tspaceLeft = true;\n\t\t\t\tthis.parser.pos++;\n\t\t\t\tchr = this.parser.source.substr(this.parser.pos,1);\n\t\t\t}\n\t\t\t// Check whether this is a heading cell\n\t\t\tvar cell;\n\t\t\tif(chr === \"!\") {\n\t\t\t\tthis.parser.pos++;\n\t\t\t\tcell = {type: \"element\", tag: \"th\", children: []};\n\t\t\t} else {\n\t\t\t\tcell = {type: \"element\", tag: \"td\", children: []};\n\t\t\t}\n\t\t\ttree.push(cell);\n\t\t\t// Record information about this cell\n\t\t\tprevCell = cell;\n\t\t\tprevColumns[col] = {rowSpanCount:1,element:cell};\n\t\t\t// Check for a colspan\n\t\t\tif(colSpanCount > 1) {\n\t\t\t\t$tw.utils.addAttributeToParseTreeNode(cell,\"colspan\",colSpanCount);\n\t\t\t\tcolSpanCount = 1;\n\t\t\t}\n\t\t\t// Parse the cell\n\t\t\tcell.children = this.parser.parseInlineRun(cellTermRegExp,{eatTerminator: true});\n\t\t\t// Set the alignment for the cell\n\t\t\tif(vAlign) {\n\t\t\t\t$tw.utils.addAttributeToParseTreeNode(cell,\"valign\",vAlign);\n\t\t\t}\n\t\t\tif(this.parser.source.substr(this.parser.pos - 2,1) === \" \") { // spaceRight\n\t\t\t\t$tw.utils.addAttributeToParseTreeNode(cell,\"align\",spaceLeft ? \"center\" : \"left\");\n\t\t\t} else if(spaceLeft) {\n\t\t\t\t$tw.utils.addAttributeToParseTreeNode(cell,\"align\",\"right\");\n\t\t\t}\n\t\t\t// Move back to the closing `|`\n\t\t\tthis.parser.pos--;\n\t\t}\n\t\tcol++;\n\t\tcellRegExp.lastIndex = this.parser.pos;\n\t\tcellMatch = cellRegExp.exec(this.parser.source);\n\t}\n\treturn tree;\n};\n\nexports.parse = function() {\n\tvar rowContainerTypes = {\"c\":\"caption\", \"h\":\"thead\", \"\":\"tbody\", \"f\":\"tfoot\"},\n\t\ttable = {type: \"element\", tag: \"table\", children: []},\n\t\trowRegExp = /^\\|([^\\n]*)\\|([fhck]?)\\r?(?:\\n|$)/mg,\n\t\trowTermRegExp = /(\\|(?:[fhck]?)\\r?(?:\\n|$))/mg,\n\t\tprevColumns = [],\n\t\tcurrRowType,\n\t\trowContainer,\n\t\trowCount = 0;\n\t// Match the row\n\trowRegExp.lastIndex = this.parser.pos;\n\tvar rowMatch = rowRegExp.exec(this.parser.source);\n\twhile(rowMatch && rowMatch.index === this.parser.pos) {\n\t\tvar rowType = rowMatch[2];\n\t\t// Check if it is a class assignment\n\t\tif(rowType === \"k\") {\n\t\t\t$tw.utils.addClassToParseTreeNode(table,rowMatch[1]);\n\t\t\tthis.parser.pos = rowMatch.index + rowMatch[0].length;\n\t\t} else {\n\t\t\t// Otherwise, create a new row if this one is of a different type\n\t\t\tif(rowType !== currRowType) {\n\t\t\t\trowContainer = {type: \"element\", tag: rowContainerTypes[rowType], children: []};\n\t\t\t\ttable.children.push(rowContainer);\n\t\t\t\tcurrRowType = rowType;\n\t\t\t}\n\t\t\t// Is this a caption row?\n\t\t\tif(currRowType === \"c\") {\n\t\t\t\t// If so, move past the opening `|` of the row\n\t\t\t\tthis.parser.pos++;\n\t\t\t\t// Move the caption to the first row if it isn't already\n\t\t\t\tif(table.children.length !== 1) {\n\t\t\t\t\ttable.children.pop(); // Take rowContainer out of the children array\n\t\t\t\t\ttable.children.splice(0,0,rowContainer); // Insert it at the bottom\t\t\t\t\t\t\n\t\t\t\t}\n\t\t\t\t// Set the alignment - TODO: figure out why TW did this\n//\t\t\t\trowContainer.attributes.align = rowCount === 0 ? \"top\" : \"bottom\";\n\t\t\t\t// Parse the caption\n\t\t\t\trowContainer.children = this.parser.parseInlineRun(rowTermRegExp,{eatTerminator: true});\n\t\t\t} else {\n\t\t\t\t// Create the row\n\t\t\t\tvar theRow = {type: \"element\", tag: \"tr\", children: []};\n\t\t\t\t$tw.utils.addClassToParseTreeNode(theRow,rowCount%2 ? \"oddRow\" : \"evenRow\");\n\t\t\t\trowContainer.children.push(theRow);\n\t\t\t\t// Process the row\n\t\t\t\ttheRow.children = processRow.call(this,prevColumns);\n\t\t\t\tthis.parser.pos = rowMatch.index + rowMatch[0].length;\n\t\t\t\t// Increment the row count\n\t\t\t\trowCount++;\n\t\t\t}\n\t\t}\n\t\trowMatch = rowRegExp.exec(this.parser.source);\n\t}\n\treturn [table];\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "wikirule"
        },
        "$:/core/modules/parsers/wikiparser/rules/transcludeblock.js": {
            "title": "$:/core/modules/parsers/wikiparser/rules/transcludeblock.js",
            "text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/transcludeblock.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text rule for block-level transclusion. For example:\n\n```\n{{MyTiddler}}\n{{MyTiddler||TemplateTitle}}\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"transcludeblock\";\nexports.types = {block: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /\\{\\{([^\\{\\}\\|]*)(?:\\|\\|([^\\|\\{\\}]+))?\\}\\}(?:\\r?\\n|$)/mg;\n};\n\nexports.parse = function() {\n\t// Move past the match\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\t// Get the match details\n\tvar template = $tw.utils.trim(this.match[2]),\n\t\ttextRef = $tw.utils.trim(this.match[1]);\n\t// Prepare the transclude widget\n\tvar transcludeNode = {\n\t\t\ttype: \"transclude\",\n\t\t\tattributes: {},\n\t\t\tisBlock: true\n\t\t};\n\t// Prepare the tiddler widget\n\tvar tr, targetTitle, targetField, targetIndex, tiddlerNode;\n\tif(textRef) {\n\t\ttr = $tw.utils.parseTextReference(textRef);\n\t\ttargetTitle = tr.title;\n\t\ttargetField = tr.field;\n\t\ttargetIndex = tr.index;\n\t\ttiddlerNode = {\n\t\t\ttype: \"tiddler\",\n\t\t\tattributes: {\n\t\t\t\ttiddler: {type: \"string\", value: targetTitle}\n\t\t\t},\n\t\t\tisBlock: true,\n\t\t\tchildren: [transcludeNode]\n\t\t};\n\t}\n\tif(template) {\n\t\ttranscludeNode.attributes.tiddler = {type: \"string\", value: template};\n\t\tif(textRef) {\n\t\t\treturn [tiddlerNode];\n\t\t} else {\n\t\t\treturn [transcludeNode];\n\t\t}\n\t} else {\n\t\tif(textRef) {\n\t\t\ttranscludeNode.attributes.tiddler = {type: \"string\", value: targetTitle};\n\t\t\tif(targetField) {\n\t\t\t\ttranscludeNode.attributes.field = {type: \"string\", value: targetField};\n\t\t\t}\n\t\t\tif(targetIndex) {\n\t\t\t\ttranscludeNode.attributes.index = {type: \"string\", value: targetIndex};\n\t\t\t}\n\t\t\treturn [tiddlerNode];\n\t\t} else {\n\t\t\treturn [transcludeNode];\n\t\t}\n\t}\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "wikirule"
        },
        "$:/core/modules/parsers/wikiparser/rules/transcludeinline.js": {
            "title": "$:/core/modules/parsers/wikiparser/rules/transcludeinline.js",
            "text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/transcludeinline.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text rule for inline-level transclusion. For example:\n\n```\n{{MyTiddler}}\n{{MyTiddler||TemplateTitle}}\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"transcludeinline\";\nexports.types = {inline: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /\\{\\{([^\\{\\}\\|]*)(?:\\|\\|([^\\|\\{\\}]+))?\\}\\}/mg;\n};\n\nexports.parse = function() {\n\t// Move past the match\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\t// Get the match details\n\tvar template = $tw.utils.trim(this.match[2]),\n\t\ttextRef = $tw.utils.trim(this.match[1]);\n\t// Prepare the transclude widget\n\tvar transcludeNode = {\n\t\t\ttype: \"transclude\",\n\t\t\tattributes: {}\n\t\t};\n\t// Prepare the tiddler widget\n\tvar tr, targetTitle, targetField, targetIndex, tiddlerNode;\n\tif(textRef) {\n\t\ttr = $tw.utils.parseTextReference(textRef);\n\t\ttargetTitle = tr.title;\n\t\ttargetField = tr.field;\n\t\ttargetIndex = tr.index;\n\t\ttiddlerNode = {\n\t\t\ttype: \"tiddler\",\n\t\t\tattributes: {\n\t\t\t\ttiddler: {type: \"string\", value: targetTitle}\n\t\t\t},\n\t\t\tchildren: [transcludeNode]\n\t\t};\n\t}\n\tif(template) {\n\t\ttranscludeNode.attributes.tiddler = {type: \"string\", value: template};\n\t\tif(textRef) {\n\t\t\treturn [tiddlerNode];\n\t\t} else {\n\t\t\treturn [transcludeNode];\n\t\t}\n\t} else {\n\t\tif(textRef) {\n\t\t\ttranscludeNode.attributes.tiddler = {type: \"string\", value: targetTitle};\n\t\t\tif(targetField) {\n\t\t\t\ttranscludeNode.attributes.field = {type: \"string\", value: targetField};\n\t\t\t}\n\t\t\tif(targetIndex) {\n\t\t\t\ttranscludeNode.attributes.index = {type: \"string\", value: targetIndex};\n\t\t\t}\n\t\t\treturn [tiddlerNode];\n\t\t} else {\n\t\t\treturn [transcludeNode];\n\t\t}\n\t}\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "wikirule"
        },
        "$:/core/modules/parsers/wikiparser/rules/typedblock.js": {
            "title": "$:/core/modules/parsers/wikiparser/rules/typedblock.js",
            "text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/typedblock.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text rule for typed blocks. For example:\n\n```\n$$$.js\nThis will be rendered as JavaScript\n$$$\n\n$$$.svg\n<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"150\" height=\"100\">\n  <circle cx=\"100\" cy=\"50\" r=\"40\" stroke=\"black\" stroke-width=\"2\" fill=\"red\" />\n</svg>\n$$$\n\n$$$text/vnd.tiddlywiki>text/html\nThis will be rendered as an //HTML representation// of WikiText\n$$$\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar widget = require(\"$:/core/modules/widgets/widget.js\");\n\nexports.name = \"typedblock\";\nexports.types = {block: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /\\$\\$\\$([^ >\\r\\n]*)(?: *> *([^ \\r\\n]+))?\\r?\\n/mg;\n};\n\nexports.parse = function() {\n\tvar reEnd = /\\r?\\n\\$\\$\\$\\r?(?:\\n|$)/mg;\n\t// Save the type\n\tvar parseType = this.match[1],\n\t\trenderType = this.match[2];\n\t// Move past the match\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\t// Look for the end of the block\n\treEnd.lastIndex = this.parser.pos;\n\tvar match = reEnd.exec(this.parser.source),\n\t\ttext;\n\t// Process the block\n\tif(match) {\n\t\ttext = this.parser.source.substring(this.parser.pos,match.index);\n\t\tthis.parser.pos = match.index + match[0].length;\n\t} else {\n\t\ttext = this.parser.source.substr(this.parser.pos);\n\t\tthis.parser.pos = this.parser.sourceLength;\n\t}\n\t// Parse the block according to the specified type\n\tvar parser = this.parser.wiki.parseText(parseType,text,{defaultType: \"text/plain\"});\n\t// If there's no render type, just return the parse tree\n\tif(!renderType) {\n\t\treturn parser.tree;\n\t} else {\n\t\t// Otherwise, render to the rendertype and return in a <PRE> tag\n\t\tvar widgetNode = this.parser.wiki.makeWidget(parser),\n\t\t\tcontainer = $tw.fakeDocument.createElement(\"div\");\n\t\twidgetNode.render(container,null);\n\t\ttext = renderType === \"text/html\" ? container.innerHTML : container.textContent;\n\t\treturn [{\n\t\t\ttype: \"element\",\n\t\t\ttag: \"pre\",\n\t\t\tchildren: [{\n\t\t\t\ttype: \"text\",\n\t\t\t\ttext: text\n\t\t\t}]\n\t\t}];\n\t}\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "wikirule"
        },
        "$:/core/modules/parsers/wikiparser/rules/whitespace.js": {
            "title": "$:/core/modules/parsers/wikiparser/rules/whitespace.js",
            "text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/whitespace.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki pragma rule for whitespace specifications\n\n```\n\\whitespace trim\n\\whitespace notrim\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"whitespace\";\nexports.types = {pragma: true};\n\n/*\nInstantiate parse rule\n*/\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /^\\\\whitespace[^\\S\\n]/mg;\n};\n\n/*\nParse the most recent match\n*/\nexports.parse = function() {\n\tvar self = this;\n\t// Move past the pragma invocation\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\t// Parse whitespace delimited tokens terminated by a line break\n\tvar reMatch = /[^\\S\\n]*(\\S+)|(\\r?\\n)/mg,\n\t\ttokens = [];\n\treMatch.lastIndex = this.parser.pos;\n\tvar match = reMatch.exec(this.parser.source);\n\twhile(match && match.index === this.parser.pos) {\n\t\tthis.parser.pos = reMatch.lastIndex;\n\t\t// Exit if we've got the line break\n\t\tif(match[2]) {\n\t\t\tbreak;\n\t\t}\n\t\t// Process the token\n\t\tif(match[1]) {\n\t\t\ttokens.push(match[1]);\n\t\t}\n\t\t// Match the next token\n\t\tmatch = reMatch.exec(this.parser.source);\n\t}\n\t// Process the tokens\n\t$tw.utils.each(tokens,function(token) {\n\t\tswitch(token) {\n\t\t\tcase \"trim\":\n\t\t\t\tself.parser.configTrimWhiteSpace = true;\n\t\t\t\tbreak;\n\t\t\tcase \"notrim\":\n\t\t\t\tself.parser.configTrimWhiteSpace = false;\n\t\t\t\tbreak;\n\t\t}\n\t});\n\t// No parse tree nodes to return\n\treturn [];\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "wikirule"
        },
        "$:/core/modules/parsers/wikiparser/rules/wikilink.js": {
            "title": "$:/core/modules/parsers/wikiparser/rules/wikilink.js",
            "text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/wikilink.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text inline rule for wiki links. For example:\n\n```\nAWikiLink\nAnotherLink\n~SuppressedLink\n```\n\nPrecede a camel case word with `~` to prevent it from being recognised as a link.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"wikilink\";\nexports.types = {inline: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = new RegExp($tw.config.textPrimitives.unWikiLink + \"?\" + $tw.config.textPrimitives.wikiLink,\"mg\");\n};\n\n/*\nParse the most recent match\n*/\nexports.parse = function() {\n\t// Get the details of the match\n\tvar linkText = this.match[0];\n\t// Move past the macro call\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\t// If the link starts with the unwikilink character then just output it as plain text\n\tif(linkText.substr(0,1) === $tw.config.textPrimitives.unWikiLink) {\n\t\treturn [{type: \"text\", text: linkText.substr(1)}];\n\t}\n\t// If the link has been preceded with a blocked letter then don't treat it as a link\n\tif(this.match.index > 0) {\n\t\tvar preRegExp = new RegExp($tw.config.textPrimitives.blockPrefixLetters,\"mg\");\n\t\tpreRegExp.lastIndex = this.match.index-1;\n\t\tvar preMatch = preRegExp.exec(this.parser.source);\n\t\tif(preMatch && preMatch.index === this.match.index-1) {\n\t\t\treturn [{type: \"text\", text: linkText}];\n\t\t}\n\t}\n\treturn [{\n\t\ttype: \"link\",\n\t\tattributes: {\n\t\t\tto: {type: \"string\", value: linkText}\n\t\t},\n\t\tchildren: [{\n\t\t\ttype: \"text\",\n\t\t\ttext: linkText\n\t\t}]\n\t}];\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "wikirule"
        },
        "$:/core/modules/parsers/wikiparser/wikiparser.js": {
            "title": "$:/core/modules/parsers/wikiparser/wikiparser.js",
            "text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/wikiparser.js\ntype: application/javascript\nmodule-type: parser\n\nThe wiki text parser processes blocks of source text into a parse tree.\n\nThe parse tree is made up of nested arrays of these JavaScript objects:\n\n\t{type: \"element\", tag: <string>, attributes: {}, children: []} - an HTML element\n\t{type: \"text\", text: <string>} - a text node\n\t{type: \"entity\", value: <string>} - an entity\n\t{type: \"raw\", html: <string>} - raw HTML\n\nAttributes are stored as hashmaps of the following objects:\n\n\t{type: \"string\", value: <string>} - literal string\n\t{type: \"indirect\", textReference: <textReference>} - indirect through a text reference\n\t{type: \"macro\", macro: <TBD>} - indirect through a macro invocation\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar WikiParser = function(type,text,options) {\n\tthis.wiki = options.wiki;\n\tvar self = this;\n\t// Check for an externally linked tiddler\n\tif($tw.browser && (text || \"\") === \"\" && options._canonical_uri) {\n\t\tthis.loadRemoteTiddler(options._canonical_uri);\n\t\ttext = $tw.language.getRawString(\"LazyLoadingWarning\");\n\t}\n\t// Initialise the classes if we don't have them already\n\tif(!this.pragmaRuleClasses) {\n\t\tWikiParser.prototype.pragmaRuleClasses = $tw.modules.createClassesFromModules(\"wikirule\",\"pragma\",$tw.WikiRuleBase);\n\t\tthis.setupRules(WikiParser.prototype.pragmaRuleClasses,\"$:/config/WikiParserRules/Pragmas/\");\n\t}\n\tif(!this.blockRuleClasses) {\n\t\tWikiParser.prototype.blockRuleClasses = $tw.modules.createClassesFromModules(\"wikirule\",\"block\",$tw.WikiRuleBase);\n\t\tthis.setupRules(WikiParser.prototype.blockRuleClasses,\"$:/config/WikiParserRules/Block/\");\n\t}\n\tif(!this.inlineRuleClasses) {\n\t\tWikiParser.prototype.inlineRuleClasses = $tw.modules.createClassesFromModules(\"wikirule\",\"inline\",$tw.WikiRuleBase);\n\t\tthis.setupRules(WikiParser.prototype.inlineRuleClasses,\"$:/config/WikiParserRules/Inline/\");\n\t}\n\t// Save the parse text\n\tthis.type = type || \"text/vnd.tiddlywiki\";\n\tthis.source = text || \"\";\n\tthis.sourceLength = this.source.length;\n\t// Flag for ignoring whitespace\n\tthis.configTrimWhiteSpace = false;\n\t// Set current parse position\n\tthis.pos = 0;\n\t// Instantiate the pragma parse rules\n\tthis.pragmaRules = this.instantiateRules(this.pragmaRuleClasses,\"pragma\",0);\n\t// Instantiate the parser block and inline rules\n\tthis.blockRules = this.instantiateRules(this.blockRuleClasses,\"block\",0);\n\tthis.inlineRules = this.instantiateRules(this.inlineRuleClasses,\"inline\",0);\n\t// Parse any pragmas\n\tthis.tree = [];\n\tvar topBranch = this.parsePragmas();\n\t// Parse the text into inline runs or blocks\n\tif(options.parseAsInline) {\n\t\ttopBranch.push.apply(topBranch,this.parseInlineRun());\n\t} else {\n\t\ttopBranch.push.apply(topBranch,this.parseBlocks());\n\t}\n\t// Return the parse tree\n};\n\n/*\n*/\nWikiParser.prototype.loadRemoteTiddler = function(url) {\n\tvar self = this;\n\t$tw.utils.httpRequest({\n\t\turl: url,\n\t\ttype: \"GET\",\n\t\tcallback: function(err,data) {\n\t\t\tif(!err) {\n\t\t\t\tvar tiddlers = self.wiki.deserializeTiddlers(\".tid\",data,self.wiki.getCreationFields());\n\t\t\t\t$tw.utils.each(tiddlers,function(tiddler) {\n\t\t\t\t\ttiddler[\"_canonical_uri\"] = url;\n\t\t\t\t});\n\t\t\t\tif(tiddlers) {\n\t\t\t\t\tself.wiki.addTiddlers(tiddlers);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t});\n};\n\n/*\n*/\nWikiParser.prototype.setupRules = function(proto,configPrefix) {\n\tvar self = this;\n\tif(!$tw.safemode) {\n\t\t$tw.utils.each(proto,function(object,name) {\n\t\t\tif(self.wiki.getTiddlerText(configPrefix + name,\"enable\") !== \"enable\") {\n\t\t\t\tdelete proto[name];\n\t\t\t}\n\t\t});\n\t}\n};\n\n/*\nInstantiate an array of parse rules\n*/\nWikiParser.prototype.instantiateRules = function(classes,type,startPos) {\n\tvar rulesInfo = [],\n\t\tself = this;\n\t$tw.utils.each(classes,function(RuleClass) {\n\t\t// Instantiate the rule\n\t\tvar rule = new RuleClass(self);\n\t\trule.is = {};\n\t\trule.is[type] = true;\n\t\trule.init(self);\n\t\tvar matchIndex = rule.findNextMatch(startPos);\n\t\tif(matchIndex !== undefined) {\n\t\t\trulesInfo.push({\n\t\t\t\trule: rule,\n\t\t\t\tmatchIndex: matchIndex\n\t\t\t});\n\t\t}\n\t});\n\treturn rulesInfo;\n};\n\n/*\nSkip any whitespace at the current position. Options are:\n\ttreatNewlinesAsNonWhitespace: true if newlines are NOT to be treated as whitespace\n*/\nWikiParser.prototype.skipWhitespace = function(options) {\n\toptions = options || {};\n\tvar whitespaceRegExp = options.treatNewlinesAsNonWhitespace ? /([^\\S\\n]+)/mg : /(\\s+)/mg;\n\twhitespaceRegExp.lastIndex = this.pos;\n\tvar whitespaceMatch = whitespaceRegExp.exec(this.source);\n\tif(whitespaceMatch && whitespaceMatch.index === this.pos) {\n\t\tthis.pos = whitespaceRegExp.lastIndex;\n\t}\n};\n\n/*\nGet the next match out of an array of parse rule instances\n*/\nWikiParser.prototype.findNextMatch = function(rules,startPos) {\n\t// Find the best matching rule by finding the closest match position\n\tvar matchingRule,\n\t\tmatchingRulePos = this.sourceLength;\n\t// Step through each rule\n\tfor(var t=0; t<rules.length; t++) {\n\t\tvar ruleInfo = rules[t];\n\t\t// Ask the rule to get the next match if we've moved past the current one\n\t\tif(ruleInfo.matchIndex !== undefined  && ruleInfo.matchIndex < startPos) {\n\t\t\truleInfo.matchIndex = ruleInfo.rule.findNextMatch(startPos);\n\t\t}\n\t\t// Adopt this match if it's closer than the current best match\n\t\tif(ruleInfo.matchIndex !== undefined && ruleInfo.matchIndex <= matchingRulePos) {\n\t\t\tmatchingRule = ruleInfo;\n\t\t\tmatchingRulePos = ruleInfo.matchIndex;\n\t\t}\n\t}\n\treturn matchingRule;\n};\n\n/*\nParse any pragmas at the beginning of a block of parse text\n*/\nWikiParser.prototype.parsePragmas = function() {\n\tvar currentTreeBranch = this.tree;\n\twhile(true) {\n\t\t// Skip whitespace\n\t\tthis.skipWhitespace();\n\t\t// Check for the end of the text\n\t\tif(this.pos >= this.sourceLength) {\n\t\t\tbreak;\n\t\t}\n\t\t// Check if we've arrived at a pragma rule match\n\t\tvar nextMatch = this.findNextMatch(this.pragmaRules,this.pos);\n\t\t// If not, just exit\n\t\tif(!nextMatch || nextMatch.matchIndex !== this.pos) {\n\t\t\tbreak;\n\t\t}\n\t\t// Process the pragma rule\n\t\tvar subTree = nextMatch.rule.parse();\n\t\tif(subTree.length > 0) {\n\t\t\t// Quick hack; we only cope with a single parse tree node being returned, which is true at the moment\n\t\t\tcurrentTreeBranch.push.apply(currentTreeBranch,subTree);\n\t\t\tsubTree[0].children = [];\n\t\t\tcurrentTreeBranch = subTree[0].children;\n\t\t}\n\t}\n\treturn currentTreeBranch;\n};\n\n/*\nParse a block from the current position\n\tterminatorRegExpString: optional regular expression string that identifies the end of plain paragraphs. Must not include capturing parenthesis\n*/\nWikiParser.prototype.parseBlock = function(terminatorRegExpString) {\n\tvar terminatorRegExp = terminatorRegExpString ? new RegExp(\"(\" + terminatorRegExpString + \"|\\\\r?\\\\n\\\\r?\\\\n)\",\"mg\") : /(\\r?\\n\\r?\\n)/mg;\n\tthis.skipWhitespace();\n\tif(this.pos >= this.sourceLength) {\n\t\treturn [];\n\t}\n\t// Look for a block rule that applies at the current position\n\tvar nextMatch = this.findNextMatch(this.blockRules,this.pos);\n\tif(nextMatch && nextMatch.matchIndex === this.pos) {\n\t\treturn nextMatch.rule.parse();\n\t}\n\t// Treat it as a paragraph if we didn't find a block rule\n\treturn [{type: \"element\", tag: \"p\", children: this.parseInlineRun(terminatorRegExp)}];\n};\n\n/*\nParse a series of blocks of text until a terminating regexp is encountered or the end of the text\n\tterminatorRegExpString: terminating regular expression\n*/\nWikiParser.prototype.parseBlocks = function(terminatorRegExpString) {\n\tif(terminatorRegExpString) {\n\t\treturn this.parseBlocksTerminated(terminatorRegExpString);\n\t} else {\n\t\treturn this.parseBlocksUnterminated();\n\t}\n};\n\n/*\nParse a block from the current position to the end of the text\n*/\nWikiParser.prototype.parseBlocksUnterminated = function() {\n\tvar tree = [];\n\twhile(this.pos < this.sourceLength) {\n\t\ttree.push.apply(tree,this.parseBlock());\n\t}\n\treturn tree;\n};\n\n/*\nParse blocks of text until a terminating regexp is encountered\n*/\nWikiParser.prototype.parseBlocksTerminated = function(terminatorRegExpString) {\n\tvar terminatorRegExp = new RegExp(\"(\" + terminatorRegExpString + \")\",\"mg\"),\n\t\ttree = [];\n\t// Skip any whitespace\n\tthis.skipWhitespace();\n\t//  Check if we've got the end marker\n\tterminatorRegExp.lastIndex = this.pos;\n\tvar match = terminatorRegExp.exec(this.source);\n\t// Parse the text into blocks\n\twhile(this.pos < this.sourceLength && !(match && match.index === this.pos)) {\n\t\tvar blocks = this.parseBlock(terminatorRegExpString);\n\t\ttree.push.apply(tree,blocks);\n\t\t// Skip any whitespace\n\t\tthis.skipWhitespace();\n\t\t//  Check if we've got the end marker\n\t\tterminatorRegExp.lastIndex = this.pos;\n\t\tmatch = terminatorRegExp.exec(this.source);\n\t}\n\tif(match && match.index === this.pos) {\n\t\tthis.pos = match.index + match[0].length;\n\t}\n\treturn tree;\n};\n\n/*\nParse a run of text at the current position\n\tterminatorRegExp: a regexp at which to stop the run\n\toptions: see below\nOptions available:\n\teatTerminator: move the parse position past any encountered terminator (default false)\n*/\nWikiParser.prototype.parseInlineRun = function(terminatorRegExp,options) {\n\tif(terminatorRegExp) {\n\t\treturn this.parseInlineRunTerminated(terminatorRegExp,options);\n\t} else {\n\t\treturn this.parseInlineRunUnterminated(options);\n\t}\n};\n\nWikiParser.prototype.parseInlineRunUnterminated = function(options) {\n\tvar tree = [];\n\t// Find the next occurrence of an inline rule\n\tvar nextMatch = this.findNextMatch(this.inlineRules,this.pos);\n\t// Loop around the matches until we've reached the end of the text\n\twhile(this.pos < this.sourceLength && nextMatch) {\n\t\t// Process the text preceding the run rule\n\t\tif(nextMatch.matchIndex > this.pos) {\n\t\t\tthis.pushTextWidget(tree,this.source.substring(this.pos,nextMatch.matchIndex));\n\t\t\tthis.pos = nextMatch.matchIndex;\n\t\t}\n\t\t// Process the run rule\n\t\ttree.push.apply(tree,nextMatch.rule.parse());\n\t\t// Look for the next run rule\n\t\tnextMatch = this.findNextMatch(this.inlineRules,this.pos);\n\t}\n\t// Process the remaining text\n\tif(this.pos < this.sourceLength) {\n\t\tthis.pushTextWidget(tree,this.source.substr(this.pos));\n\t}\n\tthis.pos = this.sourceLength;\n\treturn tree;\n};\n\nWikiParser.prototype.parseInlineRunTerminated = function(terminatorRegExp,options) {\n\toptions = options || {};\n\tvar tree = [];\n\t// Find the next occurrence of the terminator\n\tterminatorRegExp.lastIndex = this.pos;\n\tvar terminatorMatch = terminatorRegExp.exec(this.source);\n\t// Find the next occurrence of a inlinerule\n\tvar inlineRuleMatch = this.findNextMatch(this.inlineRules,this.pos);\n\t// Loop around until we've reached the end of the text\n\twhile(this.pos < this.sourceLength && (terminatorMatch || inlineRuleMatch)) {\n\t\t// Return if we've found the terminator, and it precedes any inline rule match\n\t\tif(terminatorMatch) {\n\t\t\tif(!inlineRuleMatch || inlineRuleMatch.matchIndex >= terminatorMatch.index) {\n\t\t\t\tif(terminatorMatch.index > this.pos) {\n\t\t\t\t\tthis.pushTextWidget(tree,this.source.substring(this.pos,terminatorMatch.index));\n\t\t\t\t}\n\t\t\t\tthis.pos = terminatorMatch.index;\n\t\t\t\tif(options.eatTerminator) {\n\t\t\t\t\tthis.pos += terminatorMatch[0].length;\n\t\t\t\t}\n\t\t\t\treturn tree;\n\t\t\t}\n\t\t}\n\t\t// Process any inline rule, along with the text preceding it\n\t\tif(inlineRuleMatch) {\n\t\t\t// Preceding text\n\t\t\tif(inlineRuleMatch.matchIndex > this.pos) {\n\t\t\t\tthis.pushTextWidget(tree,this.source.substring(this.pos,inlineRuleMatch.matchIndex));\n\t\t\t\tthis.pos = inlineRuleMatch.matchIndex;\n\t\t\t}\n\t\t\t// Process the inline rule\n\t\t\ttree.push.apply(tree,inlineRuleMatch.rule.parse());\n\t\t\t// Look for the next inline rule\n\t\t\tinlineRuleMatch = this.findNextMatch(this.inlineRules,this.pos);\n\t\t\t// Look for the next terminator match\n\t\t\tterminatorRegExp.lastIndex = this.pos;\n\t\t\tterminatorMatch = terminatorRegExp.exec(this.source);\n\t\t}\n\t}\n\t// Process the remaining text\n\tif(this.pos < this.sourceLength) {\n\t\tthis.pushTextWidget(tree,this.source.substr(this.pos));\n\t}\n\tthis.pos = this.sourceLength;\n\treturn tree;\n};\n\n/*\nPush a text widget onto an array, respecting the configTrimWhiteSpace setting\n*/\nWikiParser.prototype.pushTextWidget = function(array,text) {\n\tif(this.configTrimWhiteSpace) {\n\t\ttext = $tw.utils.trim(text);\n\t}\n\tif(text) {\n\t\tarray.push({type: \"text\", text: text});\t\t\n\t}\n};\n\n/*\nParse zero or more class specifiers `.classname`\n*/\nWikiParser.prototype.parseClasses = function() {\n\tvar classRegExp = /\\.([^\\s\\.]+)/mg,\n\t\tclassNames = [];\n\tclassRegExp.lastIndex = this.pos;\n\tvar match = classRegExp.exec(this.source);\n\twhile(match && match.index === this.pos) {\n\t\tthis.pos = match.index + match[0].length;\n\t\tclassNames.push(match[1]);\n\t\tmatch = classRegExp.exec(this.source);\n\t}\n\treturn classNames;\n};\n\n/*\nAmend the rules used by this instance of the parser\n\ttype: `only` keeps just the named rules, `except` keeps all but the named rules\n\tnames: array of rule names\n*/\nWikiParser.prototype.amendRules = function(type,names) {\n\tnames = names || [];\n\t// Define the filter function\n\tvar target;\n\tif(type === \"only\") {\n\t\ttarget = true;\n\t} else if(type === \"except\") {\n\t\ttarget = false;\n\t} else {\n\t\treturn;\n\t}\n\t// Define a function to process each of our rule arrays\n\tvar processRuleArray = function(ruleArray) {\n\t\tfor(var t=ruleArray.length-1; t>=0; t--) {\n\t\t\tif((names.indexOf(ruleArray[t].rule.name) === -1) === target) {\n\t\t\t\truleArray.splice(t,1);\n\t\t\t}\n\t\t}\n\t};\n\t// Process each rule array\n\tprocessRuleArray(this.pragmaRules);\n\tprocessRuleArray(this.blockRules);\n\tprocessRuleArray(this.inlineRules);\n};\n\nexports[\"text/vnd.tiddlywiki\"] = WikiParser;\n\n})();\n\n",
            "type": "application/javascript",
            "module-type": "parser"
        },
        "$:/core/modules/parsers/wikiparser/rules/wikirulebase.js": {
            "title": "$:/core/modules/parsers/wikiparser/rules/wikirulebase.js",
            "text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/wikirulebase.js\ntype: application/javascript\nmodule-type: global\n\nBase class for wiki parser rules\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nThis constructor is always overridden with a blank constructor, and so shouldn't be used\n*/\nvar WikiRuleBase = function() {\n};\n\n/*\nTo be overridden by individual rules\n*/\nWikiRuleBase.prototype.init = function(parser) {\n\tthis.parser = parser;\n};\n\n/*\nDefault implementation of findNextMatch uses RegExp matching\n*/\nWikiRuleBase.prototype.findNextMatch = function(startPos) {\n\tthis.matchRegExp.lastIndex = startPos;\n\tthis.match = this.matchRegExp.exec(this.parser.source);\n\treturn this.match ? this.match.index : undefined;\n};\n\nexports.WikiRuleBase = WikiRuleBase;\n\n})();\n",
            "type": "application/javascript",
            "module-type": "global"
        },
        "$:/core/modules/pluginswitcher.js": {
            "title": "$:/core/modules/pluginswitcher.js",
            "text": "/*\\\ntitle: $:/core/modules/pluginswitcher.js\ntype: application/javascript\nmodule-type: global\n\nManages switching plugins for themes and languages.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\noptions:\nwiki: wiki store to be used\npluginType: type of plugin to be switched\ncontrollerTitle: title of tiddler used to control switching of this resource\ndefaultPlugins: array of default plugins to be used if nominated plugin isn't found\nonSwitch: callback when plugin is switched (single parameter is array of plugin titles)\n*/\nfunction PluginSwitcher(options) {\n\tthis.wiki = options.wiki;\n\tthis.pluginType = options.pluginType;\n\tthis.controllerTitle = options.controllerTitle;\n\tthis.defaultPlugins = options.defaultPlugins || [];\n\tthis.onSwitch = options.onSwitch;\n\t// Switch to the current plugin\n\tthis.switchPlugins();\n\t// Listen for changes to the selected plugin\n\tvar self = this;\n\tthis.wiki.addEventListener(\"change\",function(changes) {\n\t\tif($tw.utils.hop(changes,self.controllerTitle)) {\n\t\t\tself.switchPlugins();\n\t\t}\n\t});\n}\n\nPluginSwitcher.prototype.switchPlugins = function() {\n\t// Get the name of the current theme\n\tvar selectedPluginTitle = this.wiki.getTiddlerText(this.controllerTitle);\n\t// If it doesn't exist, then fallback to one of the default themes\n\tvar index = 0;\n\twhile(!this.wiki.getTiddler(selectedPluginTitle) && index < this.defaultPlugins.length) {\n\t\tselectedPluginTitle = this.defaultPlugins[index++];\n\t}\n\t// Accumulate the titles of the plugins that we need to load\n\tvar plugins = [],\n\t\tself = this,\n\t\taccumulatePlugin = function(title) {\n\t\t\tvar tiddler = self.wiki.getTiddler(title);\n\t\t\tif(tiddler && tiddler.isPlugin() && plugins.indexOf(title) === -1) {\n\t\t\t\tplugins.push(title);\n\t\t\t\tvar pluginInfo = JSON.parse(self.wiki.getTiddlerText(title)),\n\t\t\t\t\tdependents = $tw.utils.parseStringArray(tiddler.fields.dependents || \"\");\n\t\t\t\t$tw.utils.each(dependents,function(title) {\n\t\t\t\t\taccumulatePlugin(title);\n\t\t\t\t});\n\t\t\t}\n\t\t};\n\taccumulatePlugin(selectedPluginTitle);\n\t// Read the plugin info for the incoming plugins\n\tvar changes = $tw.wiki.readPluginInfo(plugins);\n\t// Unregister any existing theme tiddlers\n\tvar unregisteredTiddlers = $tw.wiki.unregisterPluginTiddlers(this.pluginType);\n\t// Register any new theme tiddlers\n\tvar registeredTiddlers = $tw.wiki.registerPluginTiddlers(this.pluginType,plugins);\n\t// Unpack the current theme tiddlers\n\t$tw.wiki.unpackPluginTiddlers();\n\t// Call the switch handler\n\tif(this.onSwitch) {\n\t\tthis.onSwitch(plugins);\n\t}\n};\n\nexports.PluginSwitcher = PluginSwitcher;\n\n})();\n",
            "type": "application/javascript",
            "module-type": "global"
        },
        "$:/core/modules/saver-handler.js": {
            "title": "$:/core/modules/saver-handler.js",
            "text": "/*\\\ntitle: $:/core/modules/saver-handler.js\ntype: application/javascript\nmodule-type: global\n\nThe saver handler tracks changes to the store and handles saving the entire wiki via saver modules.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nInstantiate the saver handler with the following options:\nwiki: wiki to be synced\ndirtyTracking: true if dirty tracking should be performed\n*/\nfunction SaverHandler(options) {\n\tvar self = this;\n\tthis.wiki = options.wiki;\n\tthis.dirtyTracking = options.dirtyTracking;\n\tthis.preloadDirty = options.preloadDirty || [];\n\tthis.pendingAutoSave = false;\n\t// Make a logger\n\tthis.logger = new $tw.utils.Logger(\"saver-handler\");\n\t// Initialise our savers\n\tif($tw.browser) {\n\t\tthis.initSavers();\n\t}\n\t// Only do dirty tracking if required\n\tif($tw.browser && this.dirtyTracking) {\n\t\t// Compile the dirty tiddler filter\n\t\tthis.filterFn = this.wiki.compileFilter(this.wiki.getTiddlerText(this.titleSyncFilter));\n\t\t// Count of changes that have not yet been saved\n\t\tvar filteredChanges = self.filterFn.call(self.wiki,function(iterator) {\n\t\t\t\t$tw.utils.each(self.preloadDirty,function(title) {\n\t\t\t\t\tvar tiddler = self.wiki.getTiddler(title);\n\t\t\t\t\titerator(tiddler,title);\n\t\t\t\t});\n\t\t});\n\t\tthis.numChanges = filteredChanges.length;\n\t\t// Listen out for changes to tiddlers\n\t\tthis.wiki.addEventListener(\"change\",function(changes) {\n\t\t\t// Filter the changes so that we only count changes to tiddlers that we care about\n\t\t\tvar filteredChanges = self.filterFn.call(self.wiki,function(iterator) {\n\t\t\t\t$tw.utils.each(changes,function(change,title) {\n\t\t\t\t\tvar tiddler = self.wiki.getTiddler(title);\n\t\t\t\t\titerator(tiddler,title);\n\t\t\t\t});\n\t\t\t});\n\t\t\t// Adjust the number of changes\n\t\t\tself.numChanges += filteredChanges.length;\n\t\t\tself.updateDirtyStatus();\n\t\t\t// Do any autosave if one is pending and there's no more change events\n\t\t\tif(self.pendingAutoSave && self.wiki.getSizeOfTiddlerEventQueue() === 0) {\n\t\t\t\t// Check if we're dirty\n\t\t\t\tif(self.numChanges > 0) {\n\t\t\t\t\tself.saveWiki({\n\t\t\t\t\t\tmethod: \"autosave\",\n\t\t\t\t\t\tdownloadType: \"text/plain\"\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\tself.pendingAutoSave = false;\n\t\t\t}\n\t\t});\n\t\t// Listen for the autosave event\n\t\t$tw.rootWidget.addEventListener(\"tm-auto-save-wiki\",function(event) {\n\t\t\t// Do the autosave unless there are outstanding tiddler change events\n\t\t\tif(self.wiki.getSizeOfTiddlerEventQueue() === 0) {\n\t\t\t\t// Check if we're dirty\n\t\t\t\tif(self.numChanges > 0) {\n\t\t\t\t\tself.saveWiki({\n\t\t\t\t\t\tmethod: \"autosave\",\n\t\t\t\t\t\tdownloadType: \"text/plain\"\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// Otherwise put ourselves in the \"pending autosave\" state and wait for the change event before we do the autosave\n\t\t\t\tself.pendingAutoSave = true;\n\t\t\t}\n\t\t});\n\t\t// Set up our beforeunload handler\n\t\t$tw.addUnloadTask(function(event) {\n\t\t\tvar confirmationMessage;\n\t\t\tif(self.isDirty()) {\n\t\t\t\tconfirmationMessage = $tw.language.getString(\"UnsavedChangesWarning\");\n\t\t\t\tevent.returnValue = confirmationMessage; // Gecko\n\t\t\t}\n\t\t\treturn confirmationMessage;\n\t\t});\n\t}\n\t// Install the save action handlers\n\tif($tw.browser) {\n\t\t$tw.rootWidget.addEventListener(\"tm-save-wiki\",function(event) {\n\t\t\tself.saveWiki({\n\t\t\t\ttemplate: event.param,\n\t\t\t\tdownloadType: \"text/plain\",\n\t\t\t\tvariables: event.paramObject\n\t\t\t});\n\t\t});\n\t\t$tw.rootWidget.addEventListener(\"tm-download-file\",function(event) {\n\t\t\tself.saveWiki({\n\t\t\t\tmethod: \"download\",\n\t\t\t\ttemplate: event.param,\n\t\t\t\tdownloadType: \"text/plain\",\n\t\t\t\tvariables: event.paramObject\n\t\t\t});\n\t\t});\n\t}\n}\n\nSaverHandler.prototype.titleSyncFilter = \"$:/config/SaverFilter\";\nSaverHandler.prototype.titleAutoSave = \"$:/config/AutoSave\";\nSaverHandler.prototype.titleSavedNotification = \"$:/language/Notifications/Save/Done\";\n\n/*\nSelect the appropriate saver modules and set them up\n*/\nSaverHandler.prototype.initSavers = function(moduleType) {\n\tmoduleType = moduleType || \"saver\";\n\t// Instantiate the available savers\n\tthis.savers = [];\n\tvar self = this;\n\t$tw.modules.forEachModuleOfType(moduleType,function(title,module) {\n\t\tif(module.canSave(self)) {\n\t\t\tself.savers.push(module.create(self.wiki));\n\t\t}\n\t});\n\t// Sort the savers into priority order\n\tthis.savers.sort(function(a,b) {\n\t\tif(a.info.priority < b.info.priority) {\n\t\t\treturn -1;\n\t\t} else {\n\t\t\tif(a.info.priority > b.info.priority) {\n\t\t\t\treturn +1;\n\t\t\t} else {\n\t\t\t\treturn 0;\n\t\t\t}\n\t\t}\n\t});\n};\n\n/*\nSave the wiki contents. Options are:\n\tmethod: \"save\", \"autosave\" or \"download\"\n\ttemplate: the tiddler containing the template to save\n\tdownloadType: the content type for the saved file\n*/\nSaverHandler.prototype.saveWiki = function(options) {\n\toptions = options || {};\n\tvar self = this,\n\t\tmethod = options.method || \"save\";\n\t// Ignore autosave if disabled\n\tif(method === \"autosave\" && ($tw.config.disableAutoSave || this.wiki.getTiddlerText(this.titleAutoSave,\"yes\") !== \"yes\")) {\n\t\treturn false;\n\t}\n\tvar\tvariables = options.variables || {},\n\t\ttemplate = options.template || \"$:/core/save/all\",\n\t\tdownloadType = options.downloadType || \"text/plain\",\n\t\ttext = this.wiki.renderTiddler(downloadType,template,options),\n\t\tcallback = function(err) {\n\t\t\tif(err) {\n\t\t\t\talert($tw.language.getString(\"Error/WhileSaving\") + \":\\n\\n\" + err);\n\t\t\t} else {\n\t\t\t\t// Clear the task queue if we're saving (rather than downloading)\n\t\t\t\tif(method !== \"download\") {\n\t\t\t\t\tself.numChanges = 0;\n\t\t\t\t\tself.updateDirtyStatus();\n\t\t\t\t}\n\t\t\t\t$tw.notifier.display(self.titleSavedNotification);\n\t\t\t\tif(options.callback) {\n\t\t\t\t\toptions.callback();\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t// Call the highest priority saver that supports this method\n\tfor(var t=this.savers.length-1; t>=0; t--) {\n\t\tvar saver = this.savers[t];\n\t\tif(saver.info.capabilities.indexOf(method) !== -1 && saver.save(text,method,callback,{variables: {filename: variables.filename}})) {\n\t\t\tthis.logger.log(\"Saving wiki with method\",method,\"through saver\",saver.info.name);\n\t\t\treturn true;\n\t\t}\n\t}\n\treturn false;\n};\n\n/*\nChecks whether the wiki is dirty (ie the window shouldn't be closed)\n*/\nSaverHandler.prototype.isDirty = function() {\n\treturn this.numChanges > 0;\n};\n\n/*\nUpdate the document body with the class \"tc-dirty\" if the wiki has unsaved/unsynced changes\n*/\nSaverHandler.prototype.updateDirtyStatus = function() {\n\tvar self = this;\n\tif($tw.browser) {\n\t\t$tw.utils.toggleClass(document.body,\"tc-dirty\",this.isDirty());\n\t\t$tw.utils.each($tw.windows,function(win) {\n\t\t\t$tw.utils.toggleClass(win.document.body,\"tc-dirty\",self.isDirty());\n\t\t});\n\t}\n};\n\nexports.SaverHandler = SaverHandler;\n\n})();\n",
            "type": "application/javascript",
            "module-type": "global"
        },
        "$:/core/modules/savers/andtidwiki.js": {
            "title": "$:/core/modules/savers/andtidwiki.js",
            "text": "/*\\\ntitle: $:/core/modules/savers/andtidwiki.js\ntype: application/javascript\nmodule-type: saver\n\nHandles saving changes via the AndTidWiki Android app\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false, netscape: false, Components: false */\n\"use strict\";\n\nvar AndTidWiki = function(wiki) {\n};\n\nAndTidWiki.prototype.save = function(text,method,callback,options) {\n\tvar filename = options && options.variables ? options.variables.filename : null;\n\tif (method === \"download\") {\n\t\t// Support download\n\t\tif (window.twi.saveDownload) {\n\t\t\ttry {\n\t\t\t\twindow.twi.saveDownload(text,filename);\n\t\t\t} catch(err) {\n\t\t\t\tif (err.message === \"Method not found\") {\n\t\t\t\t\twindow.twi.saveDownload(text);\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tvar link = document.createElement(\"a\");\n\t\t\tlink.setAttribute(\"href\",\"data:text/plain,\" + encodeURIComponent(text));\n\t\t\tif (filename) {\n\t\t\t    link.setAttribute(\"download\",filename);\n\t\t\t}\n\t\t\tdocument.body.appendChild(link);\n\t\t\tlink.click();\n\t\t\tdocument.body.removeChild(link);\n\t\t}\n\t} else if (window.twi.saveWiki) {\n\t\t// Direct save in Tiddloid\n\t\twindow.twi.saveWiki(text);\n\t} else {\n\t\t// Get the pathname of this document\n\t\tvar pathname = decodeURIComponent(document.location.toString().split(\"#\")[0]);\n\t\t// Strip the file://\n\t\tif(pathname.indexOf(\"file://\") === 0) {\n\t\t\tpathname = pathname.substr(7);\n\t\t}\n\t\t// Strip any query or location part\n\t\tvar p = pathname.indexOf(\"?\");\n\t\tif(p !== -1) {\n\t\t\tpathname = pathname.substr(0,p);\n\t\t}\n\t\tp = pathname.indexOf(\"#\");\n\t\tif(p !== -1) {\n\t\t\tpathname = pathname.substr(0,p);\n\t\t}\n\t\t// Save the file\n\t\twindow.twi.saveFile(pathname,text);\n\t}\n\t// Call the callback\n\tcallback(null);\n\treturn true;\n};\n\n/*\nInformation about this saver\n*/\nAndTidWiki.prototype.info = {\n\tname: \"andtidwiki\",\n\tpriority: 1600,\n\tcapabilities: [\"save\", \"autosave\", \"download\"]\n};\n\n/*\nStatic method that returns true if this saver is capable of working\n*/\nexports.canSave = function(wiki) {\n\treturn !!window.twi && !!window.twi.saveFile;\n};\n\n/*\nCreate an instance of this saver\n*/\nexports.create = function(wiki) {\n\treturn new AndTidWiki(wiki);\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "saver"
        },
        "$:/core/modules/savers/beaker.js": {
            "title": "$:/core/modules/savers/beaker.js",
            "text": "/*\\\ntitle: $:/core/modules/savers/beaker.js\ntype: application/javascript\nmodule-type: saver\n\nSaves files using the Beaker browser's (https://beakerbrowser.com) Dat protocol (https://datproject.org/)\nCompatible with beaker >= V0.7.2\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nSet up the saver\n*/\nvar BeakerSaver = function(wiki) {\n\tthis.wiki = wiki;\n};\n\nBeakerSaver.prototype.save = function(text,method,callback) {\n\tvar dat = new DatArchive(\"\" + window.location),\n\t\tpathname = (\"\" + window.location.pathname).split(\"#\")[0];\n\tdat.stat(pathname).then(function(value) {\n\t\tif(value.isDirectory()) {\n\t\t\tpathname = pathname + \"/index.html\";\n\t\t}\n\t\tdat.writeFile(pathname,text,\"utf8\").then(function(value) {\n\t\t\tcallback(null);\n\t\t},function(reason) {\n\t\t\tcallback(\"Beaker Saver Write Error: \" + reason);\n\t\t});\n\t},function(reason) {\n\t\tcallback(\"Beaker Saver Stat Error: \" + reason);\n\t});\n\treturn true;\n};\n\n/*\nInformation about this saver\n*/\nBeakerSaver.prototype.info = {\n\tname: \"beaker\",\n\tpriority: 3000,\n\tcapabilities: [\"save\", \"autosave\"]\n};\n\n/*\nStatic method that returns true if this saver is capable of working\n*/\nexports.canSave = function(wiki) {\n\treturn !!window.DatArchive && location.protocol===\"dat:\";\n};\n\n/*\nCreate an instance of this saver\n*/\nexports.create = function(wiki) {\n\treturn new BeakerSaver(wiki);\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "saver"
        },
        "$:/core/modules/savers/custom.js": {
            "title": "$:/core/modules/savers/custom.js",
            "text": "/*\\\ntitle: $:/core/modules/savers/custom.js\ntype: application/javascript\nmodule-type: saver\n\nLooks for `window.$tw.customSaver` first on the current window, then\non the parent window (of an iframe). If present, the saver must define\n\tsave: function(text,method,callback) { ... }\nand the saver may define\n\tpriority: number\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar findSaver = function(window) {\n\ttry {\n\t\treturn window && window.$tw && window.$tw.customSaver;\n\t} catch (err) {\n\t\t// Catching the exception is the most reliable way to detect cross-origin iframe errors.\n\t\t// For example, instead of saying that `window.parent.$tw` is undefined, Firefox will throw\n\t\t//   Uncaught DOMException: Permission denied to access property \"$tw\" on cross-origin object\n\t\tconsole.log({ msg: \"custom saver is disabled\", reason: err });\n\t\treturn null;\n\t}\n}\nvar saver = findSaver(window) || findSaver(window.parent) || {};\n\nvar CustomSaver = function(wiki) {\n};\n\nCustomSaver.prototype.save = function(text,method,callback) {\n\treturn saver.save(text, method, callback);\n};\n\n/*\nInformation about this saver\n*/\nCustomSaver.prototype.info = {\n\tname: \"custom\",\n\tpriority: saver.priority || 4000,\n\tcapabilities: [\"save\",\"autosave\"]\n};\n\n/*\nStatic method that returns true if this saver is capable of working\n*/\nexports.canSave = function(wiki) {\n\treturn !!(saver.save);\n};\n\n/*\nCreate an instance of this saver\n*/\nexports.create = function(wiki) {\n\treturn new CustomSaver(wiki);\n};\n})();\n",
            "type": "application/javascript",
            "module-type": "saver"
        },
        "$:/core/modules/savers/download.js": {
            "title": "$:/core/modules/savers/download.js",
            "text": "/*\\\ntitle: $:/core/modules/savers/download.js\ntype: application/javascript\nmodule-type: saver\n\nHandles saving changes via HTML5's download APIs\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nSelect the appropriate saver module and set it up\n*/\nvar DownloadSaver = function(wiki) {\n};\n\nDownloadSaver.prototype.save = function(text,method,callback,options) {\n\toptions = options || {};\n\t// Get the current filename\n\tvar filename = options.variables.filename;\n\tif(!filename) {\n\t\tvar p = document.location.pathname.lastIndexOf(\"/\");\n\t\tif(p !== -1) {\n\t\t\t// We decode the pathname because document.location is URL encoded by the browser\n\t\t\tfilename = decodeURIComponent(document.location.pathname.substr(p+1));\n\t\t}\n\t}\n\tif(!filename) {\n\t\tfilename = \"tiddlywiki.html\";\n\t}\n\t// Set up the link\n\tvar link = document.createElement(\"a\");\n\tif(Blob !== undefined) {\n\t\tvar blob = new Blob([text], {type: \"text/html\"});\n\t\tlink.setAttribute(\"href\", URL.createObjectURL(blob));\n\t} else {\n\t\tlink.setAttribute(\"href\",\"data:text/html,\" + encodeURIComponent(text));\n\t}\n\tlink.setAttribute(\"download\",filename);\n\tdocument.body.appendChild(link);\n\tlink.click();\n\tdocument.body.removeChild(link);\n\t// Callback that we succeeded\n\tcallback(null);\n\treturn true;\n};\n\n/*\nInformation about this saver\n*/\nDownloadSaver.prototype.info = {\n\tname: \"download\",\n\tpriority: 100\n};\n\nObject.defineProperty(DownloadSaver.prototype.info, \"capabilities\", {\n\tget: function() {\n\t\tvar capabilities = [\"save\", \"download\"];\n\t\tif(($tw.wiki.getTextReference(\"$:/config/DownloadSaver/AutoSave\") || \"\").toLowerCase() === \"yes\") {\n\t\t\tcapabilities.push(\"autosave\");\n\t\t}\n\t\treturn capabilities;\n\t}\n});\n\n/*\nStatic method that returns true if this saver is capable of working\n*/\nexports.canSave = function(wiki) {\n\treturn document.createElement(\"a\").download !== undefined;\n};\n\n/*\nCreate an instance of this saver\n*/\nexports.create = function(wiki) {\n\treturn new DownloadSaver(wiki);\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "saver"
        },
        "$:/core/modules/savers/fsosaver.js": {
            "title": "$:/core/modules/savers/fsosaver.js",
            "text": "/*\\\ntitle: $:/core/modules/savers/fsosaver.js\ntype: application/javascript\nmodule-type: saver\n\nHandles saving changes via MS FileSystemObject ActiveXObject\n\nNote: Since TiddlyWiki's markup contains the MOTW, the FileSystemObject normally won't be available. \nHowever, if the wiki is loaded as an .HTA file (Windows HTML Applications) then the FSO can be used.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nSelect the appropriate saver module and set it up\n*/\nvar FSOSaver = function(wiki) {\n};\n\nFSOSaver.prototype.save = function(text,method,callback) {\n\t// Get the pathname of this document\n\tvar pathname = unescape(document.location.pathname);\n\t// Test for a Windows path of the form /x:\\blah...\n\tif(/^\\/[A-Z]\\:\\\\[^\\\\]+/i.test(pathname)) {\t// ie: ^/[a-z]:/[^/]+\n\t\t// Remove the leading slash\n\t\tpathname = pathname.substr(1);\n\t} else if(document.location.hostname !== \"\" && /^\\/\\\\[^\\\\]+\\\\[^\\\\]+/i.test(pathname)) {\t// test for \\\\server\\share\\blah... - ^/[^/]+/[^/]+\n\t\t// Remove the leading slash\n\t\tpathname = pathname.substr(1);\n\t\t// reconstruct UNC path\n\t\tpathname = \"\\\\\\\\\" + document.location.hostname + pathname;\n\t} else {\n\t\treturn false;\n\t}\n\t// Save the file (as UTF-16)\n\tvar fso = new ActiveXObject(\"Scripting.FileSystemObject\");\n\tvar file = fso.OpenTextFile(pathname,2,-1,-1);\n\tfile.Write(text);\n\tfile.Close();\n\t// Callback that we succeeded\n\tcallback(null);\n\treturn true;\n};\n\n/*\nInformation about this saver\n*/\nFSOSaver.prototype.info = {\n\tname: \"FSOSaver\",\n\tpriority: 120,\n\tcapabilities: [\"save\", \"autosave\"]\n};\n\n/*\nStatic method that returns true if this saver is capable of working\n*/\nexports.canSave = function(wiki) {\n\ttry {\n\t\treturn (window.location.protocol === \"file:\") && !!(new ActiveXObject(\"Scripting.FileSystemObject\"));\n\t} catch(e) { return false; }\n};\n\n/*\nCreate an instance of this saver\n*/\nexports.create = function(wiki) {\n\treturn new FSOSaver(wiki);\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "saver"
        },
        "$:/core/modules/savers/gitea.js": {
            "title": "$:/core/modules/savers/gitea.js",
            "text": "/*\\\ntitle: $:/core/modules/savers/gitea.js\ntype: application/javascript\nmodule-type: saver\n\nSaves wiki by pushing a commit to the gitea\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nSelect the appropriate saver module and set it up\n*/\nvar GiteaSaver = function(wiki) {\n\tthis.wiki = wiki;\n};\n\nGiteaSaver.prototype.save = function(text,method,callback) {\n\tvar self = this,\n\t\tusername = this.wiki.getTiddlerText(\"$:/Gitea/Username\"),\n\t\tpassword = $tw.utils.getPassword(\"Gitea\"),\n\t\trepo = this.wiki.getTiddlerText(\"$:/Gitea/Repo\"),\n\t\tpath = this.wiki.getTiddlerText(\"$:/Gitea/Path\",\"\"),\n\t\tfilename = this.wiki.getTiddlerText(\"$:/Gitea/Filename\"),\n\t\tbranch = this.wiki.getTiddlerText(\"$:/Gitea/Branch\") || \"master\",\n\t\tendpoint = this.wiki.getTiddlerText(\"$:/Gitea/ServerURL\") || \"https://gitea\",\n\t\theaders = {\n\t\t\t\"Accept\": \"application/json\",\n\t\t\t\"Content-Type\": \"application/json;charset=UTF-8\",\n\t\t\t\"Authorization\": \"token \" + password\n\t\t};\n\t// Bail if we don't have everything we need\n\tif(!username || !password || !repo || !filename) {\n\t\treturn false;\n\t}\n\t// Make sure the path start and ends with a slash\n\tif(path.substring(0,1) !== \"/\") {\n\t\tpath = \"/\" + path;\n\t}\n\tif(path.substring(path.length - 1) !== \"/\") {\n\t\tpath = path + \"/\";\n\t}\n\t// Compose the base URI\n\tvar uri = endpoint + \"/repos/\" + repo + \"/contents\" + path;\n\t// Perform a get request to get the details (inc shas) of files in the same path as our file\n\t$tw.utils.httpRequest({\n\t\turl: uri,\n\t\ttype: \"GET\",\n\t\theaders: headers,\n\t\tdata: {\n\t\t\tref: branch\n\t\t},\n\t\tcallback: function(err,getResponseDataJson,xhr) {\n\t\t\tvar getResponseData,sha = \"\";\n\t\t\tif(err && xhr.status !== 404) {\n\t\t\t\treturn callback(err);\n\t\t\t}\n\t\t\tvar use_put = true;\n\t\t\tif(xhr.status !== 404) {\n\t\t\t\tgetResponseData = JSON.parse(getResponseDataJson);\n\t\t\t\t$tw.utils.each(getResponseData,function(details) {\n\t\t\t\t\tif(details.name === filename) {\n\t\t\t\t\t\tsha = details.sha;\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\tif(sha === \"\"){\n\t\t\t\t\tuse_put = false;\n\t\t\t\t}\n\t\t\t}\n\t\t\tvar data = {\n\t\t\t\tmessage: $tw.language.getRawString(\"ControlPanel/Saving/GitService/CommitMessage\"),\n\t\t\t\tcontent: $tw.utils.base64Encode(text),\n\t\t\t\tsha: sha\n\t\t\t};\n\t\t\t$tw.utils.httpRequest({\n\t\t\t\turl: endpoint + \"/repos/\" + repo + \"/branches/\" + branch,\n\t\t\t\ttype: \"GET\",\n\t\t\t\theaders: headers,\n\t\t\t\tcallback: function(err,getResponseDataJson,xhr) {\n\t\t\t\t\tif(xhr.status === 404) {\n\t\t\t\t\t\tcallback(\"Please ensure the branch in the Gitea repo exists\");\n\t\t\t\t\t}else{\n\t\t\t\t\t\tdata[\"branch\"] = branch;\n\t\t\t\t\t\tself.upload(uri + filename, use_put?\"PUT\":\"POST\", headers, data, callback);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t});\n\treturn true;\n};\n\nGiteaSaver.prototype.upload = function(uri,method,headers,data,callback) {\n\t$tw.utils.httpRequest({\n\t\turl: uri,\n\t\ttype: method,\n\t\theaders: headers,\n\t\tdata: JSON.stringify(data),\n\t\tcallback: function(err,putResponseDataJson,xhr) {\n\t\t\tif(err) {\n\t\t\t\treturn callback(err);\n\t\t\t}\n\t\t\tvar putResponseData = JSON.parse(putResponseDataJson);\n\t\t\tcallback(null);\n\t\t}\n\t});\n};\n\n/*\nInformation about this saver\n*/\nGiteaSaver.prototype.info = {\n\tname: \"Gitea\",\n\tpriority: 2000,\n\tcapabilities: [\"save\", \"autosave\"]\n};\n\n/*\nStatic method that returns true if this saver is capable of working\n*/\nexports.canSave = function(wiki) {\n\treturn true;\n};\n\n/*\nCreate an instance of this saver\n*/\nexports.create = function(wiki) {\n\treturn new GiteaSaver(wiki);\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "saver"
        },
        "$:/core/modules/savers/github.js": {
            "title": "$:/core/modules/savers/github.js",
            "text": "/*\\\ntitle: $:/core/modules/savers/github.js\ntype: application/javascript\nmodule-type: saver\n\nSaves wiki by pushing a commit to the GitHub v3 REST API\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nSelect the appropriate saver module and set it up\n*/\nvar GitHubSaver = function(wiki) {\n\tthis.wiki = wiki;\n};\n\nGitHubSaver.prototype.save = function(text,method,callback) {\n\tvar self = this,\n\t\tusername = this.wiki.getTiddlerText(\"$:/GitHub/Username\"),\n\t\tpassword = $tw.utils.getPassword(\"github\"),\n\t\trepo = this.wiki.getTiddlerText(\"$:/GitHub/Repo\"),\n\t\tpath = this.wiki.getTiddlerText(\"$:/GitHub/Path\",\"\"),\n\t\tfilename = this.wiki.getTiddlerText(\"$:/GitHub/Filename\"),\n\t\tbranch = this.wiki.getTiddlerText(\"$:/GitHub/Branch\") || \"main\",\n\t\tendpoint = this.wiki.getTiddlerText(\"$:/GitHub/ServerURL\") || \"https://api.github.com\",\n\t\theaders = {\n\t\t\t\"Accept\": \"application/vnd.github.v3+json\",\n\t\t\t\"Content-Type\": \"application/json;charset=UTF-8\",\n\t\t\t\"Authorization\": \"Basic \" + window.btoa(username + \":\" + password),\n\t\t\t\"If-None-Match\": \"\"\n\t\t};\n\t// Bail if we don't have everything we need\n\tif(!username || !password || !repo || !filename) {\n\t\treturn false;\n\t}\n\t// Make sure the path start and ends with a slash\n\tif(path.substring(0,1) !== \"/\") {\n\t\tpath = \"/\" + path;\n\t}\n\tif(path.substring(path.length - 1) !== \"/\") {\n\t\tpath = path + \"/\";\n\t}\n\t// Compose the base URI\n\tvar uri = endpoint + \"/repos/\" + repo + \"/contents\" + path;\n\t// Perform a get request to get the details (inc shas) of files in the same path as our file\n\t$tw.utils.httpRequest({\n\t\turl: uri,\n\t\ttype: \"GET\",\n\t\theaders: headers,\n\t\tdata: {\n\t\t\tref: branch\n\t\t},\n\t\tcallback: function(err,getResponseDataJson,xhr) {\n\t\t\tvar getResponseData,sha = \"\";\n\t\t\tif(err && xhr.status !== 404) {\n\t\t\t\treturn callback(err);\n\t\t\t}\n\t\t\tif(xhr.status !== 404) {\n\t\t\t\tgetResponseData = JSON.parse(getResponseDataJson);\n\t\t\t\t$tw.utils.each(getResponseData,function(details) {\n\t\t\t\t\tif(details.name === filename) {\n\t\t\t\t\t\tsha = details.sha;\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t\tvar data = {\n\t\t\t\tmessage: $tw.language.getRawString(\"ControlPanel/Saving/GitService/CommitMessage\"),\n\t\t\t\tcontent: $tw.utils.base64Encode(text),\n\t\t\t\tbranch: branch,\n\t\t\t\tsha: sha\n\t\t\t};\n\t\t\t// Perform a PUT request to save the file\n\t\t\t$tw.utils.httpRequest({\n\t\t\t\turl: uri + filename,\n\t\t\t\ttype: \"PUT\",\n\t\t\t\theaders: headers,\n\t\t\t\tdata: JSON.stringify(data),\n\t\t\t\tcallback: function(err,putResponseDataJson,xhr) {\n\t\t\t\t\tif(err) {\n\t\t\t\t\t\treturn callback(err);\n\t\t\t\t\t}\n\t\t\t\t\tvar putResponseData = JSON.parse(putResponseDataJson);\n\t\t\t\t\tcallback(null);\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t});\n\treturn true;\n};\n\n/*\nInformation about this saver\n*/\nGitHubSaver.prototype.info = {\n\tname: \"github\",\n\tpriority: 2000,\n\tcapabilities: [\"save\", \"autosave\"]\n};\n\n/*\nStatic method that returns true if this saver is capable of working\n*/\nexports.canSave = function(wiki) {\n\treturn true;\n};\n\n/*\nCreate an instance of this saver\n*/\nexports.create = function(wiki) {\n\treturn new GitHubSaver(wiki);\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "saver"
        },
        "$:/core/modules/savers/gitlab.js": {
            "title": "$:/core/modules/savers/gitlab.js",
            "text": "/*\\\ntitle: $:/core/modules/savers/gitlab.js\ntype: application/javascript\nmodule-type: saver\n\nSaves wiki by pushing a commit to the GitLab REST API\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: true */\n\"use strict\";\n\n/*\nSelect the appropriate saver module and set it up\n*/\nvar GitLabSaver = function(wiki) {\n\tthis.wiki = wiki;\n};\n\nGitLabSaver.prototype.save = function(text,method,callback) {\n\t/* See https://docs.gitlab.com/ee/api/repository_files.html */\n\tvar self = this,\n\t\tusername = this.wiki.getTiddlerText(\"$:/GitLab/Username\"),\n\t\tpassword = $tw.utils.getPassword(\"gitlab\"),\n\t\trepo = this.wiki.getTiddlerText(\"$:/GitLab/Repo\"),\n\t\tpath = this.wiki.getTiddlerText(\"$:/GitLab/Path\",\"\"),\n\t\tfilename = this.wiki.getTiddlerText(\"$:/GitLab/Filename\"),\n\t\tbranch = this.wiki.getTiddlerText(\"$:/GitLab/Branch\") || \"master\",\n\t\tendpoint = this.wiki.getTiddlerText(\"$:/GitLab/ServerURL\") || \"https://gitlab.com/api/v4\",\n\t\theaders = {\n\t\t\t\"Content-Type\": \"application/json;charset=UTF-8\",\n\t\t\t\"Private-Token\": password\n\t\t};\n\t// Bail if we don't have everything we need\n\tif(!username || !password || !repo || !filename) {\n\t\treturn false;\n\t}\n\t// Make sure the path start and ends with a slash\n\tif(path.substring(0,1) !== \"/\") {\n\t\tpath = \"/\" + path;\n\t}\n\tif(path.substring(path.length - 1) !== \"/\") {\n\t\tpath = path + \"/\";\n\t}\n\t// Compose the base URI\n\tvar uri = endpoint + \"/projects/\" + encodeURIComponent(repo) + \"/repository/\";\n\t// Perform a get request to get the details (inc shas) of files in the same path as our file\n\t$tw.utils.httpRequest({\n\t\turl: uri + \"tree/?path=\" + encodeURIComponent(path.replace(/^\\/+|\\/$/g, '')) + \"&branch=\" + encodeURIComponent(branch.replace(/^\\/+|\\/$/g, '')),\n\t\ttype: \"GET\",\n\t\theaders: headers,\n\t\tcallback: function(err,getResponseDataJson,xhr) {\n\t\t\tvar getResponseData,sha = \"\";\n\t\t\tif(err && xhr.status !== 404) {\n\t\t\t\treturn callback(err);\n\t\t\t}\n\t\t\tvar requestType = \"POST\";\n\t\t\tif(xhr.status !== 404) {\n\t\t\t\tgetResponseData = JSON.parse(getResponseDataJson);\n\t\t\t\t$tw.utils.each(getResponseData,function(details) {\n\t\t\t\t\tif(details.name === filename) {\n\t\t\t\t\t\trequestType = \"PUT\";\n\t\t\t\t\t\tsha = details.sha;\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t\tvar data = {\n\t\t\t\tcommit_message: $tw.language.getRawString(\"ControlPanel/Saving/GitService/CommitMessage\"),\n\t\t\t\tcontent: text,\n\t\t\t\tbranch: branch,\n\t\t\t\tsha: sha\n\t\t\t};\n\t\t\t// Perform a request to save the file\n\t\t\t$tw.utils.httpRequest({\n\t\t\t\turl: uri + \"files/\" + encodeURIComponent(path.replace(/^\\/+/, '') + filename),\n\t\t\t\ttype: requestType,\n\t\t\t\theaders: headers,\n\t\t\t\tdata: JSON.stringify(data),\n\t\t\t\tcallback: function(err,putResponseDataJson,xhr) {\n\t\t\t\t\tif(err) {\n\t\t\t\t\t\treturn callback(err);\n\t\t\t\t\t}\n\t\t\t\t\tvar putResponseData = JSON.parse(putResponseDataJson);\n\t\t\t\t\tcallback(null);\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t});\n\treturn true;\n};\n\n/*\nInformation about this saver\n*/\nGitLabSaver.prototype.info = {\n\tname: \"gitlab\",\n\tpriority: 2000,\n\tcapabilities: [\"save\", \"autosave\"]\n};\n\n/*\nStatic method that returns true if this saver is capable of working\n*/\nexports.canSave = function(wiki) {\n\treturn true;\n};\n\n/*\nCreate an instance of this saver\n*/\nexports.create = function(wiki) {\n\treturn new GitLabSaver(wiki);\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "saver"
        },
        "$:/core/modules/savers/hyperdrive.js": {
            "title": "$:/core/modules/savers/hyperdrive.js",
            "text": "/*\\\ntitle: $:/core/modules/savers/hyperdrive.js\ntype: application/javascript\nmodule-type: saver\n\nSaves files using the Hyperdrive Protocol (https://hypercore-protocol.org/#hyperdrive) Beaker browser beta-1.0 and later (https://beakerbrowser.com)\nCompatible with beaker >= V1.0.0\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nSet up the saver\n*/\nvar HyperdriveSaver = function(wiki) {\n\tthis.wiki = wiki;\n};\n\nHyperdriveSaver.prototype.save = function(text,method,callback) {\n\tvar dat = beaker.hyperdrive.drive(\"\" + window.location),\n\t\tpathname = (\"\" + window.location.pathname).split(\"#\")[0];\n\tdat.stat(pathname).then(function(value) {\n\t\tif(value.isDirectory()) {\n\t\t\tpathname = pathname + \"/index.html\";\n\t\t}\n\t\tdat.writeFile(pathname,text,\"utf8\").then(function(value) {\n\t\t\tcallback(null);\n\t\t},function(reason) {\n\t\t\tcallback(\"Hyperdrive Saver Write Error: \" + reason);\n\t\t});\n\t},function(reason) {\n\t\tcallback(\"Hyperdrive Saver Stat Error: \" + reason);\n\t});\n\treturn true;\n};\n\n/*\nInformation about this saver\n*/\nHyperdriveSaver.prototype.info = {\n\tname: \"beaker-1.x\",\n\tpriority: 3000,\n\tcapabilities: [\"save\", \"autosave\"]\n};\n\n/*\nStatic method that returns true if this saver is capable of working\n*/\nexports.canSave = function(wiki) {\n\treturn !!window.beaker && !!beaker.hyperdrive && location.protocol===\"hyper:\";\n};\n\n/*\nCreate an instance of this saver\n*/\nexports.create = function(wiki) {\n\treturn new HyperdriveSaver(wiki);\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "saver"
        },
        "$:/core/modules/savers/manualdownload.js": {
            "title": "$:/core/modules/savers/manualdownload.js",
            "text": "/*\\\ntitle: $:/core/modules/savers/manualdownload.js\ntype: application/javascript\nmodule-type: saver\n\nHandles saving changes via HTML5's download APIs\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n// Title of the tiddler containing the download message\nvar downloadInstructionsTitle = \"$:/language/Modals/Download\";\n\n/*\nSelect the appropriate saver module and set it up\n*/\nvar ManualDownloadSaver = function(wiki) {\n};\n\nManualDownloadSaver.prototype.save = function(text,method,callback) {\n\t$tw.modal.display(downloadInstructionsTitle,{\n\t\tdownloadLink: \"data:text/html,\" + encodeURIComponent(text)\n\t});\n\t// Callback that we succeeded\n\tcallback(null);\n\treturn true;\n};\n\n/*\nInformation about this saver\n*/\nManualDownloadSaver.prototype.info = {\n\tname: \"manualdownload\",\n\tpriority: 0,\n\tcapabilities: [\"save\", \"download\"]\n};\n\n/*\nStatic method that returns true if this saver is capable of working\n*/\nexports.canSave = function(wiki) {\n\treturn true;\n};\n\n/*\nCreate an instance of this saver\n*/\nexports.create = function(wiki) {\n\treturn new ManualDownloadSaver(wiki);\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "saver"
        },
        "$:/core/modules/savers/msdownload.js": {
            "title": "$:/core/modules/savers/msdownload.js",
            "text": "/*\\\ntitle: $:/core/modules/savers/msdownload.js\ntype: application/javascript\nmodule-type: saver\n\nHandles saving changes via window.navigator.msSaveBlob()\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nSelect the appropriate saver module and set it up\n*/\nvar MsDownloadSaver = function(wiki) {\n};\n\nMsDownloadSaver.prototype.save = function(text,method,callback) {\n\t// Get the current filename\n\tvar filename = \"tiddlywiki.html\",\n\t\tp = document.location.pathname.lastIndexOf(\"/\");\n\tif(p !== -1) {\n\t\tfilename = document.location.pathname.substr(p+1);\n\t}\n\t// Set up the link\n\tvar blob = new Blob([text], {type: \"text/html\"});\n\twindow.navigator.msSaveBlob(blob,filename);\n\t// Callback that we succeeded\n\tcallback(null);\n\treturn true;\n};\n\n/*\nInformation about this saver\n*/\nMsDownloadSaver.prototype.info = {\n\tname: \"msdownload\",\n\tpriority: 110,\n\tcapabilities: [\"save\", \"download\"]\n};\n\n/*\nStatic method that returns true if this saver is capable of working\n*/\nexports.canSave = function(wiki) {\n\treturn !!window.navigator.msSaveBlob;\n};\n\n/*\nCreate an instance of this saver\n*/\nexports.create = function(wiki) {\n\treturn new MsDownloadSaver(wiki);\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "saver"
        },
        "$:/core/modules/savers/put.js": {
            "title": "$:/core/modules/savers/put.js",
            "text": "/*\\\ntitle: $:/core/modules/savers/put.js\ntype: application/javascript\nmodule-type: saver\n\nSaves wiki by performing a PUT request to the server\n\nWorks with any server which accepts a PUT request\nto the current URL, such as a WebDAV server.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nRetrieve ETag if available\n*/\nvar retrieveETag = function(self) {\n\tvar headers = {\n\t\tAccept: \"*/*;charset=UTF-8\"\n\t};\n\t$tw.utils.httpRequest({\n\t\turl: self.uri(),\n\t\ttype: \"HEAD\",\n\t\theaders: headers,\n\t\tcallback: function(err,data,xhr) {\n\t\t\tif(err) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tvar etag = xhr.getResponseHeader(\"ETag\");\n\t\t\tif(!etag) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tself.etag = etag.replace(/^W\\//,\"\");\n\t\t}\n\t});\n};\n\n\n/*\nSelect the appropriate saver module and set it up\n*/\nvar PutSaver = function(wiki) {\n\tthis.wiki = wiki;\n\tvar self = this;\n\tvar uri = this.uri();\n\t// Async server probe. Until probe finishes, save will fail fast\n\t// See also https://github.com/Jermolene/TiddlyWiki5/issues/2276\n\t$tw.utils.httpRequest({\n\t\turl: uri,\n\t\ttype: \"OPTIONS\",\n\t\tcallback: function(err,data,xhr) {\n\t\t\t// Check DAV header http://www.webdav.org/specs/rfc2518.html#rfc.section.9.1\n\t\t\tif(!err) {\n\t\t\t\tself.serverAcceptsPuts = xhr.status === 200 && !!xhr.getResponseHeader(\"dav\");\n\t\t\t}\n\t\t}\n\t});\n\tretrieveETag(this);\n};\n\nPutSaver.prototype.uri = function() {\n\treturn document.location.toString().split(\"#\")[0];\n};\n\n// TODO: in case of edit conflict\n// Prompt: Do you want to save over this? Y/N\n// Merging would be ideal, and may be possible using future generic merge flow\nPutSaver.prototype.save = function(text,method,callback) {\n\tif(!this.serverAcceptsPuts) {\n\t\treturn false;\n\t}\n\tvar self = this;\n\tvar headers = {\n\t\t\"Content-Type\": \"text/html;charset=UTF-8\"\n\t};\n\tif(this.etag) {\n\t\theaders[\"If-Match\"] = this.etag;\n\t}\n\t$tw.utils.httpRequest({\n\t\turl: this.uri(),\n\t\ttype: \"PUT\",\n\t\theaders: headers,\n\t\tdata: text,\n\t\tcallback: function(err,data,xhr) {\n\t\t\tif(err) {\n\t\t\t\t// response is textual: \"XMLHttpRequest error code: 412\"\n\t\t\t\tvar status = Number(err.substring(err.indexOf(':') + 2, err.length))\n\t\t\t\tif(status === 412) { // edit conflict\n\t\t\t\t\tvar message = $tw.language.getString(\"Error/EditConflict\");\n\t\t\t\t\tcallback(message);\n\t\t\t\t} else {\n\t\t\t\t\tcallback(err); // fail\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tself.etag = xhr.getResponseHeader(\"ETag\");\n\t\t\t\tif(self.etag == null) {\n\t\t\t\t\tretrieveETag(self);\n\t\t\t\t}\n\t\t\t\tcallback(null); // success\n\t\t\t}\n\t\t}\n\t});\n\treturn true;\n};\n\n/*\nInformation about this saver\n*/\nPutSaver.prototype.info = {\n\tname: \"put\",\n\tpriority: 2000,\n\tcapabilities: [\"save\",\"autosave\"]\n};\n\n/*\nStatic method that returns true if this saver is capable of working\n*/\nexports.canSave = function(wiki) {\n\treturn /^https?:/.test(location.protocol);\n};\n\n/*\nCreate an instance of this saver\n*/\nexports.create = function(wiki) {\n\treturn new PutSaver(wiki);\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "saver"
        },
        "$:/core/modules/savers/tiddlyfox.js": {
            "title": "$:/core/modules/savers/tiddlyfox.js",
            "text": "/*\\\ntitle: $:/core/modules/savers/tiddlyfox.js\ntype: application/javascript\nmodule-type: saver\n\nHandles saving changes via the TiddlyFox file extension\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false, netscape: false, Components: false */\n\"use strict\";\n\nvar TiddlyFoxSaver = function(wiki) {\n};\n\nTiddlyFoxSaver.prototype.save = function(text,method,callback) {\n\tvar messageBox = document.getElementById(\"tiddlyfox-message-box\");\n\tif(messageBox) {\n\t\t// Get the pathname of this document\n\t\tvar pathname = document.location.toString().split(\"#\")[0];\n\t\t// Replace file://localhost/ with file:///\n\t\tif(pathname.indexOf(\"file://localhost/\") === 0) {\n\t\t\tpathname = \"file://\" + pathname.substr(16);\n\t\t}\n\t\t// Windows path file:///x:/blah/blah --> x:\\blah\\blah\n\t\tif(/^file\\:\\/\\/\\/[A-Z]\\:\\//i.test(pathname)) {\n\t\t\t// Remove the leading slash and convert slashes to backslashes\n\t\t\tpathname = pathname.substr(8).replace(/\\//g,\"\\\\\");\n\t\t// Firefox Windows network path file://///server/share/blah/blah --> //server/share/blah/blah\n\t\t} else if(pathname.indexOf(\"file://///\") === 0) {\n\t\t\tpathname = \"\\\\\\\\\" + unescape(pathname.substr(10)).replace(/\\//g,\"\\\\\");\n\t\t// Mac/Unix local path file:///path/path --> /path/path\n\t\t} else if(pathname.indexOf(\"file:///\") === 0) {\n\t\t\tpathname = unescape(pathname.substr(7));\n\t\t// Mac/Unix local path file:/path/path --> /path/path\n\t\t} else if(pathname.indexOf(\"file:/\") === 0) {\n\t\t\tpathname = unescape(pathname.substr(5));\n\t\t// Otherwise Windows networth path file://server/share/path/path --> \\\\server\\share\\path\\path\n\t\t} else {\n\t\t\tpathname = \"\\\\\\\\\" + unescape(pathname.substr(7)).replace(new RegExp(\"/\",\"g\"),\"\\\\\");\n\t\t}\n\t\t// Create the message element and put it in the message box\n\t\tvar message = document.createElement(\"div\");\n\t\tmessage.setAttribute(\"data-tiddlyfox-path\",decodeURIComponent(pathname));\n\t\tmessage.setAttribute(\"data-tiddlyfox-content\",text);\n\t\tmessageBox.appendChild(message);\n\t\t// Add an event handler for when the file has been saved\n\t\tmessage.addEventListener(\"tiddlyfox-have-saved-file\",function(event) {\n\t\t\tcallback(null);\n\t\t}, false);\n\t\t// Create and dispatch the custom event to the extension\n\t\tvar event = document.createEvent(\"Events\");\n\t\tevent.initEvent(\"tiddlyfox-save-file\",true,false);\n\t\tmessage.dispatchEvent(event);\n\t\treturn true;\n\t} else {\n\t\treturn false;\n\t}\n};\n\n/*\nInformation about this saver\n*/\nTiddlyFoxSaver.prototype.info = {\n\tname: \"tiddlyfox\",\n\tpriority: 1500,\n\tcapabilities: [\"save\", \"autosave\"]\n};\n\n/*\nStatic method that returns true if this saver is capable of working\n*/\nexports.canSave = function(wiki) {\n\treturn true;\n};\n\n/*\nCreate an instance of this saver\n*/\nexports.create = function(wiki) {\n\treturn new TiddlyFoxSaver(wiki);\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "saver"
        },
        "$:/core/modules/savers/tiddlyie.js": {
            "title": "$:/core/modules/savers/tiddlyie.js",
            "text": "/*\\\ntitle: $:/core/modules/savers/tiddlyie.js\ntype: application/javascript\nmodule-type: saver\n\nHandles saving changes via Internet Explorer BHO extenion (TiddlyIE)\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nSelect the appropriate saver module and set it up\n*/\nvar TiddlyIESaver = function(wiki) {\n};\n\nTiddlyIESaver.prototype.save = function(text,method,callback) {\n\t// Check existence of TiddlyIE BHO extension (note: only works after document is complete)\n\tif(typeof(window.TiddlyIE) != \"undefined\") {\n\t\t// Get the pathname of this document\n\t\tvar pathname = unescape(document.location.pathname);\n\t\t// Test for a Windows path of the form /x:/blah...\n\t\tif(/^\\/[A-Z]\\:\\/[^\\/]+/i.test(pathname)) {\t// ie: ^/[a-z]:/[^/]+ (is this better?: ^/[a-z]:/[^/]+(/[^/]+)*\\.[^/]+ )\n\t\t\t// Remove the leading slash\n\t\t\tpathname = pathname.substr(1);\n\t\t\t// Convert slashes to backslashes\n\t\t\tpathname = pathname.replace(/\\//g,\"\\\\\");\n\t\t} else if(document.hostname !== \"\" && /^\\/[^\\/]+\\/[^\\/]+/i.test(pathname)) {\t// test for \\\\server\\share\\blah... - ^/[^/]+/[^/]+\n\t\t\t// Convert slashes to backslashes\n\t\t\tpathname = pathname.replace(/\\//g,\"\\\\\");\n\t\t\t// reconstruct UNC path\n\t\t\tpathname = \"\\\\\\\\\" + document.location.hostname + pathname;\n\t\t} else return false;\n\t\t// Prompt the user to save the file\n\t\twindow.TiddlyIE.save(pathname, text);\n\t\t// Callback that we succeeded\n\t\tcallback(null);\n\t\treturn true;\n\t} else {\n\t\treturn false;\n\t}\n};\n\n/*\nInformation about this saver\n*/\nTiddlyIESaver.prototype.info = {\n\tname: \"tiddlyiesaver\",\n\tpriority: 1500,\n\tcapabilities: [\"save\"]\n};\n\n/*\nStatic method that returns true if this saver is capable of working\n*/\nexports.canSave = function(wiki) {\n\treturn (window.location.protocol === \"file:\");\n};\n\n/*\nCreate an instance of this saver\n*/\nexports.create = function(wiki) {\n\treturn new TiddlyIESaver(wiki);\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "saver"
        },
        "$:/core/modules/savers/twedit.js": {
            "title": "$:/core/modules/savers/twedit.js",
            "text": "/*\\\ntitle: $:/core/modules/savers/twedit.js\ntype: application/javascript\nmodule-type: saver\n\nHandles saving changes via the TWEdit iOS app\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false, netscape: false, Components: false */\n\"use strict\";\n\nvar TWEditSaver = function(wiki) {\n};\n\nTWEditSaver.prototype.save = function(text,method,callback) {\n\t// Bail if we're not running under TWEdit\n\tif(typeof DeviceInfo !== \"object\") {\n\t\treturn false;\n\t}\n\t// Get the pathname of this document\n\tvar pathname = decodeURIComponent(document.location.pathname);\n\t// Strip any query or location part\n\tvar p = pathname.indexOf(\"?\");\n\tif(p !== -1) {\n\t\tpathname = pathname.substr(0,p);\n\t}\n\tp = pathname.indexOf(\"#\");\n\tif(p !== -1) {\n\t\tpathname = pathname.substr(0,p);\n\t}\n\t// Remove the leading \"/Documents\" from path\n\tvar prefix = \"/Documents\";\n\tif(pathname.indexOf(prefix) === 0) {\n\t\tpathname = pathname.substr(prefix.length);\n\t}\n\t// Error handler\n\tvar errorHandler = function(event) {\n\t\t// Error\n\t\tcallback($tw.language.getString(\"Error/SavingToTWEdit\") + \": \" + event.target.error.code);\n\t};\n\t// Get the file system\n\twindow.requestFileSystem(LocalFileSystem.PERSISTENT,0,function(fileSystem) {\n\t\t// Now we've got the filesystem, get the fileEntry\n\t\tfileSystem.root.getFile(pathname, {create: true}, function(fileEntry) {\n\t\t\t// Now we've got the fileEntry, create the writer\n\t\t\tfileEntry.createWriter(function(writer) {\n\t\t\t\twriter.onerror = errorHandler;\n\t\t\t\twriter.onwrite = function() {\n\t\t\t\t\tcallback(null);\n\t\t\t\t};\n\t\t\t\twriter.position = 0;\n\t\t\t\twriter.write(text);\n\t\t\t},errorHandler);\n\t\t}, errorHandler);\n\t}, errorHandler);\n\treturn true;\n};\n\n/*\nInformation about this saver\n*/\nTWEditSaver.prototype.info = {\n\tname: \"twedit\",\n\tpriority: 1600,\n\tcapabilities: [\"save\", \"autosave\"]\n};\n\n/*\nStatic method that returns true if this saver is capable of working\n*/\nexports.canSave = function(wiki) {\n\treturn true;\n};\n\n/*\nCreate an instance of this saver\n*/\nexports.create = function(wiki) {\n\treturn new TWEditSaver(wiki);\n};\n\n/////////////////////////// Hack\n// HACK: This ensures that TWEdit recognises us as a TiddlyWiki document\nif($tw.browser) {\n\twindow.version = {title: \"TiddlyWiki\"};\n}\n\n})();\n",
            "type": "application/javascript",
            "module-type": "saver"
        },
        "$:/core/modules/savers/upload.js": {
            "title": "$:/core/modules/savers/upload.js",
            "text": "/*\\\ntitle: $:/core/modules/savers/upload.js\ntype: application/javascript\nmodule-type: saver\n\nHandles saving changes via upload to a server.\n\nDesigned to be compatible with BidiX's UploadPlugin at http://tiddlywiki.bidix.info/#UploadPlugin\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nSelect the appropriate saver module and set it up\n*/\nvar UploadSaver = function(wiki) {\n\tthis.wiki = wiki;\n};\n\nUploadSaver.prototype.save = function(text,method,callback) {\n\t// Get the various parameters we need\n\tvar backupDir = this.wiki.getTextReference(\"$:/UploadBackupDir\") || \".\",\n\t\tusername = this.wiki.getTextReference(\"$:/UploadName\"),\n\t\tpassword = $tw.utils.getPassword(\"upload\"),\n\t\tuploadDir = this.wiki.getTextReference(\"$:/UploadDir\") || \".\",\n\t\tuploadFilename = this.wiki.getTextReference(\"$:/UploadFilename\") || \"index.html\",\n\t\turl = this.wiki.getTextReference(\"$:/UploadURL\");\n\t// Bail out if we don't have the bits we need\n\tif(!username || username.toString().trim() === \"\" || !password || password.toString().trim() === \"\") {\n\t\treturn false;\n\t}\n\t// Construct the url if not provided\n\tif(!url) {\n\t\turl = \"http://\" + username + \".tiddlyspot.com/store.cgi\";\n\t}\n\t// Assemble the header\n\tvar boundary = \"---------------------------\" + \"AaB03x\";\t\n\tvar uploadFormName = \"UploadPlugin\";\n\tvar head = [];\n\thead.push(\"--\" + boundary + \"\\r\\nContent-disposition: form-data; name=\\\"UploadPlugin\\\"\\r\\n\");\n\thead.push(\"backupDir=\" + backupDir + \";user=\" + username + \";password=\" + password + \";uploaddir=\" + uploadDir + \";;\"); \n\thead.push(\"\\r\\n\" + \"--\" + boundary);\n\thead.push(\"Content-disposition: form-data; name=\\\"userfile\\\"; filename=\\\"\" + uploadFilename + \"\\\"\");\n\thead.push(\"Content-Type: text/html;charset=UTF-8\");\n\thead.push(\"Content-Length: \" + text.length + \"\\r\\n\");\n\thead.push(\"\");\n\t// Assemble the tail and the data itself\n\tvar tail = \"\\r\\n--\" + boundary + \"--\\r\\n\",\n\t\tdata = head.join(\"\\r\\n\") + text + tail;\n\t// Do the HTTP post\n\tvar http = new XMLHttpRequest();\n\thttp.open(\"POST\",url,true,username,password);\n\thttp.setRequestHeader(\"Content-Type\",\"multipart/form-data; charset=UTF-8; boundary=\" + boundary);\n\thttp.onreadystatechange = function() {\n\t\tif(http.readyState == 4 && http.status == 200) {\n\t\t\tif(http.responseText.substr(0,4) === \"0 - \") {\n\t\t\t\tcallback(null);\n\t\t\t} else {\n\t\t\t\tcallback(http.responseText);\n\t\t\t}\n\t\t}\n\t};\n\ttry {\n\t\thttp.send(data);\n\t} catch(ex) {\n\t\treturn callback($tw.language.getString(\"Error/Caption\") + \":\" + ex);\n\t}\n\t$tw.notifier.display(\"$:/language/Notifications/Save/Starting\");\n\treturn true;\n};\n\n/*\nInformation about this saver\n*/\nUploadSaver.prototype.info = {\n\tname: \"upload\",\n\tpriority: 2000,\n\tcapabilities: [\"save\", \"autosave\"]\n};\n\n/*\nStatic method that returns true if this saver is capable of working\n*/\nexports.canSave = function(wiki) {\n\treturn true;\n};\n\n/*\nCreate an instance of this saver\n*/\nexports.create = function(wiki) {\n\treturn new UploadSaver(wiki);\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "saver"
        },
        "$:/core/modules/server/authenticators/basic.js": {
            "title": "$:/core/modules/server/authenticators/basic.js",
            "text": "/*\\\ntitle: $:/core/modules/server/authenticators/basic.js\ntype: application/javascript\nmodule-type: authenticator\n\nAuthenticator for WWW basic authentication\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nif($tw.node) {\n\tvar util = require(\"util\"),\n\t\tfs = require(\"fs\"),\n\t\turl = require(\"url\"),\n\t\tpath = require(\"path\");\n}\n\nfunction BasicAuthenticator(server) {\n\tthis.server = server;\n\tthis.credentialsData = [];\n}\n\n/*\nReturns true if the authenticator is active, false if it is inactive, or a string if there is an error\n*/\nBasicAuthenticator.prototype.init = function() {\n\t// Read the credentials data\n\tthis.credentialsFilepath = this.server.get(\"credentials\");\n\tif(this.credentialsFilepath) {\n\t\tvar resolveCredentialsFilepath = path.resolve(this.server.boot.wikiPath,this.credentialsFilepath);\n\t\tif(fs.existsSync(resolveCredentialsFilepath) && !fs.statSync(resolveCredentialsFilepath).isDirectory()) {\n\t\t\tvar credentialsText = fs.readFileSync(resolveCredentialsFilepath,\"utf8\"),\n\t\t\t\tcredentialsData = $tw.utils.parseCsvStringWithHeader(credentialsText);\n\t\t\tif(typeof credentialsData === \"string\") {\n\t\t\t\treturn \"Error: \" + credentialsData + \" reading credentials from '\" + resolveCredentialsFilepath + \"'\";\n\t\t\t} else {\n\t\t\t\tthis.credentialsData = credentialsData;\n\t\t\t}\n\t\t} else {\n\t\t\treturn \"Error: Unable to load user credentials from '\" + resolveCredentialsFilepath + \"'\";\n\t\t}\n\t}\n\t// Add the hardcoded username and password if specified\n\tif(this.server.get(\"username\") && this.server.get(\"password\")) {\n\t\tthis.credentialsData = this.credentialsData || [];\n\t\tthis.credentialsData.push({\n\t\t\tusername: this.server.get(\"username\"),\n\t\t\tpassword: this.server.get(\"password\")\n\t\t});\n\t}\n\treturn this.credentialsData.length > 0;\n};\n\n/*\nReturns true if the request is authenticated and assigns the \"authenticatedUsername\" state variable.\nReturns false if the request couldn't be authenticated having sent an appropriate response to the browser\n*/\nBasicAuthenticator.prototype.authenticateRequest = function(request,response,state) {\n\t// Extract the incoming username and password from the request\n\tvar header = request.headers.authorization || \"\";\n\tif(!header && state.allowAnon) {\n\t\t// If there's no header and anonymous access is allowed then we don't set authenticatedUsername\n\t\treturn true;\n\t}\n\tvar token = header.split(/\\s+/).pop() || \"\",\n\t\tauth = $tw.utils.base64Decode(token),\n\t\tparts = auth.split(/:/),\n\t\tincomingUsername = parts[0],\n\t\tincomingPassword = parts[1];\n\t// Check that at least one of the credentials matches\n\tvar matchingCredentials = this.credentialsData.find(function(credential) {\n\t\treturn credential.username === incomingUsername && credential.password === incomingPassword;\n\t});\n\tif(matchingCredentials) {\n\t\t// If so, add the authenticated username to the request state\n\t\tstate.authenticatedUsername = incomingUsername;\n\t\treturn true;\n\t} else {\n\t\t// If not, return an authentication challenge\n\t\tresponse.writeHead(401,\"Authentication required\",{\n\t\t\t\"WWW-Authenticate\": 'Basic realm=\"Please provide your username and password to login to ' + state.server.servername + '\"'\n\t\t});\n\t\tresponse.end();\n\t\treturn false;\n\t}\n};\n\nexports.AuthenticatorClass = BasicAuthenticator;\n\n})();\n",
            "type": "application/javascript",
            "module-type": "authenticator"
        },
        "$:/core/modules/server/authenticators/header.js": {
            "title": "$:/core/modules/server/authenticators/header.js",
            "text": "/*\\\ntitle: $:/core/modules/server/authenticators/header.js\ntype: application/javascript\nmodule-type: authenticator\n\nAuthenticator for trusted header authentication\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nfunction HeaderAuthenticator(server) {\n\tthis.server = server;\n\tthis.header = server.get(\"authenticated-user-header\") ? server.get(\"authenticated-user-header\").toLowerCase() : undefined;\n}\n\n/*\nReturns true if the authenticator is active, false if it is inactive, or a string if there is an error\n*/\nHeaderAuthenticator.prototype.init = function() {\n\treturn !!this.header;\n};\n\n/*\nReturns true if the request is authenticated and assigns the \"authenticatedUsername\" state variable.\nReturns false if the request couldn't be authenticated having sent an appropriate response to the browser\n*/\nHeaderAuthenticator.prototype.authenticateRequest = function(request,response,state) {\n\t// Otherwise, authenticate as the username in the specified header\n\tvar username = request.headers[this.header];\n\tif(!username && !state.allowAnon) {\n\t\tresponse.writeHead(401,\"Authorization header required to login to '\" + state.server.servername + \"'\");\n\t\tresponse.end();\n\t\treturn false;\n\t} else {\n\t\t// authenticatedUsername will be undefined for anonymous users\n\t\tstate.authenticatedUsername = username;\n\t\treturn true;\n\t}\n};\n\nexports.AuthenticatorClass = HeaderAuthenticator;\n\n})();\n",
            "type": "application/javascript",
            "module-type": "authenticator"
        },
        "$:/core/modules/server/routes/delete-tiddler.js": {
            "title": "$:/core/modules/server/routes/delete-tiddler.js",
            "text": "/*\\\ntitle: $:/core/modules/server/routes/delete-tiddler.js\ntype: application/javascript\nmodule-type: route\n\nDELETE /recipes/default/tiddlers/:title\n\n\\*/\n(function() {\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.method = \"DELETE\";\n\nexports.path = /^\\/bags\\/default\\/tiddlers\\/(.+)$/;\n\nexports.handler = function(request,response,state) {\n\tvar title = decodeURIComponent(state.params[0]);\n\tstate.wiki.deleteTiddler(title);\n\tresponse.writeHead(204, \"OK\", {\n\t\t\"Content-Type\": \"text/plain\"\n\t});\n\tresponse.end();\n};\n\n}());\n",
            "type": "application/javascript",
            "module-type": "route"
        },
        "$:/core/modules/server/routes/get-favicon.js": {
            "title": "$:/core/modules/server/routes/get-favicon.js",
            "text": "/*\\\ntitle: $:/core/modules/server/routes/get-favicon.js\ntype: application/javascript\nmodule-type: route\n\nGET /favicon.ico\n\n\\*/\n(function() {\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.method = \"GET\";\n\nexports.path = /^\\/favicon.ico$/;\n\nexports.handler = function(request,response,state) {\n\tresponse.writeHead(200, {\"Content-Type\": \"image/x-icon\"});\n\tvar buffer = state.wiki.getTiddlerText(\"$:/favicon.ico\",\"\");\n\tresponse.end(buffer,\"base64\");\n};\n\n}());\n",
            "type": "application/javascript",
            "module-type": "route"
        },
        "$:/core/modules/server/routes/get-file.js": {
            "title": "$:/core/modules/server/routes/get-file.js",
            "text": "/*\\\ntitle: $:/core/modules/server/routes/get-file.js\ntype: application/javascript\nmodule-type: route\n\nGET /files/:filepath\n\n\\*/\n(function() {\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.method = \"GET\";\n\nexports.path = /^\\/files\\/(.+)$/;\n\nexports.handler = function(request,response,state) {\n\tvar path = require(\"path\"),\n\t\tfs = require(\"fs\"),\n\t\tutil = require(\"util\"),\n\t\tsuppliedFilename = decodeURIComponent(state.params[0]),\n\t\tfilename = path.resolve(state.boot.wikiPath,\"files\",suppliedFilename),\n\t\textension = path.extname(filename);\n\tfs.readFile(filename,function(err,content) {\n\t\tvar status,content,type = \"text/plain\";\n\t\tif(err) {\n\t\t\tconsole.log(\"Error accessing file \" + filename + \": \" + err.toString());\n\t\t\tstatus = 404;\n\t\t\tcontent = \"File '\" + suppliedFilename + \"' not found\";\n\t\t} else {\n\t\t\tstatus = 200;\n\t\t\tcontent = content;\n\t\t\ttype = ($tw.config.fileExtensionInfo[extension] ? $tw.config.fileExtensionInfo[extension].type : \"application/octet-stream\");\n\t\t}\n\t\tresponse.writeHead(status,{\n\t\t\t\"Content-Type\": type\n\t\t});\n\t\tresponse.end(content);\n\t});\n};\n\n}());\n",
            "type": "application/javascript",
            "module-type": "route"
        },
        "$:/core/modules/server/routes/get-index.js": {
            "title": "$:/core/modules/server/routes/get-index.js",
            "text": "/*\\\ntitle: $:/core/modules/server/routes/get-index.js\ntype: application/javascript\nmodule-type: route\n\nGET /\n\n\\*/\n(function() {\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar zlib = require(\"zlib\");\n\nexports.method = \"GET\";\n\nexports.path = /^\\/$/;\n\nexports.handler = function(request,response,state) {\n\tvar acceptEncoding = request.headers[\"accept-encoding\"];\n\tif(!acceptEncoding) {\n\t\tacceptEncoding = \"\";\n\t}\n\tvar text = state.wiki.renderTiddler(state.server.get(\"root-render-type\"),state.server.get(\"root-tiddler\")),\n\t\tresponseHeaders = {\n\t\t\"Content-Type\": state.server.get(\"root-serve-type\")\n\t};\n\t/*\n\tIf the gzip=yes flag for `listen` is set, check if the user agent permits\n\tcompression. If so, compress our response. Note that we use the synchronous\n\tfunctions from zlib to stay in the imperative style. The current `Server`\n\tdoesn't depend on this, and we may just as well use the async versions.\n\t*/\n\tif(state.server.enableGzip) {\n\t\tif (/\\bdeflate\\b/.test(acceptEncoding)) {\n\t\t\tresponseHeaders[\"Content-Encoding\"] = \"deflate\";\n\t\t\ttext = zlib.deflateSync(text);\n\t\t} else if (/\\bgzip\\b/.test(acceptEncoding)) {\n\t\t\tresponseHeaders[\"Content-Encoding\"] = \"gzip\";\n\t\t\ttext = zlib.gzipSync(text);\n\t\t}\n\t}\n\tresponse.writeHead(200,responseHeaders);\n\tresponse.end(text);\n};\n\n}());\n",
            "type": "application/javascript",
            "module-type": "route"
        },
        "$:/core/modules/server/routes/get-login-basic.js": {
            "title": "$:/core/modules/server/routes/get-login-basic.js",
            "text": "/*\\\ntitle: $:/core/modules/server/routes/get-login-basic.js\ntype: application/javascript\nmodule-type: route\n\nGET /login-basic -- force a Basic Authentication challenge\n\n\\*/\n(function() {\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.method = \"GET\";\n\nexports.path = /^\\/login-basic$/;\n\nexports.handler = function(request,response,state) {\n\tif(!state.authenticatedUsername) {\n\t\t// Challenge if there's no username\n\t\tresponse.writeHead(401,{\n\t\t\t\"WWW-Authenticate\": 'Basic realm=\"Please provide your username and password to login to ' + state.server.servername + '\"'\n\t\t});\n\t\tresponse.end();\t\t\n\t} else {\n\t\t// Redirect to the root wiki if login worked\n\t\tresponse.writeHead(302,{\n\t\t\tLocation: \"/\"\n\t\t});\n\t\tresponse.end();\n\t}\n};\n\n}());\n",
            "type": "application/javascript",
            "module-type": "route"
        },
        "$:/core/modules/server/routes/get-status.js": {
            "title": "$:/core/modules/server/routes/get-status.js",
            "text": "/*\\\ntitle: $:/core/modules/server/routes/get-status.js\ntype: application/javascript\nmodule-type: route\n\nGET /status\n\n\\*/\n(function() {\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.method = \"GET\";\n\nexports.path = /^\\/status$/;\n\nexports.handler = function(request,response,state) {\n\tresponse.writeHead(200, {\"Content-Type\": \"application/json\"});\n\tvar text = JSON.stringify({\n\t\tusername: state.authenticatedUsername || state.server.get(\"anon-username\") || \"\",\n\t\tanonymous: !state.authenticatedUsername,\n\t\tread_only: !state.server.isAuthorized(\"writers\",state.authenticatedUsername),\n\t\tspace: {\n\t\t\trecipe: \"default\"\n\t\t},\n\t\ttiddlywiki_version: $tw.version\n\t});\n\tresponse.end(text,\"utf8\");\n};\n\n}());\n",
            "type": "application/javascript",
            "module-type": "route"
        },
        "$:/core/modules/server/routes/get-tiddler-html.js": {
            "title": "$:/core/modules/server/routes/get-tiddler-html.js",
            "text": "/*\\\ntitle: $:/core/modules/server/routes/get-tiddler-html.js\ntype: application/javascript\nmodule-type: route\n\nGET /:title\n\n\\*/\n(function() {\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.method = \"GET\";\n\nexports.path = /^\\/([^\\/]+)$/;\n\nexports.handler = function(request,response,state) {\n\tvar title = decodeURIComponent(state.params[0]),\n\t\ttiddler = state.wiki.getTiddler(title);\n\tif(tiddler) {\n\t\tvar renderType = tiddler.getFieldString(\"_render_type\"),\n\t\t\trenderTemplate = tiddler.getFieldString(\"_render_template\");\n\t\t// Tiddler fields '_render_type' and '_render_template' overwrite\n\t\t// system wide settings for render type and template\n\t\tif(state.wiki.isSystemTiddler(title)) {\n\t\t\trenderType = renderType || state.server.get(\"system-tiddler-render-type\");\n\t\t\trenderTemplate = renderTemplate || state.server.get(\"system-tiddler-render-template\");\n\t\t} else {\n\t\t\trenderType = renderType || state.server.get(\"tiddler-render-type\");\n\t\t\trenderTemplate = renderTemplate || state.server.get(\"tiddler-render-template\");\n\t\t}\n\t\tvar text = state.wiki.renderTiddler(renderType,renderTemplate,{parseAsInline: true, variables: {currentTiddler: title}});\n\t\t// Naughty not to set a content-type, but it's the easiest way to ensure the browser will see HTML pages as HTML, and accept plain text tiddlers as CSS or JS\n\t\tresponse.writeHead(200);\n\t\tresponse.end(text,\"utf8\");\n\t} else {\n\t\tresponse.writeHead(404);\n\t\tresponse.end();\n\t}\n};\n\n}());\n",
            "type": "application/javascript",
            "module-type": "route"
        },
        "$:/core/modules/server/routes/get-tiddler.js": {
            "title": "$:/core/modules/server/routes/get-tiddler.js",
            "text": "/*\\\ntitle: $:/core/modules/server/routes/get-tiddler.js\ntype: application/javascript\nmodule-type: route\n\nGET /recipes/default/tiddlers/:title\n\n\\*/\n(function() {\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.method = \"GET\";\n\nexports.path = /^\\/recipes\\/default\\/tiddlers\\/(.+)$/;\n\nexports.handler = function(request,response,state) {\n\tvar title = decodeURIComponent(state.params[0]),\n\t\ttiddler = state.wiki.getTiddler(title),\n\t\ttiddlerFields = {},\n\t\tknownFields = [\n\t\t\t\"bag\", \"created\", \"creator\", \"modified\", \"modifier\", \"permissions\", \"recipe\", \"revision\", \"tags\", \"text\", \"title\", \"type\", \"uri\"\n\t\t];\n\tif(tiddler) {\n\t\t$tw.utils.each(tiddler.fields,function(field,name) {\n\t\t\tvar value = tiddler.getFieldString(name);\n\t\t\tif(knownFields.indexOf(name) !== -1) {\n\t\t\t\ttiddlerFields[name] = value;\n\t\t\t} else {\n\t\t\t\ttiddlerFields.fields = tiddlerFields.fields || {};\n\t\t\t\ttiddlerFields.fields[name] = value;\n\t\t\t}\n\t\t});\n\t\ttiddlerFields.revision = state.wiki.getChangeCount(title);\n\t\ttiddlerFields.bag = \"default\";\n\t\ttiddlerFields.type = tiddlerFields.type || \"text/vnd.tiddlywiki\";\n\t\tresponse.writeHead(200, {\"Content-Type\": \"application/json\"});\n\t\tresponse.end(JSON.stringify(tiddlerFields),\"utf8\");\n\t} else {\n\t\tresponse.writeHead(404);\n\t\tresponse.end();\n\t}\n};\n\n}());\n",
            "type": "application/javascript",
            "module-type": "route"
        },
        "$:/core/modules/server/routes/get-tiddlers-json.js": {
            "title": "$:/core/modules/server/routes/get-tiddlers-json.js",
            "text": "/*\\\ntitle: $:/core/modules/server/routes/get-tiddlers-json.js\ntype: application/javascript\nmodule-type: route\n\nGET /recipes/default/tiddlers.json?filter=<filter>\n\n\\*/\n(function() {\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar DEFAULT_FILTER = \"[all[tiddlers]!is[system]sort[title]]\";\n\nexports.method = \"GET\";\n\nexports.path = /^\\/recipes\\/default\\/tiddlers.json$/;\n\nexports.handler = function(request,response,state) {\n\tvar filter = state.queryParameters.filter || DEFAULT_FILTER;\n\tif(state.wiki.getTiddlerText(\"$:/config/Server/AllowAllExternalFilters\") !== \"yes\") {\n\t\tif(state.wiki.getTiddlerText(\"$:/config/Server/ExternalFilters/\" + filter) !== \"yes\") {\n\t\t\tconsole.log(\"Blocked attempt to GET /recipes/default/tiddlers.json with filter: \" + filter);\n\t\t\tresponse.writeHead(403);\n\t\t\tresponse.end();\n\t\t\treturn;\n\t\t}\n\t}\n\tif(state.wiki.getTiddlerText(\"$:/config/SyncSystemTiddlersFromServer\") === \"no\") {\n\t\tfilter += \"+[!is[system]]\";\n\t}\n\tvar excludeFields = (state.queryParameters.exclude || \"text\").split(\",\"),\n\t\ttitles = state.wiki.filterTiddlers(filter);\n\tresponse.writeHead(200, {\"Content-Type\": \"application/json\"});\n\tvar tiddlers = [];\n\t$tw.utils.each(titles,function(title) {\n\t\tvar tiddler = state.wiki.getTiddler(title);\n\t\tif(tiddler) {\n\t\t\tvar tiddlerFields = tiddler.getFieldStrings({exclude: excludeFields});\n\t\t\ttiddlerFields.revision = state.wiki.getChangeCount(title);\n\t\t\ttiddlerFields.type = tiddlerFields.type || \"text/vnd.tiddlywiki\";\n\t\t\ttiddlers.push(tiddlerFields);\n\t\t}\n\t});\n\tvar text = JSON.stringify(tiddlers);\n\tresponse.end(text,\"utf8\");\n};\n\n}());\n",
            "type": "application/javascript",
            "module-type": "route"
        },
        "$:/core/modules/server/routes/put-tiddler.js": {
            "title": "$:/core/modules/server/routes/put-tiddler.js",
            "text": "/*\\\ntitle: $:/core/modules/server/routes/put-tiddler.js\ntype: application/javascript\nmodule-type: route\n\nPUT /recipes/default/tiddlers/:title\n\n\\*/\n(function() {\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.method = \"PUT\";\n\nexports.path = /^\\/recipes\\/default\\/tiddlers\\/(.+)$/;\n\nexports.handler = function(request,response,state) {\n\tvar title = decodeURIComponent(state.params[0]),\n\tfields = JSON.parse(state.data);\n\t// Pull up any subfields in the `fields` object\n\tif(fields.fields) {\n\t\t$tw.utils.each(fields.fields,function(field,name) {\n\t\t\tfields[name] = field;\n\t\t});\n\t\tdelete fields.fields;\n\t}\n\t// Remove any revision field\n\tif(fields.revision) {\n\t\tdelete fields.revision;\n\t}\n\tstate.wiki.addTiddler(new $tw.Tiddler(state.wiki.getCreationFields(),fields,{title: title},state.wiki.getModificationFields()));\n\tvar changeCount = state.wiki.getChangeCount(title).toString();\n\tresponse.writeHead(204, \"OK\",{\n\t\tEtag: \"\\\"default/\" + encodeURIComponent(title) + \"/\" + changeCount + \":\\\"\",\n\t\t\"Content-Type\": \"text/plain\"\n\t});\n\tresponse.end();\n};\n\n}());\n",
            "type": "application/javascript",
            "module-type": "route"
        },
        "$:/core/modules/server/server.js": {
            "title": "$:/core/modules/server/server.js",
            "text": "/*\\\ntitle: $:/core/modules/server/server.js\ntype: application/javascript\nmodule-type: library\n\nServe tiddlers over http\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nif($tw.node) {\n\tvar util = require(\"util\"),\n\t\tfs = require(\"fs\"),\n\t\turl = require(\"url\"),\n\t\tpath = require(\"path\"),\n\t\tquerystring = require(\"querystring\");\n}\n\n/*\nA simple HTTP server with regexp-based routes\noptions: variables - optional hashmap of variables to set (a misnomer - they are really constant parameters)\n\t\t routes - optional array of routes to use\n\t\t wiki - reference to wiki object\n*/\nfunction Server(options) {\n\tvar self = this;\n\tthis.routes = options.routes || [];\n\tthis.authenticators = options.authenticators || [];\n\tthis.wiki = options.wiki;\n\tthis.boot = options.boot || $tw.boot;\n\tthis.servername = $tw.utils.transliterateToSafeASCII(this.wiki.getTiddlerText(\"$:/SiteTitle\") || \"TiddlyWiki5\");\n\t// Initialise the variables\n\tthis.variables = $tw.utils.extend({},this.defaultVariables);\n\tif(options.variables) {\n\t\tfor(var variable in options.variables) {\n\t\t\tif(options.variables[variable]) {\n\t\t\t\tthis.variables[variable] = options.variables[variable];\n\t\t\t}\n\t\t}\t\t\n\t}\n\t$tw.utils.extend({},this.defaultVariables,options.variables);\n\t// Initialise CSRF\n\tthis.csrfDisable = this.get(\"csrf-disable\") === \"yes\";\n\t// Initialize Gzip compression\n\tthis.enableGzip = this.get(\"gzip\") === \"yes\";\n\t// Initialise authorization\n\tvar authorizedUserName = (this.get(\"username\") && this.get(\"password\")) ? this.get(\"username\") : \"(anon)\";\n\tthis.authorizationPrincipals = {\n\t\treaders: (this.get(\"readers\") || authorizedUserName).split(\",\").map($tw.utils.trim),\n\t\twriters: (this.get(\"writers\") || authorizedUserName).split(\",\").map($tw.utils.trim)\n\t}\n\t// Load and initialise authenticators\n\t$tw.modules.forEachModuleOfType(\"authenticator\", function(title,authenticatorDefinition) {\n\t\t// console.log(\"Loading server route \" + title);\n\t\tself.addAuthenticator(authenticatorDefinition.AuthenticatorClass);\n\t});\n\t// Load route handlers\n\t$tw.modules.forEachModuleOfType(\"route\", function(title,routeDefinition) {\n\t\t// console.log(\"Loading server route \" + title);\n\t\tself.addRoute(routeDefinition);\n\t});\n\t// Initialise the http vs https\n\tthis.listenOptions = null;\n\tthis.protocol = \"http\";\n\tvar tlsKeyFilepath = this.get(\"tls-key\"),\n\t\ttlsCertFilepath = this.get(\"tls-cert\");\n\tif(tlsCertFilepath && tlsKeyFilepath) {\n\t\tthis.listenOptions = {\n\t\t\tkey: fs.readFileSync(path.resolve(this.boot.wikiPath,tlsKeyFilepath),\"utf8\"),\n\t\t\tcert: fs.readFileSync(path.resolve(this.boot.wikiPath,tlsCertFilepath),\"utf8\")\n\t\t};\n\t\tthis.protocol = \"https\";\n\t}\n\tthis.transport = require(this.protocol);\n}\n\nServer.prototype.defaultVariables = {\n\tport: \"8080\",\n\thost: \"127.0.0.1\",\n\t\"root-tiddler\": \"$:/core/save/all\",\n\t\"root-render-type\": \"text/plain\",\n\t\"root-serve-type\": \"text/html\",\n\t\"tiddler-render-type\": \"text/html\",\n\t\"tiddler-render-template\": \"$:/core/templates/server/static.tiddler.html\",\n\t\"system-tiddler-render-type\": \"text/plain\",\n\t\"system-tiddler-render-template\": \"$:/core/templates/wikified-tiddler\",\n\t\"debug-level\": \"none\",\n\t\"gzip\": \"no\"\n};\n\nServer.prototype.get = function(name) {\n\treturn this.variables[name];\n};\n\nServer.prototype.addRoute = function(route) {\n\tthis.routes.push(route);\n};\n\nServer.prototype.addAuthenticator = function(AuthenticatorClass) {\n\t// Instantiate and initialise the authenticator\n\tvar authenticator = new AuthenticatorClass(this),\n\t\tresult = authenticator.init();\n\tif(typeof result === \"string\") {\n\t\t$tw.utils.error(\"Error: \" + result);\n\t} else if(result) {\n\t\t// Only use the authenticator if it initialised successfully\n\t\tthis.authenticators.push(authenticator);\n\t}\n};\n\nServer.prototype.findMatchingRoute = function(request,state) {\n\tfor(var t=0; t<this.routes.length; t++) {\n\t\tvar potentialRoute = this.routes[t],\n\t\t\tpathRegExp = potentialRoute.path,\n\t\t\tpathname = state.urlInfo.pathname,\n\t\t\tmatch;\n\t\tif(state.pathPrefix) {\n\t\t\tif(pathname.substr(0,state.pathPrefix.length) === state.pathPrefix) {\n\t\t\t\tpathname = pathname.substr(state.pathPrefix.length) || \"/\";\n\t\t\t\tmatch = potentialRoute.path.exec(pathname);\n\t\t\t} else {\n\t\t\t\tmatch = false;\n\t\t\t}\n\t\t} else {\n\t\t\tmatch = potentialRoute.path.exec(pathname);\n\t\t}\n\t\tif(match && request.method === potentialRoute.method) {\n\t\t\tstate.params = [];\n\t\t\tfor(var p=1; p<match.length; p++) {\n\t\t\t\tstate.params.push(match[p]);\n\t\t\t}\n\t\t\treturn potentialRoute;\n\t\t}\n\t}\n\treturn null;\n};\n\nServer.prototype.methodMappings = {\n\t\"GET\": \"readers\",\n\t\"OPTIONS\": \"readers\",\n\t\"HEAD\": \"readers\",\n\t\"PUT\": \"writers\",\n\t\"POST\": \"writers\",\n\t\"DELETE\": \"writers\"\n};\n\n/*\nCheck whether a given user is authorized for the specified authorizationType (\"readers\" or \"writers\"). Pass null or undefined as the username to check for anonymous access\n*/\nServer.prototype.isAuthorized = function(authorizationType,username) {\n\tvar principals = this.authorizationPrincipals[authorizationType] || [];\n\treturn principals.indexOf(\"(anon)\") !== -1 || (username && (principals.indexOf(\"(authenticated)\") !== -1 || principals.indexOf(username) !== -1));\n}\n\nServer.prototype.requestHandler = function(request,response,options) {\n\toptions = options || {};\n\t// Compose the state object\n\tvar self = this;\n\tvar state = {};\n\tstate.wiki = options.wiki || self.wiki;\n\tstate.boot = options.boot || self.boot;\n\tstate.server = self;\n\tstate.urlInfo = url.parse(request.url);\n\tstate.queryParameters = querystring.parse(state.urlInfo.query);\n\tstate.pathPrefix = options.pathPrefix || this.get(\"path-prefix\") || \"\";\n\t// Get the principals authorized to access this resource\n\tvar authorizationType = this.methodMappings[request.method] || \"readers\";\n\t// Check for the CSRF header if this is a write\n\tif(!this.csrfDisable && authorizationType === \"writers\" && request.headers[\"x-requested-with\"] !== \"TiddlyWiki\") {\n\t\tresponse.writeHead(403,\"'X-Requested-With' header required to login to '\" + this.servername + \"'\");\n\t\tresponse.end();\n\t\treturn;\t\t\n\t}\n\t// Check whether anonymous access is granted\n\tstate.allowAnon = this.isAuthorized(authorizationType,null);\n\t// Authenticate with the first active authenticator\n\tif(this.authenticators.length > 0) {\n\t\tif(!this.authenticators[0].authenticateRequest(request,response,state)) {\n\t\t\t// Bail if we failed (the authenticator will have sent the response)\n\t\t\treturn;\n\t\t}\t\t\n\t}\n\t// Authorize with the authenticated username\n\tif(!this.isAuthorized(authorizationType,state.authenticatedUsername)) {\n\t\tresponse.writeHead(401,\"'\" + state.authenticatedUsername + \"' is not authorized to access '\" + this.servername + \"'\");\n\t\tresponse.end();\n\t\treturn;\n\t}\n\t// Find the route that matches this path\n\tvar route = self.findMatchingRoute(request,state);\n\t// Optionally output debug info\n\tif(self.get(\"debug-level\") !== \"none\") {\n\t\tconsole.log(\"Request path:\",JSON.stringify(state.urlInfo));\n\t\tconsole.log(\"Request headers:\",JSON.stringify(request.headers));\n\t\tconsole.log(\"authenticatedUsername:\",state.authenticatedUsername);\n\t}\n\t// Return a 404 if we didn't find a route\n\tif(!route) {\n\t\tresponse.writeHead(404);\n\t\tresponse.end();\n\t\treturn;\n\t}\n\t// Receive the request body if necessary and hand off to the route handler\n\tif(route.bodyFormat === \"stream\" || request.method === \"GET\" || request.method === \"HEAD\") {\n\t\t// Let the route handle the request stream itself\n\t\troute.handler(request,response,state);\n\t} else if(route.bodyFormat === \"string\" || !route.bodyFormat) {\n\t\t// Set the encoding for the incoming request\n\t\trequest.setEncoding(\"utf8\");\n\t\tvar data = \"\";\n\t\trequest.on(\"data\",function(chunk) {\n\t\t\tdata += chunk.toString();\n\t\t});\n\t\trequest.on(\"end\",function() {\n\t\t\tstate.data = data;\n\t\t\troute.handler(request,response,state);\n\t\t});\n\t} else if(route.bodyFormat === \"buffer\") {\n\t\tvar data = [];\n\t\trequest.on(\"data\",function(chunk) {\n\t\t\tdata.push(chunk);\n\t\t});\n\t\trequest.on(\"end\",function() {\n\t\t\tstate.data = Buffer.concat(data);\n\t\t\troute.handler(request,response,state);\n\t\t})\n\t} else {\n\t\tresponse.writeHead(400,\"Invalid bodyFormat \" + route.bodyFormat + \" in route \" + route.method + \" \" + route.path.source);\n\t\tresponse.end();\n\t}\n};\n\n/*\nListen for requests\nport: optional port number (falls back to value of \"port\" variable)\nhost: optional host address (falls back to value of \"host\" variable)\nprefix: optional prefix (falls back to value of \"path-prefix\" variable)\n*/\nServer.prototype.listen = function(port,host,prefix) {\n\tvar self = this;\n\t// Handle defaults for port and host\n\tport = port || this.get(\"port\");\n\thost = host || this.get(\"host\");\n\tprefix = prefix || this.get(\"path-prefix\") || \"\";\n\t// Check for the port being a string and look it up as an environment variable\n\tif(parseInt(port,10).toString() !== port) {\n\t\tport = process.env[port] || 8080;\n\t}\n\t// Warn if required plugins are missing\n\tif(!this.wiki.getTiddler(\"$:/plugins/tiddlywiki/tiddlyweb\") || !this.wiki.getTiddler(\"$:/plugins/tiddlywiki/filesystem\")) {\n\t\t$tw.utils.warning(\"Warning: Plugins required for client-server operation (\\\"tiddlywiki/filesystem\\\" and \\\"tiddlywiki/tiddlyweb\\\") are missing from tiddlywiki.info file\");\n\t}\n\t// Create the server\n\tvar server;\n\tif(this.listenOptions) {\n\t\tserver = this.transport.createServer(this.listenOptions,this.requestHandler.bind(this));\n\t} else {\n\t\tserver = this.transport.createServer(this.requestHandler.bind(this));\n\t}\n\t// Display the port number after we've started listening (the port number might have been specified as zero, in which case we will get an assigned port)\n\tserver.on(\"listening\",function() {\n\t\tvar address = server.address();\n\t\t$tw.utils.log(\"Serving on \" + self.protocol + \"://\" + address.address + \":\" + address.port + prefix,\"brown/orange\");\n\t\t$tw.utils.log(\"(press ctrl-C to exit)\",\"red\");\n\t});\n\t// Listen\n\treturn server.listen(port,host);\n};\n\nexports.Server = Server;\n\n})();\n",
            "type": "application/javascript",
            "module-type": "library"
        },
        "$:/core/modules/browser-messaging.js": {
            "title": "$:/core/modules/browser-messaging.js",
            "text": "/*\\\ntitle: $:/core/modules/browser-messaging.js\ntype: application/javascript\nmodule-type: startup\n\nBrowser message handling\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n// Export name and synchronous status\nexports.name = \"browser-messaging\";\nexports.platforms = [\"browser\"];\nexports.after = [\"startup\"];\nexports.synchronous = true;\n\n/*\nLoad a specified url as an iframe and call the callback when it is loaded. If the url is already loaded then the existing iframe instance is used\n*/\nfunction loadIFrame(url,callback) {\n\t// Check if iframe already exists\n\tvar iframeInfo = $tw.browserMessaging.iframeInfoMap[url];\n\tif(iframeInfo) {\n\t\t// We've already got the iframe\n\t\tcallback(null,iframeInfo);\n\t} else {\n\t\t// Create the iframe and save it in the list\n\t\tvar iframe = document.createElement(\"iframe\");\n\t\tiframeInfo = {\n\t\t\turl: url,\n\t\t\tstatus: \"loading\",\n\t\t\tdomNode: iframe\n\t\t};\n\t\t$tw.browserMessaging.iframeInfoMap[url] = iframeInfo;\n\t\tsaveIFrameInfoTiddler(iframeInfo);\n\t\t// Add the iframe to the DOM and hide it\n\t\tiframe.style.display = \"none\";\n\t\tiframe.setAttribute(\"library\",\"true\");\n\t\tdocument.body.appendChild(iframe);\n\t\t// Set up onload\n\t\tiframe.onload = function() {\n\t\t\tiframeInfo.status = \"loaded\";\n\t\t\tsaveIFrameInfoTiddler(iframeInfo);\n\t\t\tcallback(null,iframeInfo);\n\t\t};\n\t\tiframe.onerror = function() {\n\t\t\tcallback(\"Cannot load iframe\");\n\t\t};\n\t\ttry {\n\t\t\tiframe.src = url;\n\t\t} catch(ex) {\n\t\t\tcallback(ex);\n\t\t}\n\t}\n}\n\n/*\nUnload library iframe for given url\n*/\nfunction unloadIFrame(url){\n\t$tw.utils.each(document.getElementsByTagName('iframe'), function(iframe) {\n\t\tif(iframe.getAttribute(\"library\") === \"true\" &&\n\t\t  iframe.getAttribute(\"src\") === url) {\n\t\t\tiframe.parentNode.removeChild(iframe);\n\t\t}\n\t});\n}\n\nfunction saveIFrameInfoTiddler(iframeInfo) {\n\t$tw.wiki.addTiddler(new $tw.Tiddler($tw.wiki.getCreationFields(),{\n\t\ttitle: \"$:/temp/ServerConnection/\" + iframeInfo.url,\n\t\ttext: iframeInfo.status,\n\t\ttags: [\"$:/tags/ServerConnection\"],\n\t\turl: iframeInfo.url\n\t},$tw.wiki.getModificationFields()));\n}\n\nexports.startup = function() {\n\t// Initialise the store of iframes we've created\n\t$tw.browserMessaging = {\n\t\tiframeInfoMap: {} // Hashmap by URL of {url:,status:\"loading/loaded\",domNode:}\n\t};\n\t// Listen for widget messages to control loading the plugin library\n\t$tw.rootWidget.addEventListener(\"tm-load-plugin-library\",function(event) {\n\t\tvar paramObject = event.paramObject || {},\n\t\t\turl = paramObject.url;\n\t\tif(url) {\n\t\t\tloadIFrame(url,function(err,iframeInfo) {\n\t\t\t\tif(err) {\n\t\t\t\t\talert($tw.language.getString(\"Error/LoadingPluginLibrary\") + \": \" + url);\n\t\t\t\t} else {\n\t\t\t\t\tiframeInfo.domNode.contentWindow.postMessage({\n\t\t\t\t\t\tverb: \"GET\",\n\t\t\t\t\t\turl: \"recipes/library/tiddlers.json\",\n\t\t\t\t\t\tcookies: {\n\t\t\t\t\t\t\ttype: \"save-info\",\n\t\t\t\t\t\t\tinfoTitlePrefix: paramObject.infoTitlePrefix || \"$:/temp/RemoteAssetInfo/\",\n\t\t\t\t\t\t\turl: url\n\t\t\t\t\t\t}\n\t\t\t\t\t},\"*\");\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t});\n\t// Listen for widget messages to control unloading the plugin library\n\t$tw.rootWidget.addEventListener(\"tm-unload-plugin-library\",function(event) {\n\t\tvar paramObject = event.paramObject || {},\n\t\t\turl = paramObject.url;\n\t\t$tw.browserMessaging.iframeInfoMap[url] = undefined;\n\t\tif(url) {\n\t\t\tunloadIFrame(url);\n\t\t\t$tw.utils.each(\n\t\t\t\t$tw.wiki.filterTiddlers(\"[[$:/temp/ServerConnection/\" + url + \"]] [prefix[$:/temp/RemoteAssetInfo/\" + url + \"/]]\"),\n\t\t\t\tfunction(title) {\n\t\t\t\t\t$tw.wiki.deleteTiddler(title);\n\t\t\t\t}\n\t\t\t);\n\t\t}\n\t});\n\t$tw.rootWidget.addEventListener(\"tm-load-plugin-from-library\",function(event) {\n\t\tvar paramObject = event.paramObject || {},\n\t\t\turl = paramObject.url,\n\t\t\ttitle = paramObject.title;\n\t\tif(url && title) {\n\t\t\tloadIFrame(url,function(err,iframeInfo) {\n\t\t\t\tif(err) {\n\t\t\t\t\talert($tw.language.getString(\"Error/LoadingPluginLibrary\") + \": \" + url);\n\t\t\t\t} else {\n\t\t\t\t\tiframeInfo.domNode.contentWindow.postMessage({\n\t\t\t\t\t\tverb: \"GET\",\n\t\t\t\t\t\turl: \"recipes/library/tiddlers/\" + encodeURIComponent(title) + \".json\",\n\t\t\t\t\t\tcookies: {\n\t\t\t\t\t\t\ttype: \"save-tiddler\",\n\t\t\t\t\t\t\turl: url\n\t\t\t\t\t\t}\n\t\t\t\t\t},\"*\");\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t});\n\t// Listen for window messages from other windows\n\twindow.addEventListener(\"message\",function listener(event){\n\t\t// console.log(\"browser-messaging: \",document.location.toString())\n\t\t// console.log(\"browser-messaging: Received message from\",event.origin);\n\t\t// console.log(\"browser-messaging: Message content\",event.data);\n\t\tswitch(event.data.verb) {\n\t\t\tcase \"GET-RESPONSE\":\n\t\t\t\tif(event.data.status.charAt(0) === \"2\") {\n\t\t\t\t\tif(event.data.cookies) {\n\t\t\t\t\t\tif(event.data.cookies.type === \"save-info\") {\n\t\t\t\t\t\t\tvar tiddlers = JSON.parse(event.data.body);\n\t\t\t\t\t\t\t$tw.utils.each(tiddlers,function(tiddler) {\n\t\t\t\t\t\t\t\t$tw.wiki.addTiddler(new $tw.Tiddler($tw.wiki.getCreationFields(),tiddler,{\n\t\t\t\t\t\t\t\t\ttitle: event.data.cookies.infoTitlePrefix + event.data.cookies.url + \"/\" + tiddler.title,\n\t\t\t\t\t\t\t\t\t\"original-title\": tiddler.title,\n\t\t\t\t\t\t\t\t\ttext: \"\",\n\t\t\t\t\t\t\t\t\ttype: \"text/vnd.tiddlywiki\",\n\t\t\t\t\t\t\t\t\t\"original-type\": tiddler.type,\n\t\t\t\t\t\t\t\t\t\"plugin-type\": undefined,\n\t\t\t\t\t\t\t\t\t\"original-plugin-type\": tiddler[\"plugin-type\"],\n\t\t\t\t\t\t\t\t\t\"module-type\": undefined,\n\t\t\t\t\t\t\t\t\t\"original-module-type\": tiddler[\"module-type\"],\n\t\t\t\t\t\t\t\t\ttags: [\"$:/tags/RemoteAssetInfo\"],\n\t\t\t\t\t\t\t\t\t\"original-tags\": $tw.utils.stringifyList(tiddler.tags || []),\n\t\t\t\t\t\t\t\t\t\"server-url\": event.data.cookies.url\n\t\t\t\t\t\t\t\t},$tw.wiki.getModificationFields()));\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t} else if(event.data.cookies.type === \"save-tiddler\") {\n\t\t\t\t\t\t\tvar tiddler = JSON.parse(event.data.body);\n\t\t\t\t\t\t\t$tw.wiki.addTiddler(new $tw.Tiddler(tiddler));\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t}\n\t},false);\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "startup"
        },
        "$:/core/modules/startup/commands.js": {
            "title": "$:/core/modules/startup/commands.js",
            "text": "/*\\\ntitle: $:/core/modules/startup/commands.js\ntype: application/javascript\nmodule-type: startup\n\nCommand processing\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n// Export name and synchronous status\nexports.name = \"commands\";\nexports.platforms = [\"node\"];\nexports.after = [\"story\"];\nexports.synchronous = false;\n\nexports.startup = function(callback) {\n\t// On the server, start a commander with the command line arguments\n\tvar commander = new $tw.Commander(\n\t\t$tw.boot.argv,\n\t\tfunction(err) {\n\t\t\tif(err) {\n\t\t\t\treturn $tw.utils.error(\"Error: \" + err);\n\t\t\t}\n\t\t\tcallback();\n\t\t},\n\t\t$tw.wiki,\n\t\t{output: process.stdout, error: process.stderr}\n\t);\n\tcommander.execute();\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "startup"
        },
        "$:/core/modules/startup/CSSescape.js": {
            "title": "$:/core/modules/startup/CSSescape.js",
            "text": "/*\\\ntitle: $:/core/modules/startup/CSSescape.js\ntype: application/javascript\nmodule-type: startup\n\nPolyfill for CSS.escape()\n\n\\*/\n(function(root,factory){\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n// Export name and synchronous status\nexports.name = \"css-escape\";\nexports.platforms = [\"browser\"];\nexports.after = [\"startup\"];\nexports.synchronous = true;\n\n/*! https://mths.be/cssescape v1.5.1 by @mathias | MIT license */\n// https://github.com/umdjs/umd/blob/master/returnExports.js\nexports.startup = factory(root);\n}(typeof global != 'undefined' ? global : this, function(root) {\n\n\tif (root.CSS && root.CSS.escape) {\n\t\treturn;\n\t}\n\n\t// https://drafts.csswg.org/cssom/#serialize-an-identifier\n\tvar cssEscape = function(value) {\n\t\tif (arguments.length == 0) {\n\t\t\tthrow new TypeError('`CSS.escape` requires an argument.');\n\t\t}\n\t\tvar string = String(value);\n\t\tvar length = string.length;\n\t\tvar index = -1;\n\t\tvar codeUnit;\n\t\tvar result = '';\n\t\tvar firstCodeUnit = string.charCodeAt(0);\n\t\twhile (++index < length) {\n\t\t\tcodeUnit = string.charCodeAt(index);\n\t\t\t// Note: there’s no need to special-case astral symbols, surrogate\n\t\t\t// pairs, or lone surrogates.\n\n\t\t\t// If the character is NULL (U+0000), then the REPLACEMENT CHARACTER\n\t\t\t// (U+FFFD).\n\t\t\tif (codeUnit == 0x0000) {\n\t\t\t\tresult += '\\uFFFD';\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tif (\n\t\t\t\t// If the character is in the range [\\1-\\1F] (U+0001 to U+001F) or is\n\t\t\t\t// U+007F, […]\n\t\t\t\t(codeUnit >= 0x0001 && codeUnit <= 0x001F) || codeUnit == 0x007F ||\n\t\t\t\t// If the character is the first character and is in the range [0-9]\n\t\t\t\t// (U+0030 to U+0039), […]\n\t\t\t\t(index == 0 && codeUnit >= 0x0030 && codeUnit <= 0x0039) ||\n\t\t\t\t// If the character is the second character and is in the range [0-9]\n\t\t\t\t// (U+0030 to U+0039) and the first character is a `-` (U+002D), […]\n\t\t\t\t(\n\t\t\t\t\tindex == 1 &&\n\t\t\t\t\tcodeUnit >= 0x0030 && codeUnit <= 0x0039 &&\n\t\t\t\t\tfirstCodeUnit == 0x002D\n\t\t\t\t)\n\t\t\t) {\n\t\t\t\t// https://drafts.csswg.org/cssom/#escape-a-character-as-code-point\n\t\t\t\tresult += '\\\\' + codeUnit.toString(16) + ' ';\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tif (\n\t\t\t\t// If the character is the first character and is a `-` (U+002D), and\n\t\t\t\t// there is no second character, […]\n\t\t\t\tindex == 0 &&\n\t\t\t\tlength == 1 &&\n\t\t\t\tcodeUnit == 0x002D\n\t\t\t) {\n\t\t\t\tresult += '\\\\' + string.charAt(index);\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\t// If the character is not handled by one of the above rules and is\n\t\t\t// greater than or equal to U+0080, is `-` (U+002D) or `_` (U+005F), or\n\t\t\t// is in one of the ranges [0-9] (U+0030 to U+0039), [A-Z] (U+0041 to\n\t\t\t// U+005A), or [a-z] (U+0061 to U+007A), […]\n\t\t\tif (\n\t\t\t\tcodeUnit >= 0x0080 ||\n\t\t\t\tcodeUnit == 0x002D ||\n\t\t\t\tcodeUnit == 0x005F ||\n\t\t\t\tcodeUnit >= 0x0030 && codeUnit <= 0x0039 ||\n\t\t\t\tcodeUnit >= 0x0041 && codeUnit <= 0x005A ||\n\t\t\t\tcodeUnit >= 0x0061 && codeUnit <= 0x007A\n\t\t\t) {\n\t\t\t\t// the character itself\n\t\t\t\tresult += string.charAt(index);\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\t// Otherwise, the escaped character.\n\t\t\t// https://drafts.csswg.org/cssom/#escape-a-character\n\t\t\tresult += '\\\\' + string.charAt(index);\n\n\t\t}\n\t\treturn result;\n\t};\n\n\tif (!root.CSS) {\n\t\troot.CSS = {};\n\t}\n\n\troot.CSS.escape = cssEscape;\n\n}));\n",
            "type": "application/javascript",
            "module-type": "startup"
        },
        "$:/core/modules/startup/favicon.js": {
            "title": "$:/core/modules/startup/favicon.js",
            "text": "/*\\\ntitle: $:/core/modules/startup/favicon.js\ntype: application/javascript\nmodule-type: startup\n\nFavicon handling\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n// Export name and synchronous status\nexports.name = \"favicon\";\nexports.platforms = [\"browser\"];\nexports.after = [\"startup\"];\nexports.synchronous = true;\n\t\t\n// Favicon tiddler\nvar FAVICON_TITLE = \"$:/favicon.ico\";\n\nexports.startup = function() {\n\t// Set up the favicon\n\tsetFavicon();\n\t// Reset the favicon when the tiddler changes\n\t$tw.wiki.addEventListener(\"change\",function(changes) {\n\t\tif($tw.utils.hop(changes,FAVICON_TITLE)) {\n\t\t\tsetFavicon();\n\t\t}\n\t});\n};\n\nfunction setFavicon() {\n\tvar tiddler = $tw.wiki.getTiddler(FAVICON_TITLE);\n\tif(tiddler) {\n\t\tvar faviconLink = document.getElementById(\"faviconLink\");\n\t\tfaviconLink.setAttribute(\"href\",$tw.utils.makeDataUri(tiddler.fields.text,tiddler.fields.type,tiddler.fields._canonical_uri));\n\t}\n}\n\n})();\n",
            "type": "application/javascript",
            "module-type": "startup"
        },
        "$:/core/modules/startup/info.js": {
            "title": "$:/core/modules/startup/info.js",
            "text": "/*\\\ntitle: $:/core/modules/startup/info.js\ntype: application/javascript\nmodule-type: startup\n\nInitialise $:/info tiddlers via $:/temp/info-plugin pseudo-plugin\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n// Export name and synchronous status\nexports.name = \"info\";\nexports.before = [\"startup\"];\nexports.after = [\"load-modules\"];\nexports.synchronous = true;\n\nvar TITLE_INFO_PLUGIN = \"$:/temp/info-plugin\";\n\nexports.startup = function() {\n\t// Function to bake the info plugin with new tiddlers\n\tvar updateInfoPlugin = function(tiddlerFieldsArray) {\n\t\t// Get the existing tiddlers\n\t\tvar json = $tw.wiki.getTiddlerData(TITLE_INFO_PLUGIN,{tiddlers: {}});\n\t\t// Add the new ones\n\t\t$tw.utils.each(tiddlerFieldsArray,function(fields) {\n\t\t\tif(fields && fields.title) {\n\t\t\t\tjson.tiddlers[fields.title] = fields;\n\t\t\t}\n\t\t});\n\t\t// Bake the info tiddlers into a plugin. We use the non-standard plugin-type \"info\" because ordinary plugins are only registered asynchronously after being loaded dynamically\n\t\tvar fields = {\n\t\t\ttitle: TITLE_INFO_PLUGIN,\n\t\t\ttype: \"application/json\",\n\t\t\t\"plugin-type\": \"info\",\n\t\t\ttext: JSON.stringify(json,null,$tw.config.preferences.jsonSpaces)\n\t\t};\n\t\t$tw.wiki.addTiddler(new $tw.Tiddler(fields));\n\n\t};\n\t// Collect up the info tiddlers\n\tvar tiddlerFieldsArray = [];\n\t// Give each info module a chance to provide as many info tiddlers as they want as an array, and give them a callback for dynamically updating them\n\t$tw.modules.forEachModuleOfType(\"info\",function(title,moduleExports) {\n\t\tif(moduleExports && moduleExports.getInfoTiddlerFields) {\n\t\t\tArray.prototype.push.apply(tiddlerFieldsArray,moduleExports.getInfoTiddlerFields(updateInfoPlugin));\n\t\t}\n\t});\n\tupdateInfoPlugin(tiddlerFieldsArray);\n\tvar changes = $tw.wiki.readPluginInfo([TITLE_INFO_PLUGIN]);\n\t$tw.wiki.registerPluginTiddlers(\"info\",[TITLE_INFO_PLUGIN]);\n\t$tw.wiki.unpackPluginTiddlers();\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "startup"
        },
        "$:/core/modules/startup/load-modules.js": {
            "title": "$:/core/modules/startup/load-modules.js",
            "text": "/*\\\ntitle: $:/core/modules/startup/load-modules.js\ntype: application/javascript\nmodule-type: startup\n\nLoad core modules\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n// Export name and synchronous status\nexports.name = \"load-modules\";\nexports.synchronous = true;\n\nexports.startup = function() {\n\t// Load modules\n\t$tw.modules.applyMethods(\"utils\",$tw.utils);\n\tif($tw.node) {\n\t\t$tw.modules.applyMethods(\"utils-node\",$tw.utils);\n\t}\n\t$tw.modules.applyMethods(\"global\",$tw);\n\t$tw.modules.applyMethods(\"config\",$tw.config);\n\t$tw.Tiddler.fieldModules = $tw.modules.getModulesByTypeAsHashmap(\"tiddlerfield\");\n\t$tw.modules.applyMethods(\"tiddlermethod\",$tw.Tiddler.prototype);\n\t$tw.modules.applyMethods(\"wikimethod\",$tw.Wiki.prototype);\n\t$tw.wiki.addIndexersToWiki();\n\t$tw.modules.applyMethods(\"tiddlerdeserializer\",$tw.Wiki.tiddlerDeserializerModules);\n\t$tw.macros = $tw.modules.getModulesByTypeAsHashmap(\"macro\");\n\t$tw.wiki.initParsers();\n\t$tw.Commander.initCommands();\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "startup"
        },
        "$:/core/modules/startup/password.js": {
            "title": "$:/core/modules/startup/password.js",
            "text": "/*\\\ntitle: $:/core/modules/startup/password.js\ntype: application/javascript\nmodule-type: startup\n\nPassword handling\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n// Export name and synchronous status\nexports.name = \"password\";\nexports.platforms = [\"browser\"];\nexports.after = [\"startup\"];\nexports.synchronous = true;\n\nexports.startup = function() {\n\t$tw.rootWidget.addEventListener(\"tm-set-password\",function(event) {\n\t\t$tw.passwordPrompt.createPrompt({\n\t\t\tserviceName: $tw.language.getString(\"Encryption/PromptSetPassword\"),\n\t\t\tnoUserName: true,\n\t\t\tsubmitText: $tw.language.getString(\"Encryption/SetPassword\"),\n\t\t\tcanCancel: true,\n\t\t\trepeatPassword: true,\n\t\t\tcallback: function(data) {\n\t\t\t\tif(data) {\n\t\t\t\t\t$tw.crypto.setPassword(data.password);\n\t\t\t\t}\n\t\t\t\treturn true; // Get rid of the password prompt\n\t\t\t}\n\t\t});\n\t});\n\t$tw.rootWidget.addEventListener(\"tm-clear-password\",function(event) {\n\t\tif($tw.browser) {\n\t\t\tif(!confirm($tw.language.getString(\"Encryption/ConfirmClearPassword\"))) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\t\t$tw.crypto.setPassword(null);\n\t});\n\t// Ensure that $:/isEncrypted is maintained properly\n\t$tw.wiki.addEventListener(\"change\",function(changes) {\n\t\tif($tw.utils.hop(changes,\"$:/isEncrypted\")) {\n\t\t\t$tw.crypto.updateCryptoStateTiddler();\n\t\t}\n\t});\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "startup"
        },
        "$:/core/modules/startup/plugins.js": {
            "title": "$:/core/modules/startup/plugins.js",
            "text": "/*\\\ntitle: $:/core/modules/startup/plugins.js\ntype: application/javascript\nmodule-type: startup\n\nStartup logic concerned with managing plugins\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n// Export name and synchronous status\nexports.name = \"plugins\";\nexports.after = [\"load-modules\"];\nexports.synchronous = true;\n\nvar TITLE_REQUIRE_RELOAD_DUE_TO_PLUGIN_CHANGE = \"$:/status/RequireReloadDueToPluginChange\";\n\nvar PREFIX_CONFIG_REGISTER_PLUGIN_TYPE = \"$:/config/RegisterPluginType/\";\n\nexports.startup = function() {\n\t$tw.wiki.addTiddler({title: TITLE_REQUIRE_RELOAD_DUE_TO_PLUGIN_CHANGE,text: \"no\"});\n\t$tw.wiki.addEventListener(\"change\",function(changes) {\n\t\t// Work out which of the changed tiddlers are plugins that we need to reregister\n\t\tvar changesToProcess = [],\n\t\t\trequireReloadDueToPluginChange = false;\n\t\t$tw.utils.each(Object.keys(changes),function(title) {\n\t\t\tvar tiddler = $tw.wiki.getTiddler(title),\n\t\t\t\trequiresReload = $tw.wiki.doesPluginRequireReload(title);\n\t\t\tif(requiresReload) {\n\t\t\t\trequireReloadDueToPluginChange = true;\n\t\t\t} else if(tiddler) {\n\t\t\t\tvar pluginType = tiddler.fields[\"plugin-type\"];\n\t\t\t\tif($tw.wiki.getTiddlerText(PREFIX_CONFIG_REGISTER_PLUGIN_TYPE + (tiddler.fields[\"plugin-type\"] || \"\"),\"no\") === \"yes\") {\n\t\t\t\t\tchangesToProcess.push(title);\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t\t// Issue warning if any of the tiddlers require a reload\n\t\tif(requireReloadDueToPluginChange) {\n\t\t\t$tw.wiki.addTiddler({title: TITLE_REQUIRE_RELOAD_DUE_TO_PLUGIN_CHANGE,text: \"yes\"});\n\t\t}\n\t\t// Read or delete the plugin info of the changed tiddlers\n\t\tif(changesToProcess.length > 0) {\n\t\t\tvar changes = $tw.wiki.readPluginInfo(changesToProcess);\n\t\t\tif(changes.modifiedPlugins.length > 0 || changes.deletedPlugins.length > 0) {\n\t\t\t\tvar changedShadowTiddlers = {};\n\t\t\t\t// Collect the shadow tiddlers of any deleted plugins\n\t\t\t\t$tw.utils.each(changes.deletedPlugins,function(pluginTitle) {\n\t\t\t\t\tvar pluginInfo = $tw.wiki.getPluginInfo(pluginTitle);\n\t\t\t\t\tif(pluginInfo) {\n\t\t\t\t\t\t$tw.utils.each(Object.keys(pluginInfo.tiddlers),function(title) {\n\t\t\t\t\t\t\tchangedShadowTiddlers[title] = true;\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\t// Collect the shadow tiddlers of any modified plugins\n\t\t\t\t$tw.utils.each(changes.modifiedPlugins,function(pluginTitle) {\n\t\t\t\t\tvar pluginInfo = $tw.wiki.getPluginInfo(pluginTitle);\n\t\t\t\t\tif(pluginInfo) {\n\t\t\t\t\t\t$tw.utils.each(Object.keys(pluginInfo.tiddlers),function(title) {\n\t\t\t\t\t\t\tchangedShadowTiddlers[title] = false;\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\t// (Re-)register any modified plugins\n\t\t\t\t$tw.wiki.registerPluginTiddlers(null,changes.modifiedPlugins);\n\t\t\t\t// Unregister any deleted plugins\n\t\t\t\t$tw.wiki.unregisterPluginTiddlers(null,changes.deletedPlugins);\n\t\t\t\t// Unpack the shadow tiddlers\n\t\t\t\t$tw.wiki.unpackPluginTiddlers();\n\t\t\t\t// Queue change events for the changed shadow tiddlers\n\t\t\t\t$tw.utils.each(Object.keys(changedShadowTiddlers),function(title) {\n\t\t\t\t\t$tw.wiki.enqueueTiddlerEvent(title,changedShadowTiddlers[title]);\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t});\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "startup"
        },
        "$:/core/modules/startup/render.js": {
            "title": "$:/core/modules/startup/render.js",
            "text": "/*\\\ntitle: $:/core/modules/startup/render.js\ntype: application/javascript\nmodule-type: startup\n\nTitle, stylesheet and page rendering\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n// Export name and synchronous status\nexports.name = \"render\";\nexports.platforms = [\"browser\"];\nexports.after = [\"story\"];\nexports.synchronous = true;\n\n// Default story and history lists\nvar PAGE_TITLE_TITLE = \"$:/core/wiki/title\";\nvar PAGE_STYLESHEET_TITLE = \"$:/core/ui/PageStylesheet\";\nvar PAGE_TEMPLATE_TITLE = \"$:/core/ui/RootTemplate\";\n\n// Time (in ms) that we defer refreshing changes to draft tiddlers\nvar DRAFT_TIDDLER_TIMEOUT_TITLE = \"$:/config/Drafts/TypingTimeout\";\nvar THROTTLE_REFRESH_TIMEOUT = 400;\n\nexports.startup = function() {\n\t// Set up the title\n\t$tw.titleWidgetNode = $tw.wiki.makeTranscludeWidget(PAGE_TITLE_TITLE,{document: $tw.fakeDocument, parseAsInline: true});\n\t$tw.titleContainer = $tw.fakeDocument.createElement(\"div\");\n\t$tw.titleWidgetNode.render($tw.titleContainer,null);\n\tdocument.title = $tw.titleContainer.textContent;\n\t$tw.wiki.addEventListener(\"change\",function(changes) {\n\t\tif($tw.titleWidgetNode.refresh(changes,$tw.titleContainer,null)) {\n\t\t\tdocument.title = $tw.titleContainer.textContent;\n\t\t}\n\t});\n\t// Set up the styles\n\t$tw.styleWidgetNode = $tw.wiki.makeTranscludeWidget(PAGE_STYLESHEET_TITLE,{document: $tw.fakeDocument});\n\t$tw.styleContainer = $tw.fakeDocument.createElement(\"style\");\n\t$tw.styleWidgetNode.render($tw.styleContainer,null);\n\t$tw.styleElement = document.createElement(\"style\");\n\t$tw.styleElement.innerHTML = $tw.styleContainer.textContent;\n\tdocument.head.insertBefore($tw.styleElement,document.head.firstChild);\n\t$tw.wiki.addEventListener(\"change\",$tw.perf.report(\"styleRefresh\",function(changes) {\n\t\tif($tw.styleWidgetNode.refresh(changes,$tw.styleContainer,null)) {\n\t\t\t$tw.styleElement.innerHTML = $tw.styleContainer.textContent;\n\t\t}\n\t}));\n\t// Display the $:/core/ui/PageTemplate tiddler to kick off the display\n\t$tw.perf.report(\"mainRender\",function() {\n\t\t$tw.pageWidgetNode = $tw.wiki.makeTranscludeWidget(PAGE_TEMPLATE_TITLE,{document: document, parentWidget: $tw.rootWidget, recursionMarker: \"no\"});\n\t\t$tw.pageContainer = document.createElement(\"div\");\n\t\t$tw.utils.addClass($tw.pageContainer,\"tc-page-container-wrapper\");\n\t\tdocument.body.insertBefore($tw.pageContainer,document.body.firstChild);\n\t\t$tw.pageWidgetNode.render($tw.pageContainer,null);\n   \t\t$tw.hooks.invokeHook(\"th-page-refreshed\");\n\t})();\n\t// Remove any splash screen elements\n\tvar removeList = document.querySelectorAll(\".tc-remove-when-wiki-loaded\");\n\t$tw.utils.each(removeList,function(removeItem) {\n\t\tif(removeItem.parentNode) {\n\t\t\tremoveItem.parentNode.removeChild(removeItem);\n\t\t}\n\t});\n\t// Prepare refresh mechanism\n\tvar deferredChanges = Object.create(null),\n\t\ttimerId;\n\tfunction refresh() {\n\t\t// Process the refresh\n\t\t$tw.hooks.invokeHook(\"th-page-refreshing\");\n\t\t$tw.pageWidgetNode.refresh(deferredChanges);\n\t\tdeferredChanges = Object.create(null);\n\t\t$tw.hooks.invokeHook(\"th-page-refreshed\");\n\t}\n\t// Add the change event handler\n\t$tw.wiki.addEventListener(\"change\",$tw.perf.report(\"mainRefresh\",function(changes) {\n\t\t// Check if only tiddlers that are throttled have changed\n\t\tvar onlyThrottledTiddlersHaveChanged = true;\n\t\tfor(var title in changes) {\n\t\t\tvar tiddler = $tw.wiki.getTiddler(title);\n\t\t\tif(!tiddler || !(tiddler.hasField(\"draft.of\") || tiddler.hasField(\"throttle.refresh\"))) {\n\t\t\t\tonlyThrottledTiddlersHaveChanged = false;\n\t\t\t}\n\t\t}\n\t\t// Defer the change if only drafts have changed\n\t\tif(timerId) {\n\t\t\tclearTimeout(timerId);\n\t\t}\n\t\ttimerId = null;\n\t\tif(onlyThrottledTiddlersHaveChanged) {\n\t\t\tvar timeout = parseInt($tw.wiki.getTiddlerText(DRAFT_TIDDLER_TIMEOUT_TITLE,\"\"),10);\n\t\t\tif(isNaN(timeout)) {\n\t\t\t\ttimeout = THROTTLE_REFRESH_TIMEOUT;\n\t\t\t}\n\t\t\ttimerId = setTimeout(refresh,timeout);\n\t\t\t$tw.utils.extend(deferredChanges,changes);\n\t\t} else {\n\t\t\t$tw.utils.extend(deferredChanges,changes);\n\t\t\trefresh();\n\t\t}\n\t}));\n\t// Fix up the link between the root widget and the page container\n\t$tw.rootWidget.domNodes = [$tw.pageContainer];\n\t$tw.rootWidget.children = [$tw.pageWidgetNode];\n\t// Run any post-render startup actions\n\t$tw.rootWidget.invokeActionsByTag(\"$:/tags/StartupAction/PostRender\");\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "startup"
        },
        "$:/core/modules/startup/rootwidget.js": {
            "title": "$:/core/modules/startup/rootwidget.js",
            "text": "/*\\\ntitle: $:/core/modules/startup/rootwidget.js\ntype: application/javascript\nmodule-type: startup\n\nSetup the root widget and the core root widget handlers\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n// Export name and synchronous status\nexports.name = \"rootwidget\";\nexports.platforms = [\"browser\"];\nexports.after = [\"startup\"];\nexports.before = [\"story\"];\nexports.synchronous = true;\n\nexports.startup = function() {\n\t// Install the modal message mechanism\n\t$tw.modal = new $tw.utils.Modal($tw.wiki);\n\t$tw.rootWidget.addEventListener(\"tm-modal\",function(event) {\n\t\t$tw.modal.display(event.param,{variables: event.paramObject, event: event});\n\t});\n\t$tw.rootWidget.addEventListener(\"tm-show-switcher\",function(event) {\n\t\t$tw.modal.display(\"$:/core/ui/SwitcherModal\",{variables: event.paramObject, event: event});\n\t});\t\n\t// Install the notification  mechanism\n\t$tw.notifier = new $tw.utils.Notifier($tw.wiki);\n\t$tw.rootWidget.addEventListener(\"tm-notify\",function(event) {\n\t\t$tw.notifier.display(event.param,{variables: event.paramObject});\n\t});\n\t// Install the copy-to-clipboard  mechanism\n\t$tw.rootWidget.addEventListener(\"tm-copy-to-clipboard\",function(event) {\n\t\t$tw.utils.copyToClipboard(event.param);\n\t});\n\t// Install the tm-focus-selector message\n\t$tw.rootWidget.addEventListener(\"tm-focus-selector\",function(event) {\n\t\tvar selector = event.param || \"\",\n\t\t\telement;\n\t\ttry {\n\t\t\telement = document.querySelector(selector);\n\t\t} catch(e) {\n\t\t\tconsole.log(\"Error in selector: \",selector)\n\t\t}\n\t\tif(element && element.focus) {\n\t\t\telement.focus(event.paramObject);\n\t\t}\n\t});\n\t// Install the scroller\n\t$tw.pageScroller = new $tw.utils.PageScroller();\n\t$tw.rootWidget.addEventListener(\"tm-scroll\",function(event) {\n\t\t$tw.pageScroller.handleEvent(event);\n\t});\n\tvar fullscreen = $tw.utils.getFullScreenApis();\n\tif(fullscreen) {\n\t\t$tw.rootWidget.addEventListener(\"tm-full-screen\",function(event) {\n\t\t\tvar fullScreenDocument = event.event ? event.event.target.ownerDocument : document;\n\t\t\tif(event.param === \"enter\") {\n\t\t\t\tfullScreenDocument.documentElement[fullscreen._requestFullscreen](Element.ALLOW_KEYBOARD_INPUT);\n\t\t\t} else if(event.param === \"exit\") {\n\t\t\t\tfullScreenDocument[fullscreen._exitFullscreen]();\n\t\t\t} else {\n\t\t\t\tif(fullScreenDocument[fullscreen._fullscreenElement]) {\n\t\t\t\t\tfullScreenDocument[fullscreen._exitFullscreen]();\n\t\t\t\t} else {\n\t\t\t\t\tfullScreenDocument.documentElement[fullscreen._requestFullscreen](Element.ALLOW_KEYBOARD_INPUT);\n\t\t\t\t}\t\t\t\t\n\t\t\t}\n\t\t});\n\t}\n\t// If we're being viewed on a data: URI then give instructions for how to save\n\tif(document.location.protocol === \"data:\") {\n\t\t$tw.rootWidget.dispatchEvent({\n\t\t\ttype: \"tm-modal\",\n\t\t\tparam: \"$:/language/Modals/SaveInstructions\"\n\t\t});\n\t}\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "startup"
        },
        "$:/core/modules/startup.js": {
            "title": "$:/core/modules/startup.js",
            "text": "/*\\\ntitle: $:/core/modules/startup.js\ntype: application/javascript\nmodule-type: startup\n\nMiscellaneous startup logic for both the client and server.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n// Export name and synchronous status\nexports.name = \"startup\";\nexports.after = [\"load-modules\"];\nexports.synchronous = true;\n\n// Set to `true` to enable performance instrumentation\nvar PERFORMANCE_INSTRUMENTATION_CONFIG_TITLE = \"$:/config/Performance/Instrumentation\";\n\nvar widget = require(\"$:/core/modules/widgets/widget.js\");\n\nexports.startup = function() {\n\tvar modules,n,m,f;\n\t// Minimal browser detection\n\tif($tw.browser) {\n\t\t$tw.browser.isIE = (/msie|trident/i.test(navigator.userAgent));\n\t\t$tw.browser.isFirefox = !!document.mozFullScreenEnabled;\n\t}\n\t// Platform detection\n\t$tw.platform = {};\n\tif($tw.browser) {\n\t\t$tw.platform.isMac = /Mac/.test(navigator.platform);\n\t\t$tw.platform.isWindows = /win/i.test(navigator.platform);\n\t\t$tw.platform.isLinux = /Linux/i.test(navigator.platform);\n\t} else {\n\t\tswitch(require(\"os\").platform()) {\n\t\t\tcase \"darwin\":\n\t\t\t\t$tw.platform.isMac = true;\n\t\t\t\tbreak;\n\t\t\tcase \"win32\":\n\t\t\t\t$tw.platform.isWindows = true;\n\t\t\t\tbreak;\n\t\t\tcase \"freebsd\":\n\t\t\t\t$tw.platform.isLinux = true;\n\t\t\t\tbreak;\n\t\t\tcase \"linux\":\n\t\t\t\t$tw.platform.isLinux = true;\n\t\t\t\tbreak;\n\t\t}\n\t}\n\t// Initialise version\n\t$tw.version = $tw.utils.extractVersionInfo();\n\t// Set up the performance framework\n\t$tw.perf = new $tw.Performance($tw.wiki.getTiddlerText(PERFORMANCE_INSTRUMENTATION_CONFIG_TITLE,\"no\") === \"yes\");\n\t// Create a root widget for attaching event handlers. By using it as the parentWidget for another widget tree, one can reuse the event handlers\n\t$tw.rootWidget = new widget.widget({\n\t\ttype: \"widget\",\n\t\tchildren: []\n\t},{\n\t\twiki: $tw.wiki,\n\t\tdocument: $tw.browser ? document : $tw.fakeDocument\n\t});\n\t// Execute any startup actions\n\t$tw.rootWidget.invokeActionsByTag(\"$:/tags/StartupAction\");\n\tif($tw.browser) {\n\t\t$tw.rootWidget.invokeActionsByTag(\"$:/tags/StartupAction/Browser\");\t\t\n\t}\n\tif($tw.node) {\n\t\t$tw.rootWidget.invokeActionsByTag(\"$:/tags/StartupAction/Node\");\t\t\n\t}\n\t// Kick off the language manager and switcher\n\t$tw.language = new $tw.Language();\n\t$tw.languageSwitcher = new $tw.PluginSwitcher({\n\t\twiki: $tw.wiki,\n\t\tpluginType: \"language\",\n\t\tcontrollerTitle: \"$:/language\",\n\t\tdefaultPlugins: [\n\t\t\t\"$:/languages/en-GB\"\n\t\t],\n\t\tonSwitch: function(plugins) {\n\t\t\tif($tw.browser) {\n\t\t\t\tvar pluginTiddler = $tw.wiki.getTiddler(plugins[0]);\n\t\t\t\tif(pluginTiddler) {\n\t\t\t\t\tdocument.documentElement.setAttribute(\"dir\",pluginTiddler.getFieldString(\"text-direction\") || \"auto\");\n\t\t\t\t} else {\n\t\t\t\t\tdocument.documentElement.removeAttribute(\"dir\");\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t});\n\t// Kick off the theme manager\n\t$tw.themeManager = new $tw.PluginSwitcher({\n\t\twiki: $tw.wiki,\n\t\tpluginType: \"theme\",\n\t\tcontrollerTitle: \"$:/theme\",\n\t\tdefaultPlugins: [\n\t\t\t\"$:/themes/tiddlywiki/snowwhite\",\n\t\t\t\"$:/themes/tiddlywiki/vanilla\"\n\t\t]\n\t});\n\t// Kick off the keyboard manager\n\t$tw.keyboardManager = new $tw.KeyboardManager();\n\t// Listen for shortcuts\n\tif($tw.browser) {\n\t\t$tw.utils.addEventListeners(document,[{\n\t\t\tname: \"keydown\",\n\t\t\thandlerObject: $tw.keyboardManager,\n\t\t\thandlerMethod: \"handleKeydownEvent\"\n\t\t}]);\n\t}\n\t// Clear outstanding tiddler store change events to avoid an unnecessary refresh cycle at startup\n\t$tw.wiki.clearTiddlerEventQueue();\n\t// Find a working syncadaptor\n\t$tw.syncadaptor = undefined;\n\t$tw.modules.forEachModuleOfType(\"syncadaptor\",function(title,module) {\n\t\tif(!$tw.syncadaptor && module.adaptorClass) {\n\t\t\t$tw.syncadaptor = new module.adaptorClass({wiki: $tw.wiki});\n\t\t}\n\t});\n\t// Set up the syncer object if we've got a syncadaptor\n\tif($tw.syncadaptor) {\n\t\t$tw.syncer = new $tw.Syncer({wiki: $tw.wiki, syncadaptor: $tw.syncadaptor});\n\t}\n\t// Setup the saver handler\n\t$tw.saverHandler = new $tw.SaverHandler({\n\t\twiki: $tw.wiki,\n\t\tdirtyTracking: !$tw.syncadaptor,\n\t\tpreloadDirty: $tw.boot.preloadDirty || []\n\t});\n\t// Host-specific startup\n\tif($tw.browser) {\n\t\t// Install the popup manager\n\t\t$tw.popup = new $tw.utils.Popup();\n\t\t// Install the animator\n\t\t$tw.anim = new $tw.utils.Animator();\n\t}\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "startup"
        },
        "$:/core/modules/startup/story.js": {
            "title": "$:/core/modules/startup/story.js",
            "text": "/*\\\ntitle: $:/core/modules/startup/story.js\ntype: application/javascript\nmodule-type: startup\n\nLoad core modules\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n// Export name and synchronous status\nexports.name = \"story\";\nexports.after = [\"startup\"];\nexports.synchronous = true;\n\n// Default story and history lists\nvar DEFAULT_STORY_TITLE = \"$:/StoryList\";\nvar DEFAULT_HISTORY_TITLE = \"$:/HistoryList\";\n\n// Default tiddlers\nvar DEFAULT_TIDDLERS_TITLE = \"$:/DefaultTiddlers\";\n\n// Config\nvar CONFIG_UPDATE_ADDRESS_BAR = \"$:/config/Navigation/UpdateAddressBar\"; // Can be \"no\", \"permalink\", \"permaview\"\nvar CONFIG_UPDATE_HISTORY = \"$:/config/Navigation/UpdateHistory\"; // Can be \"yes\" or \"no\"\nvar CONFIG_PERMALINKVIEW_COPY_TO_CLIPBOARD = \"$:/config/Navigation/Permalinkview/CopyToClipboard\"; // Can be \"yes\" (default) or \"no\"\nvar CONFIG_PERMALINKVIEW_UPDATE_ADDRESS_BAR = \"$:/config/Navigation/Permalinkview/UpdateAddressBar\"; // Can be \"yes\" (default) or \"no\"\n\n\n// Links to help, if there is no param\nvar HELP_OPEN_EXTERNAL_WINDOW = \"http://tiddlywiki.com/#WidgetMessage%3A%20tm-open-external-window\";\n\nexports.startup = function() {\n\t// Open startup tiddlers\n\topenStartupTiddlers({\n\t\tdisableHistory: $tw.boot.disableStartupNavigation\n\t});\n\tif($tw.browser) {\n\t\t// Set up location hash update\n\t\t$tw.wiki.addEventListener(\"change\",function(changes) {\n\t\t\tif($tw.utils.hop(changes,DEFAULT_STORY_TITLE) || $tw.utils.hop(changes,DEFAULT_HISTORY_TITLE)) {\n\t\t\t\tupdateLocationHash({\n\t\t\t\t\tupdateAddressBar: $tw.wiki.getTiddlerText(CONFIG_UPDATE_ADDRESS_BAR,\"permaview\").trim(),\n\t\t\t\t\tupdateHistory: $tw.wiki.getTiddlerText(CONFIG_UPDATE_HISTORY,\"no\").trim()\n\t\t\t\t});\n\t\t\t}\n\t\t});\n\t\t// Listen for changes to the browser location hash\n\t\twindow.addEventListener(\"hashchange\",function() {\n\t\t\tvar hash = $tw.utils.getLocationHash();\n\t\t\tif(hash !== $tw.locationHash) {\n\t\t\t\t$tw.locationHash = hash;\n\t\t\t\topenStartupTiddlers({defaultToCurrentStory: true});\n\t\t\t}\n\t\t},false);\n\t\t// Listen for the tm-browser-refresh message\n\t\t$tw.rootWidget.addEventListener(\"tm-browser-refresh\",function(event) {\n\t\t\twindow.location.reload(true);\n\t\t});\n\t\t// Listen for tm-open-external-window message\n\t\t$tw.rootWidget.addEventListener(\"tm-open-external-window\",function(event) {\n\t\t\tvar paramObject = event.paramObject || {},\n\t\t\t\tstrUrl = event.param || HELP_OPEN_EXTERNAL_WINDOW,\n\t\t\t\tstrWindowName = paramObject.windowName,\n\t\t\t\tstrWindowFeatures = paramObject.windowFeatures;\n\t\t\twindow.open(strUrl, strWindowName, strWindowFeatures);\n\t\t});\n\t\t// Listen for the tm-print message\n\t\t$tw.rootWidget.addEventListener(\"tm-print\",function(event) {\n\t\t\t(event.event.view || window).print();\n\t\t});\n\t\t// Listen for the tm-home message\n\t\t$tw.rootWidget.addEventListener(\"tm-home\",function(event) {\n\t\t\twindow.location.hash = \"\";\n\t\t\tvar storyFilter = $tw.wiki.getTiddlerText(DEFAULT_TIDDLERS_TITLE),\n\t\t\t\tstoryList = $tw.wiki.filterTiddlers(storyFilter);\n\t\t\t//invoke any hooks that might change the default story list\n\t\t\tstoryList = $tw.hooks.invokeHook(\"th-opening-default-tiddlers-list\",storyList);\n\t\t\t$tw.wiki.addTiddler({title: DEFAULT_STORY_TITLE, text: \"\", list: storyList},$tw.wiki.getModificationFields());\n\t\t\tif(storyList[0]) {\n\t\t\t\t$tw.wiki.addToHistory(storyList[0]);\n\t\t\t}\n\t\t});\n\t\t// Listen for the tm-permalink message\n\t\t$tw.rootWidget.addEventListener(\"tm-permalink\",function(event) {\n\t\t\tupdateLocationHash({\n\t\t\t\tupdateAddressBar: $tw.wiki.getTiddlerText(CONFIG_PERMALINKVIEW_UPDATE_ADDRESS_BAR,\"yes\").trim() === \"yes\" ? \"permalink\" : \"none\",\n\t\t\t\tupdateHistory: $tw.wiki.getTiddlerText(CONFIG_UPDATE_HISTORY,\"no\").trim(),\n\t\t\t\ttargetTiddler: event.param || event.tiddlerTitle,\n\t\t\t\tcopyToClipboard: $tw.wiki.getTiddlerText(CONFIG_PERMALINKVIEW_COPY_TO_CLIPBOARD,\"yes\").trim() === \"yes\" ? \"permalink\" : \"none\"\n\t\t\t});\n\t\t});\n\t\t// Listen for the tm-permaview message\n\t\t$tw.rootWidget.addEventListener(\"tm-permaview\",function(event) {\n\t\t\tupdateLocationHash({\n\t\t\t\tupdateAddressBar: $tw.wiki.getTiddlerText(CONFIG_PERMALINKVIEW_UPDATE_ADDRESS_BAR,\"yes\").trim() === \"yes\" ? \"permaview\" : \"none\",\n\t\t\t\tupdateHistory: $tw.wiki.getTiddlerText(CONFIG_UPDATE_HISTORY,\"no\").trim(),\n\t\t\t\ttargetTiddler: event.param || event.tiddlerTitle,\n\t\t\t\tcopyToClipboard: $tw.wiki.getTiddlerText(CONFIG_PERMALINKVIEW_COPY_TO_CLIPBOARD,\"yes\").trim() === \"yes\" ? \"permaview\" : \"none\"\n\t\t\t});\t\t\t\t\n\t\t});\n\t}\n};\n\n/*\nProcess the location hash to open the specified tiddlers. Options:\ndisableHistory: if true $:/History is NOT updated\ndefaultToCurrentStory: If true, the current story is retained as the default, instead of opening the default tiddlers\n*/\nfunction openStartupTiddlers(options) {\n\toptions = options || {};\n\t// Work out the target tiddler and the story filter. \"null\" means \"unspecified\"\n\tvar target = null,\n\t\tstoryFilter = null;\n\tif($tw.locationHash.length > 1) {\n\t\tvar hash = $tw.locationHash.substr(1),\n\t\t\tsplit = hash.indexOf(\":\");\n\t\tif(split === -1) {\n\t\t\ttarget = decodeURIComponent(hash.trim());\n\t\t} else {\n\t\t\ttarget = decodeURIComponent(hash.substr(0,split).trim());\n\t\t\tstoryFilter = decodeURIComponent(hash.substr(split + 1).trim());\n\t\t}\n\t}\n\t// If the story wasn't specified use the current tiddlers or a blank story\n\tif(storyFilter === null) {\n\t\tif(options.defaultToCurrentStory) {\n\t\t\tvar currStoryList = $tw.wiki.getTiddlerList(DEFAULT_STORY_TITLE);\n\t\t\tstoryFilter = $tw.utils.stringifyList(currStoryList);\n\t\t} else {\n\t\t\tif(target && target !== \"\") {\n\t\t\t\tstoryFilter = \"\";\n\t\t\t} else {\n\t\t\t\tstoryFilter = $tw.wiki.getTiddlerText(DEFAULT_TIDDLERS_TITLE);\n\t\t\t}\n\t\t}\n\t}\n\t// Process the story filter to get the story list\n\tvar storyList = $tw.wiki.filterTiddlers(storyFilter);\n\t// Invoke any hooks that want to change the default story list\n\tstoryList = $tw.hooks.invokeHook(\"th-opening-default-tiddlers-list\",storyList);\n\t// If the target tiddler isn't included then splice it in at the top\n\tif(target && storyList.indexOf(target) === -1) {\n\t\tstoryList.unshift(target);\n\t}\n\t// Save the story list\n\t$tw.wiki.addTiddler({title: DEFAULT_STORY_TITLE, text: \"\", list: storyList},$tw.wiki.getModificationFields());\n\t// Update history\n\tvar story = new $tw.Story({\n\t\twiki: $tw.wiki,\n\t\tstoryTitle: DEFAULT_STORY_TITLE,\n\t\thistoryTitle: DEFAULT_HISTORY_TITLE\n\t});\n\tif(!options.disableHistory) {\n\t\t// If a target tiddler was specified add it to the history stack\n\t\tif(target && target !== \"\") {\n\t\t\t// The target tiddler doesn't need double square brackets, but we'll silently remove them if they're present\n\t\t\tif(target.indexOf(\"[[\") === 0 && target.substr(-2) === \"]]\") {\n\t\t\t\ttarget = target.substr(2,target.length - 4);\n\t\t\t}\n\t\t\tstory.addToHistory(target);\n\t\t} else if(storyList.length > 0) {\n\t\t\tstory.addToHistory(storyList[0]);\n\t\t}\t\t\n\t}\n}\n\n/*\noptions: See below\noptions.updateAddressBar: \"permalink\", \"permaview\" or \"no\" (defaults to \"permaview\")\noptions.updateHistory: \"yes\" or \"no\" (defaults to \"no\")\noptions.copyToClipboard: \"permalink\", \"permaview\" or \"no\" (defaults to \"no\")\noptions.targetTiddler: optional title of target tiddler for permalink\n*/\nfunction updateLocationHash(options) {\n\t// Get the story and the history stack\n\tvar storyList = $tw.wiki.getTiddlerList(DEFAULT_STORY_TITLE),\n\t\thistoryList = $tw.wiki.getTiddlerData(DEFAULT_HISTORY_TITLE,[]),\n\t\ttargetTiddler = \"\";\n\tif(options.targetTiddler) {\n\t\ttargetTiddler = options.targetTiddler;\n\t} else {\n\t\t// The target tiddler is the one at the top of the stack\n\t\tif(historyList.length > 0) {\n\t\t\ttargetTiddler = historyList[historyList.length-1].title;\n\t\t}\n\t\t// Blank the target tiddler if it isn't present in the story\n\t\tif(storyList.indexOf(targetTiddler) === -1) {\n\t\t\ttargetTiddler = \"\";\n\t\t}\n\t}\n\t// Assemble the location hash\n\tswitch(options.updateAddressBar) {\n\t\tcase \"permalink\":\n\t\t\t$tw.locationHash = \"#\" + encodeURIComponent(targetTiddler);\n\t\t\tbreak;\n\t\tcase \"permaview\":\n\t\t\t$tw.locationHash = \"#\" + encodeURIComponent(targetTiddler) + \":\" + encodeURIComponent($tw.utils.stringifyList(storyList));\n\t\t\tbreak;\n\t}\n\t// Copy URL to the clipboard\n\tswitch(options.copyToClipboard) {\n\t\tcase \"permalink\":\n\t\t\t$tw.utils.copyToClipboard($tw.utils.getLocationPath() + \"#\" + encodeURIComponent(targetTiddler));\n\t\t\tbreak;\n\t\tcase \"permaview\":\n\t\t\t$tw.utils.copyToClipboard($tw.utils.getLocationPath() + \"#\" + encodeURIComponent(targetTiddler) + \":\" + encodeURIComponent($tw.utils.stringifyList(storyList)));\n\t\t\tbreak;\n\t}\n\t// Only change the location hash if we must, thus avoiding unnecessary onhashchange events\n\tif($tw.utils.getLocationHash() !== $tw.locationHash) {\n\t\tif(options.updateHistory === \"yes\") {\n\t\t\t// Assign the location hash so that history is updated\n\t\t\twindow.location.hash = $tw.locationHash;\n\t\t} else {\n\t\t\t// We use replace so that browser history isn't affected\n\t\t\twindow.location.replace(window.location.toString().split(\"#\")[0] + $tw.locationHash);\n\t\t}\n\t}\n}\n\n})();\n",
            "type": "application/javascript",
            "module-type": "startup"
        },
        "$:/core/modules/startup/windows.js": {
            "title": "$:/core/modules/startup/windows.js",
            "text": "/*\\\ntitle: $:/core/modules/startup/windows.js\ntype: application/javascript\nmodule-type: startup\n\nSetup root widget handlers for the messages concerned with opening external browser windows\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n// Export name and synchronous status\nexports.name = \"windows\";\nexports.platforms = [\"browser\"];\nexports.after = [\"startup\"];\nexports.synchronous = true;\n\n// Global to keep track of open windows (hashmap by title)\n$tw.windows = {};\n\nexports.startup = function() {\n\t// Handle open window message\n\t$tw.rootWidget.addEventListener(\"tm-open-window\",function(event) {\n\t\t// Get the parameters\n\t\tvar refreshHandler,\n\t\t\ttitle = event.param || event.tiddlerTitle,\n\t\t\tparamObject = event.paramObject || {},\n\t\t\twindowTitle = paramObject.windowTitle || title,\n\t\t\ttemplate = paramObject.template || \"$:/core/templates/single.tiddler.window\",\n\t\t\twidth = paramObject.width || \"700\",\n\t\t\theight = paramObject.height || \"600\",\n\t\t\tvariables = $tw.utils.extend({},paramObject,{currentTiddler: title});\n\t\t// Open the window\n\t\tvar srcWindow,\n\t\t    srcDocument;\n\t\t// In case that popup blockers deny opening a new window\n\t\ttry {\n\t\t\tsrcWindow = window.open(\"\",\"external-\" + title,\"scrollbars,width=\" + width + \",height=\" + height),\n\t\t\tsrcDocument = srcWindow.document;\n\t\t}\n\t\tcatch(e) {\n\t\t\treturn;\n\t\t}\n\t\t$tw.windows[title] = srcWindow;\n\t\t// Check for reopening the same window\n\t\tif(srcWindow.haveInitialisedWindow) {\n\t\t\treturn;\n\t\t}\n\t\t// Initialise the document\n\t\tsrcDocument.write(\"<html><head></head><body class='tc-body tc-single-tiddler-window'></body></html>\");\n\t\tsrcDocument.close();\n\t\tsrcDocument.title = windowTitle;\n\t\tsrcWindow.addEventListener(\"beforeunload\",function(event) {\n\t\t\tdelete $tw.windows[title];\n\t\t\t$tw.wiki.removeEventListener(\"change\",refreshHandler);\n\t\t},false);\n\t\t// Set up the styles\n\t\tvar styleWidgetNode = $tw.wiki.makeTranscludeWidget(\"$:/core/ui/PageStylesheet\",{\n\t\t\t\tdocument: $tw.fakeDocument,\n\t\t\t\tvariables: variables,\n\t\t\t\timportPageMacros: true}),\n\t\t\tstyleContainer = $tw.fakeDocument.createElement(\"style\");\n\t\tstyleWidgetNode.render(styleContainer,null);\n\t\tvar styleElement = srcDocument.createElement(\"style\");\n\t\tstyleElement.innerHTML = styleContainer.textContent;\n\t\tsrcDocument.head.insertBefore(styleElement,srcDocument.head.firstChild);\n\t\t// Render the text of the tiddler\n\t\tvar parser = $tw.wiki.parseTiddler(template),\n\t\t\twidgetNode = $tw.wiki.makeWidget(parser,{document: srcDocument, parentWidget: $tw.rootWidget, variables: variables});\n\t\twidgetNode.render(srcDocument.body,srcDocument.body.firstChild);\n\t\t// Function to handle refreshes\n\t\trefreshHandler = function(changes) {\n\t\t\tif(styleWidgetNode.refresh(changes,styleContainer,null)) {\n\t\t\t\tstyleElement.innerHTML = styleContainer.textContent;\n\t\t\t}\n\t\t\twidgetNode.refresh(changes);\n\t\t};\n\t\t$tw.wiki.addEventListener(\"change\",refreshHandler);\n\t\t// Listen for keyboard shortcuts\n\t\t$tw.utils.addEventListeners(srcDocument,[{\n\t\t\tname: \"keydown\",\n\t\t\thandlerObject: $tw.keyboardManager,\n\t\t\thandlerMethod: \"handleKeydownEvent\"\n\t\t}]);\n\t\tsrcWindow.document.documentElement.addEventListener(\"click\",$tw.popup,true);\n\t\tsrcWindow.haveInitialisedWindow = true;\n\t});\n\t// Close open windows when unloading main window\n\t$tw.addUnloadTask(function() {\n\t\t$tw.utils.each($tw.windows,function(win) {\n\t\t\twin.close();\n\t\t});\n\t});\n\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "startup"
        },
        "$:/core/modules/story.js": {
            "title": "$:/core/modules/story.js",
            "text": "/*\\\ntitle: $:/core/modules/story.js\ntype: application/javascript\nmodule-type: global\n\nLightweight object for managing interactions with the story and history lists.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nConstruct Story object with options:\nwiki: reference to wiki object to use to resolve tiddler titles\nstoryTitle: title of story list tiddler\nhistoryTitle: title of history list tiddler\n*/\nfunction Story(options) {\n\toptions = options || {};\n\tthis.wiki = options.wiki || $tw.wiki;\n\tthis.storyTitle = options.storyTitle || \"$:/StoryList\";\n\tthis.historyTitle = options.historyTitle || \"$:/HistoryList\";\n};\n\nStory.prototype.navigateTiddler = function(navigateTo,navigateFromTitle,navigateFromClientRect) {\n\tthis.addToStory(navigateTo,navigateFromTitle);\n\tthis.addToHistory(navigateTo,navigateFromClientRect);\n};\n\nStory.prototype.getStoryList = function() {\n\treturn this.wiki.getTiddlerList(this.storyTitle) || [];\n};\n\nStory.prototype.addToStory = function(navigateTo,navigateFromTitle,options) {\n\toptions = options || {};\n\tvar storyList = this.getStoryList();\n\t// See if the tiddler is already there\n\tvar slot = storyList.indexOf(navigateTo);\n\t// Quit if it already exists in the story river\n\tif(slot >= 0) {\n\t\treturn;\n\t}\n\t// First we try to find the position of the story element we navigated from\n\tvar fromIndex = storyList.indexOf(navigateFromTitle);\n\tif(fromIndex >= 0) {\n\t\t// The tiddler is added from inside the river\n\t\t// Determine where to insert the tiddler; Fallback is \"below\"\n\t\tswitch(options.openLinkFromInsideRiver) {\n\t\t\tcase \"top\":\n\t\t\t\tslot = 0;\n\t\t\t\tbreak;\n\t\t\tcase \"bottom\":\n\t\t\t\tslot = storyList.length;\n\t\t\t\tbreak;\n\t\t\tcase \"above\":\n\t\t\t\tslot = fromIndex;\n\t\t\t\tbreak;\n\t\t\tcase \"below\": // Intentional fall-through\n\t\t\tdefault:\n\t\t\t\tslot = fromIndex + 1;\n\t\t\t\tbreak;\n\t\t}\n\t} else {\n\t\t// The tiddler is opened from outside the river. Determine where to insert the tiddler; default is \"top\"\n\t\tif(options.openLinkFromOutsideRiver === \"bottom\") {\n\t\t\t// Insert at bottom\n\t\t\tslot = storyList.length;\n\t\t} else {\n\t\t\t// Insert at top\n\t\t\tslot = 0;\n\t\t}\n\t}\n\t// Add the tiddler\n\tstoryList.splice(slot,0,navigateTo);\n\t// Save the story\n\tthis.saveStoryList(storyList);\n};\n\nStory.prototype.saveStoryList = function(storyList) {\n\tvar storyTiddler = this.wiki.getTiddler(this.storyTitle);\n\tthis.wiki.addTiddler(new $tw.Tiddler(\n\t\tthis.wiki.getCreationFields(),\n\t\t{title: this.storyTitle},\n\t\tstoryTiddler,\n\t\t{list: storyList},\n\t\tthis.wiki.getModificationFields()\n\t));\n};\n\nStory.prototype.addToHistory = function(navigateTo,navigateFromClientRect) {\n\tvar titles = $tw.utils.isArray(navigateTo) ? navigateTo : [navigateTo];\n\t// Add a new record to the top of the history stack\n\tvar historyList = this.wiki.getTiddlerData(this.historyTitle,[]);\n\t$tw.utils.each(titles,function(title) {\n\t\thistoryList.push({title: title, fromPageRect: navigateFromClientRect});\n\t});\n\tthis.wiki.setTiddlerData(this.historyTitle,historyList,{\"current-tiddler\": titles[titles.length-1]});\n};\n\nStory.prototype.storyCloseTiddler = function(targetTitle) {\n// TBD\n};\n\nStory.prototype.storyCloseAllTiddlers = function() {\n// TBD\n};\n\nStory.prototype.storyCloseOtherTiddlers = function(targetTitle) {\n// TBD\n};\n\nStory.prototype.storyEditTiddler = function(targetTitle) {\n// TBD\n};\n\nStory.prototype.storyDeleteTiddler = function(targetTitle) {\n// TBD\n};\n\nStory.prototype.storySaveTiddler = function(targetTitle) {\n// TBD\n};\n\nStory.prototype.storyCancelTiddler = function(targetTitle) {\n// TBD\n};\n\nStory.prototype.storyNewTiddler = function(targetTitle) {\n// TBD\n};\n\nexports.Story = Story;\n\n\n})();\n",
            "type": "application/javascript",
            "module-type": "global"
        },
        "$:/core/modules/storyviews/classic.js": {
            "title": "$:/core/modules/storyviews/classic.js",
            "text": "/*\\\ntitle: $:/core/modules/storyviews/classic.js\ntype: application/javascript\nmodule-type: storyview\n\nViews the story as a linear sequence\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar easing = \"cubic-bezier(0.645, 0.045, 0.355, 1)\"; // From http://easings.net/#easeInOutCubic\n\nvar ClassicStoryView = function(listWidget) {\n\tthis.listWidget = listWidget;\n};\n\nClassicStoryView.prototype.navigateTo = function(historyInfo) {\n\tvar duration = $tw.utils.getAnimationDuration()\n\tvar listElementIndex = this.listWidget.findListItem(0,historyInfo.title);\n\tif(listElementIndex === undefined) {\n\t\treturn;\n\t}\n\tvar listItemWidget = this.listWidget.children[listElementIndex],\n\t\ttargetElement = listItemWidget.findFirstDomNode();\n\t// Abandon if the list entry isn't a DOM element (it might be a text node)\n\tif(!(targetElement instanceof Element)) {\n\t\treturn;\n\t}\n\tif(duration) {\n\t\t// Scroll the node into view\n\t\tthis.listWidget.dispatchEvent({type: \"tm-scroll\", target: targetElement});\t\n\t} else {\n\t\ttargetElement.scrollIntoView();\n\t}\n};\n\nClassicStoryView.prototype.insert = function(widget) {\n\tvar duration = $tw.utils.getAnimationDuration();\n\tif(duration) {\n\t\tvar targetElement = widget.findFirstDomNode();\n\t\t// Abandon if the list entry isn't a DOM element (it might be a text node)\n\t\tif(!(targetElement instanceof Element)) {\n\t\t\treturn;\n\t\t}\n\t\t// Get the current height of the tiddler\n\t\tvar computedStyle = window.getComputedStyle(targetElement),\n\t\t\tcurrMarginBottom = parseInt(computedStyle.marginBottom,10),\n\t\t\tcurrMarginTop = parseInt(computedStyle.marginTop,10),\n\t\t\tcurrHeight = targetElement.offsetHeight + currMarginTop;\n\t\t// Reset the margin once the transition is over\n\t\tsetTimeout(function() {\n\t\t\t$tw.utils.setStyle(targetElement,[\n\t\t\t\t{transition: \"none\"},\n\t\t\t\t{marginBottom: \"\"}\n\t\t\t]);\n\t\t},duration);\n\t\t// Set up the initial position of the element\n\t\t$tw.utils.setStyle(targetElement,[\n\t\t\t{transition: \"none\"},\n\t\t\t{marginBottom: (-currHeight) + \"px\"},\n\t\t\t{opacity: \"0.0\"}\n\t\t]);\n\t\t$tw.utils.forceLayout(targetElement);\n\t\t// Transition to the final position\n\t\t$tw.utils.setStyle(targetElement,[\n\t\t\t{transition: \"opacity \" + duration + \"ms \" + easing + \", \" +\n\t\t\t\t\t\t\"margin-bottom \" + duration + \"ms \" + easing},\n\t\t\t{marginBottom: currMarginBottom + \"px\"},\n\t\t\t{opacity: \"1.0\"}\n\t]);\n\t}\n};\n\nClassicStoryView.prototype.remove = function(widget) {\n\tvar duration = $tw.utils.getAnimationDuration();\n\tif(duration) {\n\t\tvar targetElement = widget.findFirstDomNode(),\n\t\t\tremoveElement = function() {\n\t\t\t\twidget.removeChildDomNodes();\n\t\t\t};\n\t\t// Abandon if the list entry isn't a DOM element (it might be a text node)\n\t\tif(!(targetElement instanceof Element)) {\n\t\t\tremoveElement();\n\t\t\treturn;\n\t\t}\n\t\t// Get the current height of the tiddler\n\t\tvar currWidth = targetElement.offsetWidth,\n\t\t\tcomputedStyle = window.getComputedStyle(targetElement),\n\t\t\tcurrMarginBottom = parseInt(computedStyle.marginBottom,10),\n\t\t\tcurrMarginTop = parseInt(computedStyle.marginTop,10),\n\t\t\tcurrHeight = targetElement.offsetHeight + currMarginTop;\n\t\t// Remove the dom nodes of the widget at the end of the transition\n\t\tsetTimeout(removeElement,duration);\n\t\t// Animate the closure\n\t\t$tw.utils.setStyle(targetElement,[\n\t\t\t{transition: \"none\"},\n\t\t\t{transform: \"translateX(0px)\"},\n\t\t\t{marginBottom:  currMarginBottom + \"px\"},\n\t\t\t{opacity: \"1.0\"}\n\t\t]);\n\t\t$tw.utils.forceLayout(targetElement);\n\t\t$tw.utils.setStyle(targetElement,[\n\t\t\t{transition: $tw.utils.roundTripPropertyName(\"transform\") + \" \" + duration + \"ms \" + easing + \", \" +\n\t\t\t\t\t\t\"opacity \" + duration + \"ms \" + easing + \", \" +\n\t\t\t\t\t\t\"margin-bottom \" + duration + \"ms \" + easing},\n\t\t\t{transform: \"translateX(-\" + currWidth + \"px)\"},\n\t\t\t{marginBottom: (-currHeight) + \"px\"},\n\t\t\t{opacity: \"0.0\"}\n\t\t]);\n\t} else {\n\t\twidget.removeChildDomNodes();\n\t}\n};\n\nexports.classic = ClassicStoryView;\n\n})();",
            "type": "application/javascript",
            "module-type": "storyview"
        },
        "$:/core/modules/storyviews/pop.js": {
            "title": "$:/core/modules/storyviews/pop.js",
            "text": "/*\\\ntitle: $:/core/modules/storyviews/pop.js\ntype: application/javascript\nmodule-type: storyview\n\nAnimates list insertions and removals\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar PopStoryView = function(listWidget) {\n\tthis.listWidget = listWidget;\n};\n\nPopStoryView.prototype.navigateTo = function(historyInfo) {\n\tvar listElementIndex = this.listWidget.findListItem(0,historyInfo.title);\n\tif(listElementIndex === undefined) {\n\t\treturn;\n\t}\n\tvar listItemWidget = this.listWidget.children[listElementIndex],\n\t\ttargetElement = listItemWidget.findFirstDomNode();\n\t// Abandon if the list entry isn't a DOM element (it might be a text node)\n\tif(!(targetElement instanceof Element)) {\n\t\treturn;\n\t}\n\t// Scroll the node into view\n\tthis.listWidget.dispatchEvent({type: \"tm-scroll\", target: targetElement});\n};\n\nPopStoryView.prototype.insert = function(widget) {\n\tvar targetElement = widget.findFirstDomNode(),\n\t\tduration = $tw.utils.getAnimationDuration();\n\t// Abandon if the list entry isn't a DOM element (it might be a text node)\n\tif(!(targetElement instanceof Element)) {\n\t\treturn;\n\t}\n\t// Reset once the transition is over\n\tsetTimeout(function() {\n\t\t$tw.utils.setStyle(targetElement,[\n\t\t\t{transition: \"none\"},\n\t\t\t{transform: \"none\"}\n\t\t]);\n\t\t$tw.utils.setStyle(widget.document.body,[\n\t\t\t{\"overflow-x\": \"\"}\n\t\t]);\n\t},duration);\n\t// Prevent the page from overscrolling due to the zoom factor\n\t$tw.utils.setStyle(widget.document.body,[\n\t\t{\"overflow-x\": \"hidden\"}\n\t]);\n\t// Set up the initial position of the element\n\t$tw.utils.setStyle(targetElement,[\n\t\t{transition: \"none\"},\n\t\t{transform: \"scale(2)\"},\n\t\t{opacity: \"0.0\"}\n\t]);\n\t$tw.utils.forceLayout(targetElement);\n\t// Transition to the final position\n\t$tw.utils.setStyle(targetElement,[\n\t\t{transition: $tw.utils.roundTripPropertyName(\"transform\") + \" \" + duration + \"ms ease-in-out, \" +\n\t\t\t\t\t\"opacity \" + duration + \"ms ease-in-out\"},\n\t\t{transform: \"scale(1)\"},\n\t\t{opacity: \"1.0\"}\n\t]);\n};\n\nPopStoryView.prototype.remove = function(widget) {\n\tvar targetElement = widget.findFirstDomNode(),\n\t\tduration = $tw.utils.getAnimationDuration(),\n\t\tremoveElement = function() {\n\t\t\tif(targetElement && targetElement.parentNode) {\n\t\t\t\twidget.removeChildDomNodes();\n\t\t\t}\n\t\t};\n\t// Abandon if the list entry isn't a DOM element (it might be a text node)\n\tif(!(targetElement instanceof Element)) {\n\t\tremoveElement();\n\t\treturn;\n\t}\n\t// Remove the element at the end of the transition\n\tsetTimeout(removeElement,duration);\n\t// Animate the closure\n\t$tw.utils.setStyle(targetElement,[\n\t\t{transition: \"none\"},\n\t\t{transform: \"scale(1)\"},\n\t\t{opacity: \"1.0\"}\n\t]);\n\t$tw.utils.forceLayout(targetElement);\n\t$tw.utils.setStyle(targetElement,[\n\t\t{transition: $tw.utils.roundTripPropertyName(\"transform\") + \" \" + duration + \"ms ease-in-out, \" +\n\t\t\t\t\t\"opacity \" + duration + \"ms ease-in-out\"},\n\t\t{transform: \"scale(0.1)\"},\n\t\t{opacity: \"0.0\"}\n\t]);\n};\n\nexports.pop = PopStoryView;\n\n})();\n",
            "type": "application/javascript",
            "module-type": "storyview"
        },
        "$:/core/modules/storyviews/zoomin.js": {
            "title": "$:/core/modules/storyviews/zoomin.js",
            "text": "/*\\\ntitle: $:/core/modules/storyviews/zoomin.js\ntype: application/javascript\nmodule-type: storyview\n\nZooms between individual tiddlers\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar easing = \"cubic-bezier(0.645, 0.045, 0.355, 1)\"; // From http://easings.net/#easeInOutCubic\n\nvar ZoominListView = function(listWidget) {\n\tvar self = this;\n\tthis.listWidget = listWidget;\n\t// Get the index of the tiddler that is at the top of the history\n\tvar history = this.listWidget.wiki.getTiddlerDataCached(this.listWidget.historyTitle,[]),\n\t\ttargetTiddler;\n\tif(history.length > 0) {\n\t\ttargetTiddler = history[history.length-1].title;\n\t}\n\t// Make all the tiddlers position absolute, and hide all but the top (or first) one\n\t$tw.utils.each(this.listWidget.children,function(itemWidget,index) {\n\t\tvar domNode = itemWidget.findFirstDomNode();\n\t\t// Abandon if the list entry isn't a DOM element (it might be a text node)\n\t\tif(!(domNode instanceof Element)) {\n\t\t\treturn;\n\t\t}\n\t\tif((targetTiddler && targetTiddler !== itemWidget.parseTreeNode.itemTitle) || (!targetTiddler && index)) {\n\t\t\tdomNode.style.display = \"none\";\n\t\t} else {\n\t\t\tself.currentTiddlerDomNode = domNode;\n\t\t}\n\t\t$tw.utils.addClass(domNode,\"tc-storyview-zoomin-tiddler\");\n\t});\n};\n\nZoominListView.prototype.navigateTo = function(historyInfo) {\n\tvar duration = $tw.utils.getAnimationDuration(),\n\t\tlistElementIndex = this.listWidget.findListItem(0,historyInfo.title);\n\tif(listElementIndex === undefined) {\n\t\treturn;\n\t}\n\tvar listItemWidget = this.listWidget.children[listElementIndex],\n\t\ttargetElement = listItemWidget.findFirstDomNode();\n\t// Abandon if the list entry isn't a DOM element (it might be a text node)\n\tif(!(targetElement instanceof Element)) {\n\t\treturn;\n\t}\n\t// Make the new tiddler be position absolute and visible so that we can measure it\n\t$tw.utils.addClass(targetElement,\"tc-storyview-zoomin-tiddler\");\n\t$tw.utils.setStyle(targetElement,[\n\t\t{display: \"block\"},\n\t\t{transformOrigin: \"0 0\"},\n\t\t{transform: \"translateX(0px) translateY(0px) scale(1)\"},\n\t\t{transition: \"none\"},\n\t\t{opacity: \"0.0\"}\n\t]);\n\t// Get the position of the source node, or use the centre of the window as the source position\n\tvar sourceBounds = historyInfo.fromPageRect || {\n\t\t\tleft: window.innerWidth/2 - 2,\n\t\t\ttop: window.innerHeight/2 - 2,\n\t\t\twidth: window.innerWidth/8,\n\t\t\theight: window.innerHeight/8\n\t\t};\n\t// Try to find the title node in the target tiddler\n\tvar titleDomNode = findTitleDomNode(listItemWidget) || listItemWidget.findFirstDomNode(),\n\t\tzoomBounds = titleDomNode.getBoundingClientRect();\n\t// Compute the transform for the target tiddler to make the title lie over the source rectange\n\tvar targetBounds = targetElement.getBoundingClientRect(),\n\t\tscale = sourceBounds.width / zoomBounds.width,\n\t\tx = sourceBounds.left - targetBounds.left - (zoomBounds.left - targetBounds.left) * scale,\n\t\ty = sourceBounds.top - targetBounds.top - (zoomBounds.top - targetBounds.top) * scale;\n\t// Transform the target tiddler to its starting position\n\t$tw.utils.setStyle(targetElement,[\n\t\t{transform: \"translateX(\" + x + \"px) translateY(\" + y + \"px) scale(\" + scale + \")\"}\n\t]);\n\t// Force layout\n\t$tw.utils.forceLayout(targetElement);\n\t// Apply the ending transitions with a timeout to ensure that the previously applied transformations are applied first\n\tvar self = this,\n\t\tprevCurrentTiddler = this.currentTiddlerDomNode;\n\tthis.currentTiddlerDomNode = targetElement;\n\t// Transform the target tiddler to its natural size\n\t$tw.utils.setStyle(targetElement,[\n\t\t{transition: $tw.utils.roundTripPropertyName(\"transform\") + \" \" + duration + \"ms \" + easing + \", opacity \" + duration + \"ms \" + easing},\n\t\t{opacity: \"1.0\"},\n\t\t{transform: \"translateX(0px) translateY(0px) scale(1)\"},\n\t\t{zIndex: \"500\"},\n\t]);\n\t// Transform the previous tiddler out of the way and then hide it\n\tif(prevCurrentTiddler && prevCurrentTiddler !== targetElement) {\n\t\tscale = zoomBounds.width / sourceBounds.width;\n\t\tx =  zoomBounds.left - targetBounds.left - (sourceBounds.left - targetBounds.left) * scale;\n\t\ty =  zoomBounds.top - targetBounds.top - (sourceBounds.top - targetBounds.top) * scale;\n\t\t$tw.utils.setStyle(prevCurrentTiddler,[\n\t\t\t{transition: $tw.utils.roundTripPropertyName(\"transform\") + \" \" + duration + \"ms \" + easing + \", opacity \" + duration + \"ms \" + easing},\n\t\t\t{opacity: \"0.0\"},\n\t\t\t{transformOrigin: \"0 0\"},\n\t\t\t{transform: \"translateX(\" + x + \"px) translateY(\" + y + \"px) scale(\" + scale + \")\"},\n\t\t\t{zIndex: \"0\"}\n\t\t]);\n\t\t// Hide the tiddler when the transition has finished\n\t\tsetTimeout(function() {\n\t\t\tif(self.currentTiddlerDomNode !== prevCurrentTiddler) {\n\t\t\t\tprevCurrentTiddler.style.display = \"none\";\n\t\t\t}\n\t\t},duration);\n\t}\n\t// Scroll the target into view\n//\t$tw.pageScroller.scrollIntoView(targetElement);\n};\n\n/*\nFind the first child DOM node of a widget that has the class \"tc-title\"\n*/\nfunction findTitleDomNode(widget,targetClass) {\n\ttargetClass = targetClass || \"tc-title\";\n\tvar domNode = widget.findFirstDomNode();\n\tif(domNode && domNode.querySelector) {\n\t\treturn domNode.querySelector(\".\" + targetClass);\n\t}\n\treturn null;\n}\n\nZoominListView.prototype.insert = function(widget) {\n\tvar targetElement = widget.findFirstDomNode();\n\t// Abandon if the list entry isn't a DOM element (it might be a text node)\n\tif(!(targetElement instanceof Element)) {\n\t\treturn;\n\t}\n\t// Make the newly inserted node position absolute and hidden\n\t$tw.utils.addClass(targetElement,\"tc-storyview-zoomin-tiddler\");\n\t$tw.utils.setStyle(targetElement,[\n\t\t{display: \"none\"}\n\t]);\n};\n\nZoominListView.prototype.remove = function(widget) {\n\tvar targetElement = widget.findFirstDomNode(),\n\t\tduration = $tw.utils.getAnimationDuration(),\n\t\tremoveElement = function() {\n\t\t\twidget.removeChildDomNodes();\n\t\t};\n\t// Abandon if the list entry isn't a DOM element (it might be a text node)\n\tif(!(targetElement instanceof Element)) {\n\t\tremoveElement();\n\t\treturn;\n\t}\n\t// Abandon if hidden\n\tif(targetElement.style.display != \"block\" ) {\n\t\tremoveElement();\n\t\treturn;\n\t}\n\t// Set up the tiddler that is being closed\n\t$tw.utils.addClass(targetElement,\"tc-storyview-zoomin-tiddler\");\n\t$tw.utils.setStyle(targetElement,[\n\t\t{display: \"block\"},\n\t\t{transformOrigin: \"50% 50%\"},\n\t\t{transform: \"translateX(0px) translateY(0px) scale(1)\"},\n\t\t{transition: \"none\"},\n\t\t{zIndex: \"0\"}\n\t]);\n\t// We'll move back to the previous or next element in the story\n\tvar toWidget = widget.previousSibling();\n\tif(!toWidget) {\n\t\ttoWidget = widget.nextSibling();\n\t}\n\tvar toWidgetDomNode = toWidget && toWidget.findFirstDomNode();\n\t// Set up the tiddler we're moving back in\n\tif(toWidgetDomNode) {\n\t\t$tw.utils.addClass(toWidgetDomNode,\"tc-storyview-zoomin-tiddler\");\n\t\t$tw.utils.setStyle(toWidgetDomNode,[\n\t\t\t{display: \"block\"},\n\t\t\t{transformOrigin: \"50% 50%\"},\n\t\t\t{transform: \"translateX(0px) translateY(0px) scale(10)\"},\n\t\t\t{transition: $tw.utils.roundTripPropertyName(\"transform\") + \" \" + duration + \"ms \" + easing + \", opacity \" + duration + \"ms \" + easing},\n\t\t\t{opacity: \"0\"},\n\t\t\t{zIndex: \"500\"}\n\t\t]);\n\t\tthis.currentTiddlerDomNode = toWidgetDomNode;\n\t}\n\t// Animate them both\n\t// Force layout\n\t$tw.utils.forceLayout(this.listWidget.parentDomNode);\n\t// First, the tiddler we're closing\n\t$tw.utils.setStyle(targetElement,[\n\t\t{transformOrigin: \"50% 50%\"},\n\t\t{transform: \"translateX(0px) translateY(0px) scale(0.1)\"},\n\t\t{transition: $tw.utils.roundTripPropertyName(\"transform\") + \" \" + duration + \"ms \" + easing + \", opacity \" + duration + \"ms \" + easing},\n\t\t{opacity: \"0\"},\n\t\t{zIndex: \"0\"}\n\t]);\n\tsetTimeout(removeElement,duration);\n\t// Now the tiddler we're going back to\n\tif(toWidgetDomNode) {\n\t\t$tw.utils.setStyle(toWidgetDomNode,[\n\t\t\t{transform: \"translateX(0px) translateY(0px) scale(1)\"},\n\t\t\t{opacity: \"1\"}\n\t\t]);\n\t}\n\treturn true; // Indicate that we'll delete the DOM node\n};\n\nexports.zoomin = ZoominListView;\n\n})();\n",
            "type": "application/javascript",
            "module-type": "storyview"
        },
        "$:/core/modules/syncer.js": {
            "title": "$:/core/modules/syncer.js",
            "text": "/*\\\ntitle: $:/core/modules/syncer.js\ntype: application/javascript\nmodule-type: global\n\nThe syncer tracks changes to the store and synchronises them to a remote data store represented as a \"sync adaptor\"\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nDefaults\n*/\nSyncer.prototype.titleIsLoggedIn = \"$:/status/IsLoggedIn\";\nSyncer.prototype.titleIsAnonymous = \"$:/status/IsAnonymous\";\nSyncer.prototype.titleIsReadOnly = \"$:/status/IsReadOnly\";\nSyncer.prototype.titleUserName = \"$:/status/UserName\";\nSyncer.prototype.titleSyncFilter = \"$:/config/SyncFilter\";\nSyncer.prototype.titleSyncPollingInterval = \"$:/config/SyncPollingInterval\";\nSyncer.prototype.titleSyncDisableLazyLoading = \"$:/config/SyncDisableLazyLoading\";\nSyncer.prototype.titleSavedNotification = \"$:/language/Notifications/Save/Done\";\nSyncer.prototype.titleSyncThrottleInterval = \"$:/config/SyncThrottleInterval\";\nSyncer.prototype.taskTimerInterval = 1 * 1000; // Interval for sync timer\nSyncer.prototype.throttleInterval = 1 * 1000; // Defer saving tiddlers if they've changed in the last 1s...\nSyncer.prototype.errorRetryInterval = 5 * 1000; // Interval to retry after an error\nSyncer.prototype.fallbackInterval = 10 * 1000; // Unless the task is older than 10s\nSyncer.prototype.pollTimerInterval = 60 * 1000; // Interval for polling for changes from the adaptor\n\n/*\nInstantiate the syncer with the following options:\nsyncadaptor: reference to syncadaptor to be used\nwiki: wiki to be synced\n*/\nfunction Syncer(options) {\n\tvar self = this;\n\tthis.wiki = options.wiki;\n\t// Save parameters\n\tthis.syncadaptor = options.syncadaptor;\n\tthis.disableUI = !!options.disableUI;\n\tthis.titleIsLoggedIn = options.titleIsLoggedIn || this.titleIsLoggedIn;\n\tthis.titleUserName = options.titleUserName || this.titleUserName;\n\tthis.titleSyncFilter = options.titleSyncFilter || this.titleSyncFilter;\n\tthis.titleSavedNotification = options.titleSavedNotification || this.titleSavedNotification;\n\tthis.taskTimerInterval = options.taskTimerInterval || this.taskTimerInterval;\n\tthis.throttleInterval = options.throttleInterval || parseInt(this.wiki.getTiddlerText(this.titleSyncThrottleInterval,\"\"),10) || this.throttleInterval;\n\tthis.errorRetryInterval = options.errorRetryInterval || this.errorRetryInterval;\n\tthis.fallbackInterval = options.fallbackInterval || this.fallbackInterval;\n\tthis.pollTimerInterval = options.pollTimerInterval || parseInt(this.wiki.getTiddlerText(this.titleSyncPollingInterval,\"\"),10) || this.pollTimerInterval;\n\tthis.logging = \"logging\" in options ? options.logging : true;\n\t// Make a logger\n\tthis.logger = new $tw.utils.Logger(\"syncer\" + ($tw.browser ? \"-browser\" : \"\") + ($tw.node ? \"-server\" : \"\")  + (this.syncadaptor.name ? (\"-\" + this.syncadaptor.name) : \"\"),{\n\t\tcolour: \"cyan\",\n\t\tenable: this.logging,\n\t\tsaveHistory: true\n\t});\n\t// Make another logger for connection errors\n\tthis.loggerConnection = new $tw.utils.Logger(\"syncer\" + ($tw.browser ? \"-browser\" : \"\") + ($tw.node ? \"-server\" : \"\")  + (this.syncadaptor.name ? (\"-\" + this.syncadaptor.name) : \"\") + \"-connection\",{\n\t\tcolour: \"cyan\",\n\t\tenable: this.logging\n\t});\n\t// Ask the syncadaptor to use the main logger\n\tif(this.syncadaptor.setLoggerSaveBuffer) {\n\t\tthis.syncadaptor.setLoggerSaveBuffer(this.logger);\n\t}\n\t// Compile the dirty tiddler filter\n\tthis.filterFn = this.wiki.compileFilter(this.wiki.getTiddlerText(this.titleSyncFilter));\n\t// Record information for known tiddlers\n\tthis.readTiddlerInfo();\n\tthis.titlesToBeLoaded = {}; // Hashmap of titles of tiddlers that need loading from the server\n\tthis.titlesHaveBeenLazyLoaded = {}; // Hashmap of titles of tiddlers that have already been lazily loaded from the server\n\t// Timers\n\tthis.taskTimerId = null; // Timer for task dispatch\n\tthis.pollTimerId = null; // Timer for polling server\n\t// Number of outstanding requests\n\tthis.numTasksInProgress = 0;\n\t// Listen out for changes to tiddlers\n\tthis.wiki.addEventListener(\"change\",function(changes) {\n\t\t// Filter the changes to just include ones that are being synced\n\t\tvar filteredChanges = self.getSyncedTiddlers(function(callback) {\n\t\t\t$tw.utils.each(changes,function(change,title) {\n\t\t\t\tvar tiddler = self.wiki.tiddlerExists(title) && self.wiki.getTiddler(title);\n\t\t\t\tcallback(tiddler,title);\n\t\t\t});\n\t\t});\n\t\tif(filteredChanges.length > 0) {\n\t\t\tself.processTaskQueue();\n\t\t} else {\n\t\t\t// Look for deletions of tiddlers we're already syncing\t\n\t\t\tvar outstandingDeletion = false\n\t\t\t$tw.utils.each(changes,function(change,title,object) {\n\t\t\t\tif(change.deleted && $tw.utils.hop(self.tiddlerInfo,title)) {\n\t\t\t\t\toutstandingDeletion = true;\n\t\t\t\t}\n\t\t\t});\n\t\t\tif(outstandingDeletion) {\n\t\t\t\tself.processTaskQueue();\n\t\t\t}\n\t\t}\n\t});\n\t// Browser event handlers\n\tif($tw.browser && !this.disableUI) {\n\t\t// Set up our beforeunload handler\n\t\t$tw.addUnloadTask(function(event) {\n\t\t\tvar confirmationMessage;\n\t\t\tif(self.isDirty()) {\n\t\t\t\tconfirmationMessage = $tw.language.getString(\"UnsavedChangesWarning\");\n\t\t\t\tevent.returnValue = confirmationMessage; // Gecko\n\t\t\t}\n\t\t\treturn confirmationMessage;\n\t\t});\n\t\t// Listen out for login/logout/refresh events in the browser\n\t\t$tw.rootWidget.addEventListener(\"tm-login\",function(event) {\n\t\t\tvar username = event && event.paramObject && event.paramObject.username,\n\t\t\t\tpassword = event && event.paramObject && event.paramObject.password;\n\t\t\tif(username && password) {\n\t\t\t\t// Login with username and password\n\t\t\t\tself.login(username,password,function() {});\n\t\t\t} else {\n\t\t\t\t// No username and password, so we display a prompt\n\t\t\t\tself.handleLoginEvent();\t\t\t\t\n\t\t\t}\n\t\t});\n\t\t$tw.rootWidget.addEventListener(\"tm-logout\",function() {\n\t\t\tself.handleLogoutEvent();\n\t\t});\n\t\t$tw.rootWidget.addEventListener(\"tm-server-refresh\",function() {\n\t\t\tself.handleRefreshEvent();\n\t\t});\n\t\t$tw.rootWidget.addEventListener(\"tm-copy-syncer-logs-to-clipboard\",function() {\n\t\t\t$tw.utils.copyToClipboard($tw.utils.getSystemInfo() + \"\\n\\nLog:\\n\" + self.logger.getBuffer());\n\t\t});\n\t}\n\t// Listen out for lazyLoad events\n\tif(!this.disableUI && this.wiki.getTiddlerText(this.titleSyncDisableLazyLoading) !== \"yes\") {\n\t\tthis.wiki.addEventListener(\"lazyLoad\",function(title) {\n\t\t\tself.handleLazyLoadEvent(title);\n\t\t});\t\t\n\t}\n\t// Get the login status\n\tthis.getStatus(function(err,isLoggedIn) {\n\t\t// Do a sync from the server\n\t\tself.syncFromServer();\n\t});\n}\n\n/*\nShow a generic network error alert\n*/\nSyncer.prototype.displayError = function(msg,err) {\n\tif(err === ($tw.language.getString(\"Error/XMLHttpRequest\") + \": 0\")) {\n\t\tthis.loggerConnection.alert($tw.language.getString(\"Error/NetworkErrorAlert\"));\n\t\tthis.logger.log(msg + \":\",err);\n\t} else {\n\t\tthis.logger.alert(msg + \":\",err);\n\t}\n};\n\n/*\nReturn an array of the tiddler titles that are subjected to syncing\n*/\nSyncer.prototype.getSyncedTiddlers = function(source) {\n\treturn this.filterFn.call(this.wiki,source);\n};\n\n/*\nReturn an array of the tiddler titles that are subjected to syncing\n*/\nSyncer.prototype.getTiddlerRevision = function(title) {\n\tif(this.syncadaptor && this.syncadaptor.getTiddlerRevision) {\n\t\treturn this.syncadaptor.getTiddlerRevision(title);\n\t} else {\n\t\treturn this.wiki.getTiddler(title).fields.revision;\t\n\t} \n};\n\n/*\nRead (or re-read) the latest tiddler info from the store\n*/\nSyncer.prototype.readTiddlerInfo = function() {\n\t// Hashmap by title of {revision:,changeCount:,adaptorInfo:}\n\t// \"revision\" is the revision of the tiddler last seen on the server, and \"changecount\" is the corresponding local changecount\n\tthis.tiddlerInfo = {};\n\t// Record information for known tiddlers\n\tvar self = this,\n\t\ttiddlers = this.getSyncedTiddlers();\n\t$tw.utils.each(tiddlers,function(title) {\n\t\tvar tiddler = self.wiki.getTiddler(title);\n\t\tif(tiddler) {\n\t\t\tself.tiddlerInfo[title] = {\n\t\t\t\trevision: self.getTiddlerRevision(title),\n\t\t\t\tadaptorInfo: self.syncadaptor && self.syncadaptor.getTiddlerInfo(tiddler),\n\t\t\t\tchangeCount: self.wiki.getChangeCount(title)\n\t\t\t};\n\t\t}\n\t});\n};\n\n/*\nChecks whether the wiki is dirty (ie the window shouldn't be closed)\n*/\nSyncer.prototype.isDirty = function() {\n\tthis.logger.log(\"Checking dirty status\");\n\t// Check tiddlers that are in the store and included in the filter function\n\tvar titles = this.getSyncedTiddlers();\n\tfor(var index=0; index<titles.length; index++) {\n\t\tvar title = titles[index],\n\t\t\ttiddlerInfo = this.tiddlerInfo[title];\n\t\tif(this.wiki.tiddlerExists(title)) {\n\t\t\tif(tiddlerInfo) {\n\t\t\t\t// If the tiddler is known on the server and has been modified locally then it needs to be saved to the server\n\t\t\t\tif(this.wiki.getChangeCount(title) > tiddlerInfo.changeCount) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// If the tiddler isn't known on the server then it needs to be saved to the server\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\t}\n\t// Check tiddlers that are known from the server but not currently in the store\n\ttitles = Object.keys(this.tiddlerInfo);\n\tfor(index=0; index<titles.length; index++) {\n\t\tif(!this.wiki.tiddlerExists(titles[index])) {\n\t\t\t// There must be a pending delete\n\t\t\treturn true;\n\t\t}\n\t}\n\treturn false;\n};\n\n/*\nUpdate the document body with the class \"tc-dirty\" if the wiki has unsaved/unsynced changes\n*/\nSyncer.prototype.updateDirtyStatus = function() {\n\tif($tw.browser && !this.disableUI) {\n\t\tvar dirty = this.isDirty();\n\t\t$tw.utils.toggleClass(document.body,\"tc-dirty\",dirty);\n\t\tif(!dirty) {\n\t\t\tthis.loggerConnection.clearAlerts();\n\t\t}\n\t}\n};\n\n/*\nSave an incoming tiddler in the store, and updates the associated tiddlerInfo\n*/\nSyncer.prototype.storeTiddler = function(tiddlerFields) {\n\t// Save the tiddler\n\tvar tiddler = new $tw.Tiddler(tiddlerFields);\n\tthis.wiki.addTiddler(tiddler);\n\t// Save the tiddler revision and changeCount details\n\tthis.tiddlerInfo[tiddlerFields.title] = {\n\t\trevision: this.getTiddlerRevision(tiddlerFields.title),\n\t\tadaptorInfo: this.syncadaptor.getTiddlerInfo(tiddler),\n\t\tchangeCount: this.wiki.getChangeCount(tiddlerFields.title)\n\t};\n};\n\nSyncer.prototype.getStatus = function(callback) {\n\tvar self = this;\n\t// Check if the adaptor supports getStatus()\n\tif(this.syncadaptor && this.syncadaptor.getStatus) {\n\t\t// Mark us as not logged in\n\t\tthis.wiki.addTiddler({title: this.titleIsLoggedIn,text: \"no\"});\n\t\t// Get login status\n\t\tthis.syncadaptor.getStatus(function(err,isLoggedIn,username,isReadOnly,isAnonymous) {\n\t\t\tif(err) {\n\t\t\t\tself.logger.alert(err);\n\t\t\t} else {\n\t\t\t\t// Set the various status tiddlers\n\t\t\t\tself.wiki.addTiddler({title: self.titleIsReadOnly,text: isReadOnly ? \"yes\" : \"no\"});\n\t\t\t\tself.wiki.addTiddler({title: self.titleIsAnonymous,text: isAnonymous ? \"yes\" : \"no\"});\n\t\t\t\tself.wiki.addTiddler({title: self.titleIsLoggedIn,text: isLoggedIn ? \"yes\" : \"no\"});\n\t\t\t\tif(isLoggedIn) {\n\t\t\t\t\tself.wiki.addTiddler({title: self.titleUserName,text: username || \"\"});\n\t\t\t\t}\n\t\t\t}\n\t\t\t// Invoke the callback\n\t\t\tif(callback) {\n\t\t\t\tcallback(err,isLoggedIn,username);\n\t\t\t}\n\t\t});\n\t} else {\n\t\tcallback(null,true,\"UNAUTHENTICATED\");\n\t}\n};\n\n/*\nSynchronise from the server by reading the skinny tiddler list and queuing up loads for any tiddlers that we don't already have up to date\n*/\nSyncer.prototype.syncFromServer = function() {\n\tvar self = this,\n\t\tcancelNextSync = function() {\n\t\t\tif(self.pollTimerId) {\n\t\t\t\tclearTimeout(self.pollTimerId);\n\t\t\t\tself.pollTimerId = null;\n\t\t\t}\n\t\t},\n\t\ttriggerNextSync = function() {\n\t\t\tself.pollTimerId = setTimeout(function() {\n\t\t\t\tself.pollTimerId = null;\n\t\t\t\tself.syncFromServer.call(self);\n\t\t\t},self.pollTimerInterval);\n\t\t},\n\t\tsyncSystemFromServer = (self.wiki.getTiddlerText(\"$:/config/SyncSystemTiddlersFromServer\") === \"yes\" ? true : false);\n\tif(this.syncadaptor && this.syncadaptor.getUpdatedTiddlers) {\n\t\tthis.logger.log(\"Retrieving updated tiddler list\");\n\t\tcancelNextSync();\n\t\tthis.syncadaptor.getUpdatedTiddlers(self,function(err,updates) {\n\t\t\ttriggerNextSync();\n\t\t\tif(err) {\n\t\t\t\tself.displayError($tw.language.getString(\"Error/RetrievingSkinny\"),err);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif(updates) {\n\t\t\t\t$tw.utils.each(updates.modifications,function(title) {\n\t\t\t\t\tself.titlesToBeLoaded[title] = true;\n\t\t\t\t});\n\t\t\t\t$tw.utils.each(updates.deletions,function(title) {\n\t\t\t\t\tif(syncSystemFromServer || !self.wiki.isSystemTiddler(title)) {\n\t\t\t\t\t\tdelete self.tiddlerInfo[title];\n\t\t\t\t\t\tself.logger.log(\"Deleting tiddler missing from server:\",title);\n\t\t\t\t\t\tself.wiki.deleteTiddler(title);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\tif(updates.modifications.length > 0 || updates.deletions.length > 0) {\n\t\t\t\t\tself.processTaskQueue();\n\t\t\t\t}\t\t\t\t\n\t\t\t}\n\t\t});\n\t} else if(this.syncadaptor && this.syncadaptor.getSkinnyTiddlers) {\n\t\tthis.logger.log(\"Retrieving skinny tiddler list\");\n\t\tcancelNextSync();\n\t\tthis.syncadaptor.getSkinnyTiddlers(function(err,tiddlers) {\n\t\t\ttriggerNextSync();\n\t\t\t// Check for errors\n\t\t\tif(err) {\n\t\t\t\tself.displayError($tw.language.getString(\"Error/RetrievingSkinny\"),err);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\t// Keep track of which tiddlers we already know about have been reported this time\n\t\t\tvar previousTitles = Object.keys(self.tiddlerInfo);\n\t\t\t// Process each incoming tiddler\n\t\t\tfor(var t=0; t<tiddlers.length; t++) {\n\t\t\t\t// Get the incoming tiddler fields, and the existing tiddler\n\t\t\t\tvar tiddlerFields = tiddlers[t],\n\t\t\t\t\tincomingRevision = tiddlerFields.revision + \"\",\n\t\t\t\t\ttiddler = self.wiki.tiddlerExists(tiddlerFields.title) && self.wiki.getTiddler(tiddlerFields.title),\n\t\t\t\t\ttiddlerInfo = self.tiddlerInfo[tiddlerFields.title],\n\t\t\t\t\tcurrRevision = tiddlerInfo ? tiddlerInfo.revision : null,\n\t\t\t\t\tindexInPreviousTitles = previousTitles.indexOf(tiddlerFields.title);\n\t\t\t\tif(indexInPreviousTitles !== -1) {\n\t\t\t\t\tpreviousTitles.splice(indexInPreviousTitles,1);\n\t\t\t\t}\n\t\t\t\t// Ignore the incoming tiddler if it's the same as the revision we've already got\n\t\t\t\tif(currRevision !== incomingRevision) {\n\t\t\t\t\t// Only load the skinny version if we don't already have a fat version of the tiddler\n\t\t\t\t\tif(!tiddler || tiddler.fields.text === undefined) {\n\t\t\t\t\t\tself.storeTiddler(tiddlerFields);\n\t\t\t\t\t}\n\t\t\t\t\t// Do a full load of this tiddler\n\t\t\t\t\tself.titlesToBeLoaded[tiddlerFields.title] = true;\n\t\t\t\t}\n\t\t\t}\n\t\t\t// Delete any tiddlers that were previously reported but missing this time\n\t\t\t$tw.utils.each(previousTitles,function(title) {\n\t\t\t\tif(syncSystemFromServer || !self.wiki.isSystemTiddler(title)) {\n\t\t\t\t\tdelete self.tiddlerInfo[title];\n\t\t\t\t\tself.logger.log(\"Deleting tiddler missing from server:\",title);\n\t\t\t\t\tself.wiki.deleteTiddler(title);\n\t\t\t\t}\n\t\t\t});\n\t\t\tself.processTaskQueue();\n\t\t});\n\t}\n};\n\n/*\nForce load a tiddler from the server\n*/\nSyncer.prototype.enqueueLoadTiddler = function(title) {\n\tthis.titlesToBeLoaded[title] = true;\n\tthis.processTaskQueue();\n};\n\n/*\nLazily load a skinny tiddler if we can\n*/\nSyncer.prototype.handleLazyLoadEvent = function(title) {\n\t// Ignore if the syncadaptor doesn't handle it\n\tif(!this.syncadaptor.supportsLazyLoading) {\n\t\treturn;\n\t}\n\t// Don't lazy load the same tiddler twice\n\tif(!this.titlesHaveBeenLazyLoaded[title]) {\n\t\t// Don't lazy load if the tiddler isn't included in the sync filter\n\t\tif(this.getSyncedTiddlers().indexOf(title) !== -1) {\n\t\t\t// Mark the tiddler as needing loading, and having already been lazily loaded\n\t\t\tthis.titlesToBeLoaded[title] = true;\n\t\t\tthis.titlesHaveBeenLazyLoaded[title] = true;\n\t\t}\n\t}\n};\n\n/*\nDispay a password prompt and allow the user to login\n*/\nSyncer.prototype.handleLoginEvent = function() {\n\tvar self = this;\n\tthis.getStatus(function(err,isLoggedIn,username) {\n\t\tif(!err && !isLoggedIn) {\n\t\t\tif(self.syncadaptor && self.syncadaptor.displayLoginPrompt) {\n\t\t\t\tself.syncadaptor.displayLoginPrompt(self);\n\t\t\t} else {\n\t\t\t\tself.displayLoginPrompt();\n\t\t\t}\n\t\t}\n\t});\n};\n\n/*\nDispay a password prompt\n*/\nSyncer.prototype.displayLoginPrompt = function() {\n\tvar self = this;\n\tvar promptInfo = $tw.passwordPrompt.createPrompt({\n\t\tserviceName: $tw.language.getString(\"LoginToTiddlySpace\"),\n\t\tcallback: function(data) {\n\t\t\tself.login(data.username,data.password,function(err,isLoggedIn) {\n\t\t\t\tself.syncFromServer();\n\t\t\t});\n\t\t\treturn true; // Get rid of the password prompt\n\t\t}\n\t});\n};\n\n/*\nAttempt to login to TiddlyWeb.\n\tusername: username\n\tpassword: password\n\tcallback: invoked with arguments (err,isLoggedIn)\n*/\nSyncer.prototype.login = function(username,password,callback) {\n\tthis.logger.log(\"Attempting to login as\",username);\n\tvar self = this;\n\tif(this.syncadaptor.login) {\n\t\tthis.syncadaptor.login(username,password,function(err) {\n\t\t\tif(err) {\n\t\t\t\treturn callback(err);\n\t\t\t}\n\t\t\tself.getStatus(function(err,isLoggedIn,username) {\n\t\t\t\tif(callback) {\n\t\t\t\t\tcallback(err,isLoggedIn);\n\t\t\t\t}\n\t\t\t});\n\t\t});\n\t} else {\n\t\tcallback(null,true);\n\t}\n};\n\n/*\nAttempt to log out of TiddlyWeb\n*/\nSyncer.prototype.handleLogoutEvent = function() {\n\tthis.logger.log(\"Attempting to logout\");\n\tvar self = this;\n\tif(this.syncadaptor.logout) {\n\t\tthis.syncadaptor.logout(function(err) {\n\t\t\tif(err) {\n\t\t\t\tself.logger.alert(err);\n\t\t\t} else {\n\t\t\t\tself.getStatus();\n\t\t\t}\n\t\t});\n\t}\n};\n\n/*\nImmediately refresh from the server\n*/\nSyncer.prototype.handleRefreshEvent = function() {\n\tthis.syncFromServer();\n};\n\n/*\nProcess the next task\n*/\nSyncer.prototype.processTaskQueue = function() {\n\tvar self = this;\n\t// Only process a task if the sync adaptor is fully initialised and we're not already performing\n\t// a task. If we are already performing a task then we'll dispatch the next one when it completes\n\tif((!this.syncadaptor.isReady || this.syncadaptor.isReady()) && this.numTasksInProgress === 0) {\n\t\t// Choose the next task to perform\n\t\tvar task = this.chooseNextTask();\n\t\t// Perform the task if we had one\n\t\tif(typeof task === \"object\" && task !== null) {\n\t\t\tthis.numTasksInProgress += 1;\n\t\t\ttask.run(function(err) {\n\t\t\t\tself.numTasksInProgress -= 1;\n\t\t\t\tif(err) {\n\t\t\t\t\tself.displayError(\"Sync error while processing \" + task.type + \" of '\" + task.title + \"'\",err);\n\t\t\t\t\tself.updateDirtyStatus();\n\t\t\t\t\tself.triggerTimeout(self.errorRetryInterval);\n\t\t\t\t} else {\n\t\t\t\t\tself.updateDirtyStatus();\n\t\t\t\t\t// Process the next task\n\t\t\t\t\tself.processTaskQueue.call(self);\t\t\t\t\t\n\t\t\t\t}\n\t\t\t});\n\t\t} else {\n\t\t\t// No task is ready so update the status\n\t\t\tthis.updateDirtyStatus();\n\t\t\t// And trigger a timeout if there is a pending task\n\t\t\tif(task === true) {\n\t\t\t\tthis.triggerTimeout();\t\t\t\t\n\t\t\t}\n\t\t}\n\t} else {\n\t\tthis.updateDirtyStatus();\t\t\n\t}\n};\n\nSyncer.prototype.triggerTimeout = function(interval) {\n\tvar self = this;\n\tif(!this.taskTimerId) {\n\t\tthis.taskTimerId = setTimeout(function() {\n\t\t\tself.taskTimerId = null;\n\t\t\tself.processTaskQueue.call(self);\n\t\t},interval || self.taskTimerInterval);\n\t}\n};\n\n/*\nChoose the next sync task. We prioritise saves, then deletes, then loads from the server\n\nReturns either a task object, null if there's no upcoming tasks, or the boolean true if there are pending tasks that aren't yet due\n*/\nSyncer.prototype.chooseNextTask = function() {\n\tvar thresholdLastSaved = (new Date()) - this.throttleInterval,\n\t\thavePending = null;\n\t// First we look for tiddlers that have been modified locally and need saving back to the server\n\tvar titles = this.getSyncedTiddlers();\n\tfor(var index=0; index<titles.length; index++) {\n\t\tvar title = titles[index],\n\t\t\ttiddler = this.wiki.tiddlerExists(title) && this.wiki.getTiddler(title),\n\t\t\ttiddlerInfo = this.tiddlerInfo[title];\n\t\tif(tiddler) {\n\t\t\t// If the tiddler is not known on the server, or has been modified locally no more recently than the threshold then it needs to be saved to the server\n\t\t\tvar hasChanged = !tiddlerInfo || this.wiki.getChangeCount(title) > tiddlerInfo.changeCount,\n\t\t\t\tisReadyToSave = !tiddlerInfo || !tiddlerInfo.timestampLastSaved || tiddlerInfo.timestampLastSaved < thresholdLastSaved;\n\t\t\tif(hasChanged) {\n\t\t\t\tif(isReadyToSave) {\n\t\t\t\t\treturn new SaveTiddlerTask(this,title); \t\t\t\t\t\n\t\t\t\t} else {\n\t\t\t\t\thavePending = true;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\t// Second, we check tiddlers that are known from the server but not currently in the store, and so need deleting on the server\n\ttitles = Object.keys(this.tiddlerInfo);\n\tfor(index=0; index<titles.length; index++) {\n\t\ttitle = titles[index];\n\t\ttiddlerInfo = this.tiddlerInfo[title];\n\t\ttiddler = this.wiki.tiddlerExists(title) && this.wiki.getTiddler(title);\n\t\tif(!tiddler) {\n\t\t\treturn new DeleteTiddlerTask(this,title);\n\t\t}\n\t}\n\t// Check for tiddlers that need loading\n\ttitle = Object.keys(this.titlesToBeLoaded)[0];\n\tif(title) {\n\t\tdelete this.titlesToBeLoaded[title];\n\t\treturn new LoadTiddlerTask(this,title);\n\t}\n\t// No tasks are ready\n\treturn havePending;\n};\n\nfunction SaveTiddlerTask(syncer,title) {\n\tthis.syncer = syncer;\n\tthis.title = title;\n\tthis.type = \"save\";\n}\n\nSaveTiddlerTask.prototype.run = function(callback) {\n\tvar self = this,\n\t\tchangeCount = this.syncer.wiki.getChangeCount(this.title),\n\t\ttiddler = this.syncer.wiki.tiddlerExists(this.title) && this.syncer.wiki.getTiddler(this.title);\n\tthis.syncer.logger.log(\"Dispatching 'save' task:\",this.title);\n\tif(tiddler) {\n\t\tthis.syncer.syncadaptor.saveTiddler(tiddler,function(err,adaptorInfo,revision) {\n\t\t\t// If there's an error, exit without changing any internal state\n\t\t\tif(err) {\n\t\t\t\treturn callback(err);\n\t\t\t}\n\t\t\t// Adjust the info stored about this tiddler\n\t\t\tself.syncer.tiddlerInfo[self.title] = {\n\t\t\t\tchangeCount: changeCount,\n\t\t\t\tadaptorInfo: adaptorInfo,\n\t\t\t\trevision: revision,\n\t\t\t\ttimestampLastSaved: new Date()\n\t\t\t};\n\t\t\t// Invoke the callback\n\t\t\tcallback(null);\n\t\t},{\n\t\t\ttiddlerInfo: self.syncer.tiddlerInfo[self.title]\n\t\t});\n\t} else {\n\t\tthis.syncer.logger.log(\" Not Dispatching 'save' task:\",this.title,\"tiddler does not exist\");\n\t\t$tw.utils.nextTick(callback(null));\n\t}\n};\n\nfunction DeleteTiddlerTask(syncer,title) {\n\tthis.syncer = syncer;\n\tthis.title = title;\n\tthis.type = \"delete\";\n}\n\nDeleteTiddlerTask.prototype.run = function(callback) {\n\tvar self = this;\n\tthis.syncer.logger.log(\"Dispatching 'delete' task:\",this.title);\n\tthis.syncer.syncadaptor.deleteTiddler(this.title,function(err) {\n\t\t// If there's an error, exit without changing any internal state\n\t\tif(err) {\n\t\t\treturn callback(err);\n\t\t}\n\t\t// Remove the info stored about this tiddler\n\t\tdelete self.syncer.tiddlerInfo[self.title];\n\t\tif($tw.boot.files){\n\t\t\t// Remove the tiddler from $tw.boot.files\n\t\t\tdelete $tw.boot.files[self.title];\n\t\t}\n\t\t// Invoke the callback\n\t\tcallback(null);\n\t},{\n\t\ttiddlerInfo: self.syncer.tiddlerInfo[this.title]\n\t});\n};\n\nfunction LoadTiddlerTask(syncer,title) {\n\tthis.syncer = syncer;\n\tthis.title = title;\n\tthis.type = \"load\";\n}\n\nLoadTiddlerTask.prototype.run = function(callback) {\n\tvar self = this;\n\tthis.syncer.logger.log(\"Dispatching 'load' task:\",this.title);\n\tthis.syncer.syncadaptor.loadTiddler(this.title,function(err,tiddlerFields) {\n\t\t// If there's an error, exit without changing any internal state\n\t\tif(err) {\n\t\t\treturn callback(err);\n\t\t}\n\t\t// Update the info stored about this tiddler\n\t\tif(tiddlerFields) {\n\t\t\tself.syncer.storeTiddler(tiddlerFields);\n\t\t}\n\t\t// Invoke the callback\n\t\tcallback(null);\n\t});\n};\n\nexports.Syncer = Syncer;\n\n})();\n",
            "type": "application/javascript",
            "module-type": "global"
        },
        "$:/core/modules/tiddler.js": {
            "title": "$:/core/modules/tiddler.js",
            "text": "/*\\\ntitle: $:/core/modules/tiddler.js\ntype: application/javascript\nmodule-type: tiddlermethod\n\nExtension methods for the $tw.Tiddler object (constructor and methods required at boot time are in boot/boot.js)\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.hasTag = function(tag) {\n\treturn this.fields.tags && this.fields.tags.indexOf(tag) !== -1;\n};\n\nexports.isPlugin = function() {\n\treturn this.fields.type === \"application/json\" && this.hasField(\"plugin-type\");\n};\n\nexports.isDraft = function() {\n\treturn this.hasField(\"draft.of\");\n};\n\nexports.getFieldString = function(field) {\n\tvar value = this.fields[field];\n\t// Check for a missing field\n\tif(value === undefined || value === null) {\n\t\treturn \"\";\n\t}\n\t// Parse the field with the associated module (if any)\n\tvar fieldModule = $tw.Tiddler.fieldModules[field];\n\tif(fieldModule && fieldModule.stringify) {\n\t\treturn fieldModule.stringify.call(this,value);\n\t} else {\n\t\treturn value.toString();\n\t}\n};\n\n/*\nGet the value of a field as a list\n*/\nexports.getFieldList = function(field) {\n\tvar value = this.fields[field];\n\t// Check for a missing field\n\tif(value === undefined || value === null) {\n\t\treturn [];\n\t}\n\treturn $tw.utils.parseStringArray(value);\n};\n\n/*\nGet all the fields as a hashmap of strings. Options:\n\texclude: an array of field names to exclude\n*/\nexports.getFieldStrings = function(options) {\n\toptions = options || {};\n\tvar exclude = options.exclude || [];\n\tvar fields = {};\n\tfor(var field in this.fields) {\n\t\tif($tw.utils.hop(this.fields,field)) {\n\t\t\tif(exclude.indexOf(field) === -1) {\n\t\t\t\tfields[field] = this.getFieldString(field);\n\t\t\t}\n\t\t}\n\t}\n\treturn fields;\n};\n\n/*\nGet all the fields as a name:value block. Options:\n\texclude: an array of field names to exclude\n*/\nexports.getFieldStringBlock = function(options) {\n\toptions = options || {};\n\tvar exclude = options.exclude || [],\n\t\tfields = Object.keys(this.fields).sort(),\n\t\tresult = [];\n\tfor(var t=0; t<fields.length; t++) {\n\t\tvar field = fields[t];\n\t\tif(exclude.indexOf(field) === -1) {\n\t\t\tresult.push(field + \": \" + this.getFieldString(field));\n\t\t}\n\t}\n\treturn result.join(\"\\n\");\n};\n\nexports.getFieldDay = function(field) {\n\tif(this.cache && this.cache.day && $tw.utils.hop(this.cache.day,field) ) {\n\t\treturn this.cache.day[field];\n\t}\n\tvar day = \"\";\n\tif(this.fields[field]) {\n\t\tday = (new Date($tw.utils.parseDate(this.fields[field]))).setHours(0,0,0,0);\n\t}\n\tthis.cache.day = this.cache.day || {};\n\tthis.cache.day[field] = day;\n\treturn day;\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "tiddlermethod"
        },
        "$:/core/modules/upgraders/plugins.js": {
            "title": "$:/core/modules/upgraders/plugins.js",
            "text": "/*\\\ntitle: $:/core/modules/upgraders/plugins.js\ntype: application/javascript\nmodule-type: upgrader\n\nUpgrader module that checks that plugins are newer than any already installed version\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar UPGRADE_LIBRARY_TITLE = \"$:/UpgradeLibrary\";\n\nvar BLOCKED_PLUGINS = {\n\t\"$:/themes/tiddlywiki/stickytitles\": {\n\t\tversions: [\"*\"]\n\t},\n\t\"$:/plugins/tiddlywiki/fullscreen\": {\n\t\tversions: [\"*\"]\n\t}\n};\n\nexports.upgrade = function(wiki,titles,tiddlers) {\n\tvar self = this,\n\t\tmessages = {},\n\t\tupgradeLibrary,\n\t\tgetLibraryTiddler = function(title) {\n\t\t\tif(!upgradeLibrary) {\n\t\t\t\tupgradeLibrary = wiki.getTiddlerData(UPGRADE_LIBRARY_TITLE,{});\n\t\t\t\tupgradeLibrary.tiddlers = upgradeLibrary.tiddlers || {};\n\t\t\t}\n\t\t\treturn upgradeLibrary.tiddlers[title];\n\t\t};\n\n\t// Go through all the incoming tiddlers\n\t$tw.utils.each(titles,function(title) {\n\t\tvar incomingTiddler = tiddlers[title];\n\t\t// Check if we're dealing with a plugin\n\t\tif(incomingTiddler && incomingTiddler[\"plugin-type\"]) {\n\t\t\t// Check whether the plugin contains JS modules\n\t\t\tvar requiresReload = wiki.doesPluginInfoRequireReload(JSON.parse(incomingTiddler.text)) ? (wiki.getTiddlerText(\"$:/language/ControlPanel/Plugins/PluginWillRequireReload\") + \" \") : \"\";\n\t\t\tmessages[title] = requiresReload;\n\t\t\tif(incomingTiddler.version) {\n\t\t\t\t// Upgrade the incoming plugin if it is in the upgrade library\n\t\t\t\tvar libraryTiddler = getLibraryTiddler(title);\n\t\t\t\tif(libraryTiddler && libraryTiddler[\"plugin-type\"] && libraryTiddler.version) {\n\t\t\t\t\ttiddlers[title] = libraryTiddler;\n\t\t\t\t\tmessages[title] = requiresReload + $tw.language.getString(\"Import/Upgrader/Plugins/Upgraded\",{variables: {incoming: incomingTiddler.version, upgraded: libraryTiddler.version}});\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\t// Suppress the incoming plugin if it is older than the currently installed one\n\t\t\t\tvar existingTiddler = wiki.getTiddler(title);\n\t\t\t\tif(existingTiddler && existingTiddler.hasField(\"plugin-type\") && existingTiddler.hasField(\"version\")) {\n\t\t\t\t\t// Reject the incoming plugin by blanking all its fields\n\t\t\t\t\tif($tw.utils.checkVersions(existingTiddler.fields.version,incomingTiddler.version)) {\n\t\t\t\t\t\ttiddlers[title] = Object.create(null);\n\t\t\t\t\t\tmessages[title] = $tw.language.getString(\"Import/Upgrader/Plugins/Suppressed/Version\",{variables: {incoming: incomingTiddler.version, existing: existingTiddler.fields.version}});\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\t// Check whether the plugin is on the blocked list\n\t\t\tvar blockInfo = BLOCKED_PLUGINS[title];\n\t\t\tif(blockInfo) {\n\t\t\t\tif(blockInfo.versions.indexOf(\"*\") !== -1 || (incomingTiddler.version && blockInfo.versions.indexOf(incomingTiddler.version) !== -1)) {\n\t\t\t\t\ttiddlers[title] = Object.create(null);\n\t\t\t\t\tmessages[title] = $tw.language.getString(\"Import/Upgrader/Plugins/Suppressed/Incompatible\");\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t});\n\treturn messages;\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "upgrader"
        },
        "$:/core/modules/upgraders/system.js": {
            "title": "$:/core/modules/upgraders/system.js",
            "text": "/*\\\ntitle: $:/core/modules/upgraders/system.js\ntype: application/javascript\nmodule-type: upgrader\n\nUpgrader module that suppresses certain system tiddlers that shouldn't be imported\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar DONT_IMPORT_LIST = [\"$:/StoryList\",\"$:/HistoryList\"],\n\tDONT_IMPORT_PREFIX_LIST = [\"$:/temp/\",\"$:/state/\",\"$:/Import\"],\n\tWARN_IMPORT_PREFIX_LIST = [\"$:/core/modules/\"];\n\nexports.upgrade = function(wiki,titles,tiddlers) {\n\tvar self = this,\n\t\tmessages = {},\n\t\tshowAlert = false;\n\t// Check for tiddlers on our list\n\t$tw.utils.each(titles,function(title) {\n\t\tif(DONT_IMPORT_LIST.indexOf(title) !== -1) {\n\t\t\ttiddlers[title] = Object.create(null);\n\t\t\tmessages[title] = $tw.language.getString(\"Import/Upgrader/System/Suppressed\");\n\t\t} else {\n\t\t\tfor(var t=0; t<DONT_IMPORT_PREFIX_LIST.length; t++) {\n\t\t\t\tvar prefix = DONT_IMPORT_PREFIX_LIST[t];\n\t\t\t\tif(title.substr(0,prefix.length) === prefix) {\n\t\t\t\t\ttiddlers[title] = Object.create(null);\n\t\t\t\t\tmessages[title] = $tw.language.getString(\"Import/Upgrader/State/Suppressed\");\n\t\t\t\t}\n\t\t\t}\n\t\t\tfor(var t=0; t<WARN_IMPORT_PREFIX_LIST.length; t++) {\n\t\t\t\tvar prefix = WARN_IMPORT_PREFIX_LIST[t];\n\t\t\t\tif(title.substr(0,prefix.length) === prefix && wiki.isShadowTiddler(title)) {\n\t\t\t\t\tshowAlert = true;\n\t\t\t\t\tmessages[title] = $tw.language.getString(\"Import/Upgrader/System/Warning\");\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t});\n\tif(showAlert) {\n\t\tvar logger = new $tw.utils.Logger(\"import\");\n\t\tlogger.alert($tw.language.getString(\"Import/Upgrader/System/Alert\"));\n\t}\n\treturn messages;\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "upgrader"
        },
        "$:/core/modules/upgraders/themetweaks.js": {
            "title": "$:/core/modules/upgraders/themetweaks.js",
            "text": "/*\\\ntitle: $:/core/modules/upgraders/themetweaks.js\ntype: application/javascript\nmodule-type: upgrader\n\nUpgrader module that handles the change in theme tweak storage introduced in 5.0.14-beta.\n\nPreviously, theme tweaks were stored in two data tiddlers:\n\n* $:/themes/tiddlywiki/vanilla/metrics\n* $:/themes/tiddlywiki/vanilla/settings\n\nNow, each tweak is stored in its own separate tiddler.\n\nThis upgrader copies any values from the old format to the new. The old data tiddlers are not deleted in case they have been used to store additional indexes.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar MAPPINGS = {\n\t\"$:/themes/tiddlywiki/vanilla/metrics\": {\n\t\t\"fontsize\": \"$:/themes/tiddlywiki/vanilla/metrics/fontsize\",\n\t\t\"lineheight\": \"$:/themes/tiddlywiki/vanilla/metrics/lineheight\",\n\t\t\"storyleft\": \"$:/themes/tiddlywiki/vanilla/metrics/storyleft\",\n\t\t\"storytop\": \"$:/themes/tiddlywiki/vanilla/metrics/storytop\",\n\t\t\"storyright\": \"$:/themes/tiddlywiki/vanilla/metrics/storyright\",\n\t\t\"storywidth\": \"$:/themes/tiddlywiki/vanilla/metrics/storywidth\",\n\t\t\"tiddlerwidth\": \"$:/themes/tiddlywiki/vanilla/metrics/tiddlerwidth\"\n\t},\n\t\"$:/themes/tiddlywiki/vanilla/settings\": {\n\t\t\"fontfamily\": \"$:/themes/tiddlywiki/vanilla/settings/fontfamily\"\n\t}\n};\n\nexports.upgrade = function(wiki,titles,tiddlers) {\n\tvar self = this,\n\t\tmessages = {};\n\t// Check for tiddlers on our list\n\t$tw.utils.each(titles,function(title) {\n\t\tvar mapping = MAPPINGS[title];\n\t\tif(mapping) {\n\t\t\tvar tiddler = new $tw.Tiddler(tiddlers[title]),\n\t\t\t\ttiddlerData = wiki.getTiddlerDataCached(tiddler,{});\n\t\t\tfor(var index in mapping) {\n\t\t\t\tvar mappedTitle = mapping[index];\n\t\t\t\tif(!tiddlers[mappedTitle] || tiddlers[mappedTitle].title !== mappedTitle) {\n\t\t\t\t\ttiddlers[mappedTitle] = {\n\t\t\t\t\t\ttitle: mappedTitle,\n\t\t\t\t\t\ttext: tiddlerData[index]\n\t\t\t\t\t};\n\t\t\t\t\tmessages[mappedTitle] = $tw.language.getString(\"Import/Upgrader/ThemeTweaks/Created\",{variables: {\n\t\t\t\t\t\tfrom: title + \"##\" + index\n\t\t\t\t\t}});\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t});\n\treturn messages;\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "upgrader"
        },
        "$:/core/modules/utils/base64-utf8/base64-utf8.module.js": {
            "text": "(function(){// From https://gist.github.com/Nijikokun/5192472\n//\n// UTF8 Module\n//\n// Cleaner and modularized utf-8 encoding and decoding library for javascript.\n//\n// copyright: MIT\n// author: Nijiko Yonskai, @nijikokun, nijikokun@gmail.com\n!function(r,e,o,t){void 0!==o.module&&o.module.exports?o.module.exports=e.apply(o):void 0!==o.define&&\"function\"===o.define&&o.define.amd?define(\"utf8\",[],e):o.utf8=e.apply(o)}(0,function(){return{encode:function(r){if(\"string\"!=typeof r)return r;r=r.replace(/\\r\\n/g,\"\\n\");for(var e,o=\"\",t=0;t<r.length;t++)if((e=r.charCodeAt(t))<128)o+=String.fromCharCode(e);else if(e>127&&e<2048)o+=String.fromCharCode(e>>6|192),o+=String.fromCharCode(63&e|128);else if(e>55295&&e<57344&&r.length>t+1){var i=e,n=r.charCodeAt(t+1);t++;var d=65536+(i-55296<<10|n-56320);o+=String.fromCharCode(d>>18|240),o+=String.fromCharCode(d>>12&63|128),o+=String.fromCharCode(d>>6&63|128),o+=String.fromCharCode(63&d|128)}else o+=String.fromCharCode(e>>12|224),o+=String.fromCharCode(e>>6&63|128),o+=String.fromCharCode(63&e|128);return o},decode:function(r){if(\"string\"!=typeof r)return r;for(var e=\"\",o=0,t=0;o<r.length;)if((t=r.charCodeAt(o))<128)e+=String.fromCharCode(t),o++;else if(t>191&&t<224)e+=String.fromCharCode((31&t)<<6|63&r.charCodeAt(o+1)),o+=2;else if(t>223&&t<240)e+=String.fromCharCode((15&t)<<12|(63&r.charCodeAt(o+1))<<6|63&r.charCodeAt(o+2)),o+=3;else{var i=(7&t)<<18|(63&r.charCodeAt(o+1))<<12|(63&r.charCodeAt(o+2))<<6|63&r.charCodeAt(o+3);e+=String.fromCharCode(55296+(i-65536>>10))+String.fromCharCode(56320+(i-65536&1023)),o+=4}return e}}},this),function(r,e,o,t){if(void 0!==o.module&&o.module.exports){if(t&&o.require)for(var i=0;i<t.length;i++)o[t[i]]=o.require(t[i]);o.module.exports=e.apply(o)}else void 0!==o.define&&\"function\"===o.define&&o.define.amd?define(\"base64\",t||[],e):o.base64=e.apply(o)}(0,function(r){var e=r||this.utf8,o=\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\";return{encode:function(r){if(void 0===e)throw{error:\"MissingMethod\",message:\"UTF8 Module is missing.\"};if(\"string\"!=typeof r)return r;r=e.encode(r);for(var t,i,n,d,f,a,h,C=\"\",c=0;c<r.length;)d=(t=r.charCodeAt(c++))>>2,f=(3&t)<<4|(i=r.charCodeAt(c++))>>4,a=(15&i)<<2|(n=r.charCodeAt(c++))>>6,h=63&n,isNaN(i)?a=h=64:isNaN(n)&&(h=64),C+=o.charAt(d)+o.charAt(f)+o.charAt(a)+o.charAt(h);return C},decode:function(r){if(void 0===e)throw{error:\"MissingMethod\",message:\"UTF8 Module is missing.\"};if(\"string\"!=typeof r)return r;r=r.replace(/[^A-Za-z0-9\\+\\/\\=]/g,\"\");for(var t,i,n,d,f,a,h=\"\",C=0;C<r.length;)t=o.indexOf(r.charAt(C++))<<2|(d=o.indexOf(r.charAt(C++)))>>4,i=(15&d)<<4|(f=o.indexOf(r.charAt(C++)))>>2,n=(3&f)<<6|(a=o.indexOf(r.charAt(C++))),h+=String.fromCharCode(t),64!=f&&(h+=String.fromCharCode(i)),64!=a&&(h+=String.fromCharCode(n));return e.decode(h)}}},this,[\"utf8\"]);}).call(exports);",
            "type": "application/javascript",
            "title": "$:/core/modules/utils/base64-utf8/base64-utf8.module.js",
            "module-type": "library"
        },
        "$:/core/modules/utils/crypto.js": {
            "title": "$:/core/modules/utils/crypto.js",
            "text": "/*\\\ntitle: $:/core/modules/utils/crypto.js\ntype: application/javascript\nmodule-type: utils\n\nUtility functions related to crypto.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nLook for an encrypted store area in the text of a TiddlyWiki file\n*/\nexports.extractEncryptedStoreArea = function(text) {\n\tvar encryptedStoreAreaStartMarker = \"<pre id=\\\"encryptedStoreArea\\\" type=\\\"text/plain\\\" style=\\\"display:none;\\\">\",\n\t\tencryptedStoreAreaStart = text.indexOf(encryptedStoreAreaStartMarker);\n\tif(encryptedStoreAreaStart !== -1) {\n\t\tvar encryptedStoreAreaEnd = text.indexOf(\"</pre>\",encryptedStoreAreaStart);\n\t\tif(encryptedStoreAreaEnd !== -1) {\n\t\t\treturn $tw.utils.htmlDecode(text.substring(encryptedStoreAreaStart + encryptedStoreAreaStartMarker.length,encryptedStoreAreaEnd-1));\n\t\t}\n\t}\n\treturn null;\n};\n\n/*\nAttempt to extract the tiddlers from an encrypted store area using the current password. If the password is not provided then the password in the password store will be used\n*/\nexports.decryptStoreArea = function(encryptedStoreArea,password) {\n\tvar decryptedText = $tw.crypto.decrypt(encryptedStoreArea,password);\n\tif(decryptedText) {\n\t\tvar json = JSON.parse(decryptedText),\n\t\t\ttiddlers = [];\n\t\tfor(var title in json) {\n\t\t\tif(title !== \"$:/isEncrypted\") {\n\t\t\t\ttiddlers.push(json[title]);\n\t\t\t}\n\t\t}\n\t\treturn tiddlers;\n\t} else {\n\t\treturn null;\n\t}\n};\n\n\n/*\nAttempt to extract the tiddlers from an encrypted store area using the current password. If that fails, the user is prompted for a password.\nencryptedStoreArea: text of the TiddlyWiki encrypted store area\ncallback: function(tiddlers) called with the array of decrypted tiddlers\n\nThe following configuration settings are supported:\n\n$tw.config.usePasswordVault: causes any password entered by the user to also be put into the system password vault\n*/\nexports.decryptStoreAreaInteractive = function(encryptedStoreArea,callback,options) {\n\t// Try to decrypt with the current password\n\tvar tiddlers = $tw.utils.decryptStoreArea(encryptedStoreArea);\n\tif(tiddlers) {\n\t\tcallback(tiddlers);\n\t} else {\n\t\t// Prompt for a new password and keep trying\n\t\t$tw.passwordPrompt.createPrompt({\n\t\t\tserviceName: \"Enter a password to decrypt the imported TiddlyWiki\",\n\t\t\tnoUserName: true,\n\t\t\tcanCancel: true,\n\t\t\tsubmitText: \"Decrypt\",\n\t\t\tcallback: function(data) {\n\t\t\t\t// Exit if the user cancelled\n\t\t\t\tif(!data) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t\t// Attempt to decrypt the tiddlers\n\t\t\t\tvar tiddlers = $tw.utils.decryptStoreArea(encryptedStoreArea,data.password);\n\t\t\t\tif(tiddlers) {\n\t\t\t\t\tif($tw.config.usePasswordVault) {\n\t\t\t\t\t\t$tw.crypto.setPassword(data.password);\n\t\t\t\t\t}\n\t\t\t\t\tcallback(tiddlers);\n\t\t\t\t\t// Exit and remove the password prompt\n\t\t\t\t\treturn true;\n\t\t\t\t} else {\n\t\t\t\t\t// We didn't decrypt everything, so continue to prompt for password\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t}\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "utils"
        },
        "$:/core/modules/utils/csv.js": {
            "title": "$:/core/modules/utils/csv.js",
            "text": "/*\\\ntitle: $:/core/modules/utils/csv.js\ntype: application/javascript\nmodule-type: utils\n\nA barebones CSV parser\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nParse a CSV string with a header row and return an array of hashmaps.\n*/\nexports.parseCsvStringWithHeader = function(text,options) {\n\toptions = options || {};\n\tvar separator = options.separator || \",\",\n\t\trows = text.split(/\\r?\\n/mg).map(function(row) {\n\t\t\treturn $tw.utils.trim(row);\n\t\t}).filter(function(row) {\n\t\t\treturn row !== \"\";\n\t\t});\n\tif(rows.length < 1) {\n\t\treturn \"Missing header row\";\n\t}\n\tvar headings = rows[0].split(separator),\n\t\tresults = [];\n\tfor(var row=1; row<rows.length; row++) {\n\t\tvar columns = rows[row].split(separator),\n\t\t\tcolumnResult = Object.create(null);\n\t\tif(columns.length !== headings.length) {\n\t\t\treturn \"Malformed CSV row '\" + rows[row] + \"'\";\n\t\t}\n\t\tfor(var column=0; column<columns.length; column++) {\n\t\t\tvar columnName = headings[column];\n\t\t\tcolumnResult[columnName] = $tw.utils.trim(columns[column] || \"\");\n\t\t}\n\t\tresults.push(columnResult);\t\t\t\n\t}\n\treturn results;\n}\n\n})();\n",
            "type": "application/javascript",
            "module-type": "utils"
        },
        "$:/core/modules/utils/diff-match-patch/diff_match_patch.js": {
            "text": "(function(){function diff_match_patch(){this.Diff_Timeout=1;this.Diff_EditCost=4;this.Match_Threshold=.5;this.Match_Distance=1E3;this.Patch_DeleteThreshold=.5;this.Patch_Margin=4;this.Match_MaxBits=32}var DIFF_DELETE=-1,DIFF_INSERT=1,DIFF_EQUAL=0;\ndiff_match_patch.prototype.diff_main=function(a,b,c,d){\"undefined\"==typeof d&&(d=0>=this.Diff_Timeout?Number.MAX_VALUE:(new Date).getTime()+1E3*this.Diff_Timeout);if(null==a||null==b)throw Error(\"Null input. (diff_main)\");if(a==b)return a?[[DIFF_EQUAL,a]]:[];\"undefined\"==typeof c&&(c=!0);var e=c,f=this.diff_commonPrefix(a,b);c=a.substring(0,f);a=a.substring(f);b=b.substring(f);f=this.diff_commonSuffix(a,b);var g=a.substring(a.length-f);a=a.substring(0,a.length-f);b=b.substring(0,b.length-f);a=this.diff_compute_(a,\nb,e,d);c&&a.unshift([DIFF_EQUAL,c]);g&&a.push([DIFF_EQUAL,g]);this.diff_cleanupMerge(a);return a};\ndiff_match_patch.prototype.diff_compute_=function(a,b,c,d){if(!a)return[[DIFF_INSERT,b]];if(!b)return[[DIFF_DELETE,a]];var e=a.length>b.length?a:b,f=a.length>b.length?b:a,g=e.indexOf(f);return-1!=g?(c=[[DIFF_INSERT,e.substring(0,g)],[DIFF_EQUAL,f],[DIFF_INSERT,e.substring(g+f.length)]],a.length>b.length&&(c[0][0]=c[2][0]=DIFF_DELETE),c):1==f.length?[[DIFF_DELETE,a],[DIFF_INSERT,b]]:(e=this.diff_halfMatch_(a,b))?(b=e[1],f=e[3],a=e[4],e=this.diff_main(e[0],e[2],c,d),c=this.diff_main(b,f,c,d),e.concat([[DIFF_EQUAL,\na]],c)):c&&100<a.length&&100<b.length?this.diff_lineMode_(a,b,d):this.diff_bisect_(a,b,d)};\ndiff_match_patch.prototype.diff_lineMode_=function(a,b,c){var d=this.diff_linesToChars_(a,b);a=d.chars1;b=d.chars2;d=d.lineArray;a=this.diff_main(a,b,!1,c);this.diff_charsToLines_(a,d);this.diff_cleanupSemantic(a);a.push([DIFF_EQUAL,\"\"]);for(var e=d=b=0,f=\"\",g=\"\";b<a.length;){switch(a[b][0]){case DIFF_INSERT:e++;g+=a[b][1];break;case DIFF_DELETE:d++;f+=a[b][1];break;case DIFF_EQUAL:if(1<=d&&1<=e){a.splice(b-d-e,d+e);b=b-d-e;d=this.diff_main(f,g,!1,c);for(e=d.length-1;0<=e;e--)a.splice(b,0,d[e]);b+=\nd.length}d=e=0;g=f=\"\"}b++}a.pop();return a};\ndiff_match_patch.prototype.diff_bisect_=function(a,b,c){for(var d=a.length,e=b.length,f=Math.ceil((d+e)/2),g=2*f,h=Array(g),l=Array(g),k=0;k<g;k++)h[k]=-1,l[k]=-1;h[f+1]=0;l[f+1]=0;k=d-e;for(var m=0!=k%2,p=0,x=0,w=0,q=0,t=0;t<f&&!((new Date).getTime()>c);t++){for(var v=-t+p;v<=t-x;v+=2){var n=f+v;var r=v==-t||v!=t&&h[n-1]<h[n+1]?h[n+1]:h[n-1]+1;for(var y=r-v;r<d&&y<e&&a.charAt(r)==b.charAt(y);)r++,y++;h[n]=r;if(r>d)x+=2;else if(y>e)p+=2;else if(m&&(n=f+k-v,0<=n&&n<g&&-1!=l[n])){var u=d-l[n];if(r>=\nu)return this.diff_bisectSplit_(a,b,r,y,c)}}for(v=-t+w;v<=t-q;v+=2){n=f+v;u=v==-t||v!=t&&l[n-1]<l[n+1]?l[n+1]:l[n-1]+1;for(r=u-v;u<d&&r<e&&a.charAt(d-u-1)==b.charAt(e-r-1);)u++,r++;l[n]=u;if(u>d)q+=2;else if(r>e)w+=2;else if(!m&&(n=f+k-v,0<=n&&n<g&&-1!=h[n]&&(r=h[n],y=f+r-n,u=d-u,r>=u)))return this.diff_bisectSplit_(a,b,r,y,c)}}return[[DIFF_DELETE,a],[DIFF_INSERT,b]]};\ndiff_match_patch.prototype.diff_bisectSplit_=function(a,b,c,d,e){var f=a.substring(0,c),g=b.substring(0,d);a=a.substring(c);b=b.substring(d);f=this.diff_main(f,g,!1,e);e=this.diff_main(a,b,!1,e);return f.concat(e)};\ndiff_match_patch.prototype.diff_linesToChars_=function(a,b){function c(a){for(var b=\"\",c=0,f=-1,g=d.length;f<a.length-1;){f=a.indexOf(\"\\n\",c);-1==f&&(f=a.length-1);var h=a.substring(c,f+1);c=f+1;(e.hasOwnProperty?e.hasOwnProperty(h):void 0!==e[h])?b+=String.fromCharCode(e[h]):(b+=String.fromCharCode(g),e[h]=g,d[g++]=h)}return b}var d=[],e={};d[0]=\"\";var f=c(a),g=c(b);return{chars1:f,chars2:g,lineArray:d}};\ndiff_match_patch.prototype.diff_charsToLines_=function(a,b){for(var c=0;c<a.length;c++){for(var d=a[c][1],e=[],f=0;f<d.length;f++)e[f]=b[d.charCodeAt(f)];a[c][1]=e.join(\"\")}};diff_match_patch.prototype.diff_commonPrefix=function(a,b){if(!a||!b||a.charAt(0)!=b.charAt(0))return 0;for(var c=0,d=Math.min(a.length,b.length),e=d,f=0;c<e;)a.substring(f,e)==b.substring(f,e)?f=c=e:d=e,e=Math.floor((d-c)/2+c);return e};\ndiff_match_patch.prototype.diff_commonSuffix=function(a,b){if(!a||!b||a.charAt(a.length-1)!=b.charAt(b.length-1))return 0;for(var c=0,d=Math.min(a.length,b.length),e=d,f=0;c<e;)a.substring(a.length-e,a.length-f)==b.substring(b.length-e,b.length-f)?f=c=e:d=e,e=Math.floor((d-c)/2+c);return e};\ndiff_match_patch.prototype.diff_commonOverlap_=function(a,b){var c=a.length,d=b.length;if(0==c||0==d)return 0;c>d?a=a.substring(c-d):c<d&&(b=b.substring(0,c));c=Math.min(c,d);if(a==b)return c;d=0;for(var e=1;;){var f=a.substring(c-e);f=b.indexOf(f);if(-1==f)return d;e+=f;if(0==f||a.substring(c-e)==b.substring(0,e))d=e,e++}};\ndiff_match_patch.prototype.diff_halfMatch_=function(a,b){function c(a,b,c){for(var d=a.substring(c,c+Math.floor(a.length/4)),e=-1,g=\"\",h,k,l,m;-1!=(e=b.indexOf(d,e+1));){var p=f.diff_commonPrefix(a.substring(c),b.substring(e)),u=f.diff_commonSuffix(a.substring(0,c),b.substring(0,e));g.length<u+p&&(g=b.substring(e-u,e)+b.substring(e,e+p),h=a.substring(0,c-u),k=a.substring(c+p),l=b.substring(0,e-u),m=b.substring(e+p))}return 2*g.length>=a.length?[h,k,l,m,g]:null}if(0>=this.Diff_Timeout)return null;\nvar d=a.length>b.length?a:b,e=a.length>b.length?b:a;if(4>d.length||2*e.length<d.length)return null;var f=this,g=c(d,e,Math.ceil(d.length/4));d=c(d,e,Math.ceil(d.length/2));if(g||d)g=d?g?g[4].length>d[4].length?g:d:d:g;else return null;if(a.length>b.length){d=g[0];e=g[1];var h=g[2];var l=g[3]}else h=g[0],l=g[1],d=g[2],e=g[3];return[d,e,h,l,g[4]]};\ndiff_match_patch.prototype.diff_cleanupSemantic=function(a){for(var b=!1,c=[],d=0,e=null,f=0,g=0,h=0,l=0,k=0;f<a.length;)a[f][0]==DIFF_EQUAL?(c[d++]=f,g=l,h=k,k=l=0,e=a[f][1]):(a[f][0]==DIFF_INSERT?l+=a[f][1].length:k+=a[f][1].length,e&&e.length<=Math.max(g,h)&&e.length<=Math.max(l,k)&&(a.splice(c[d-1],0,[DIFF_DELETE,e]),a[c[d-1]+1][0]=DIFF_INSERT,d--,d--,f=0<d?c[d-1]:-1,k=l=h=g=0,e=null,b=!0)),f++;b&&this.diff_cleanupMerge(a);this.diff_cleanupSemanticLossless(a);for(f=1;f<a.length;){if(a[f-1][0]==\nDIFF_DELETE&&a[f][0]==DIFF_INSERT){b=a[f-1][1];c=a[f][1];d=this.diff_commonOverlap_(b,c);e=this.diff_commonOverlap_(c,b);if(d>=e){if(d>=b.length/2||d>=c.length/2)a.splice(f,0,[DIFF_EQUAL,c.substring(0,d)]),a[f-1][1]=b.substring(0,b.length-d),a[f+1][1]=c.substring(d),f++}else if(e>=b.length/2||e>=c.length/2)a.splice(f,0,[DIFF_EQUAL,b.substring(0,e)]),a[f-1][0]=DIFF_INSERT,a[f-1][1]=c.substring(0,c.length-e),a[f+1][0]=DIFF_DELETE,a[f+1][1]=b.substring(e),f++;f++}f++}};\ndiff_match_patch.prototype.diff_cleanupSemanticLossless=function(a){function b(a,b){if(!a||!b)return 6;var c=a.charAt(a.length-1),d=b.charAt(0),e=c.match(diff_match_patch.nonAlphaNumericRegex_),f=d.match(diff_match_patch.nonAlphaNumericRegex_),g=e&&c.match(diff_match_patch.whitespaceRegex_),h=f&&d.match(diff_match_patch.whitespaceRegex_);c=g&&c.match(diff_match_patch.linebreakRegex_);d=h&&d.match(diff_match_patch.linebreakRegex_);var k=c&&a.match(diff_match_patch.blanklineEndRegex_),l=d&&b.match(diff_match_patch.blanklineStartRegex_);\nreturn k||l?5:c||d?4:e&&!g&&h?3:g||h?2:e||f?1:0}for(var c=1;c<a.length-1;){if(a[c-1][0]==DIFF_EQUAL&&a[c+1][0]==DIFF_EQUAL){var d=a[c-1][1],e=a[c][1],f=a[c+1][1],g=this.diff_commonSuffix(d,e);if(g){var h=e.substring(e.length-g);d=d.substring(0,d.length-g);e=h+e.substring(0,e.length-g);f=h+f}g=d;h=e;for(var l=f,k=b(d,e)+b(e,f);e.charAt(0)===f.charAt(0);){d+=e.charAt(0);e=e.substring(1)+f.charAt(0);f=f.substring(1);var m=b(d,e)+b(e,f);m>=k&&(k=m,g=d,h=e,l=f)}a[c-1][1]!=g&&(g?a[c-1][1]=g:(a.splice(c-\n1,1),c--),a[c][1]=h,l?a[c+1][1]=l:(a.splice(c+1,1),c--))}c++}};diff_match_patch.nonAlphaNumericRegex_=/[^a-zA-Z0-9]/;diff_match_patch.whitespaceRegex_=/\\s/;diff_match_patch.linebreakRegex_=/[\\r\\n]/;diff_match_patch.blanklineEndRegex_=/\\n\\r?\\n$/;diff_match_patch.blanklineStartRegex_=/^\\r?\\n\\r?\\n/;\ndiff_match_patch.prototype.diff_cleanupEfficiency=function(a){for(var b=!1,c=[],d=0,e=null,f=0,g=!1,h=!1,l=!1,k=!1;f<a.length;)a[f][0]==DIFF_EQUAL?(a[f][1].length<this.Diff_EditCost&&(l||k)?(c[d++]=f,g=l,h=k,e=a[f][1]):(d=0,e=null),l=k=!1):(a[f][0]==DIFF_DELETE?k=!0:l=!0,e&&(g&&h&&l&&k||e.length<this.Diff_EditCost/2&&3==g+h+l+k)&&(a.splice(c[d-1],0,[DIFF_DELETE,e]),a[c[d-1]+1][0]=DIFF_INSERT,d--,e=null,g&&h?(l=k=!0,d=0):(d--,f=0<d?c[d-1]:-1,l=k=!1),b=!0)),f++;b&&this.diff_cleanupMerge(a)};\ndiff_match_patch.prototype.diff_cleanupMerge=function(a){a.push([DIFF_EQUAL,\"\"]);for(var b=0,c=0,d=0,e=\"\",f=\"\",g;b<a.length;)switch(a[b][0]){case DIFF_INSERT:d++;f+=a[b][1];b++;break;case DIFF_DELETE:c++;e+=a[b][1];b++;break;case DIFF_EQUAL:1<c+d?(0!==c&&0!==d&&(g=this.diff_commonPrefix(f,e),0!==g&&(0<b-c-d&&a[b-c-d-1][0]==DIFF_EQUAL?a[b-c-d-1][1]+=f.substring(0,g):(a.splice(0,0,[DIFF_EQUAL,f.substring(0,g)]),b++),f=f.substring(g),e=e.substring(g)),g=this.diff_commonSuffix(f,e),0!==g&&(a[b][1]=f.substring(f.length-\ng)+a[b][1],f=f.substring(0,f.length-g),e=e.substring(0,e.length-g))),0===c?a.splice(b-d,c+d,[DIFF_INSERT,f]):0===d?a.splice(b-c,c+d,[DIFF_DELETE,e]):a.splice(b-c-d,c+d,[DIFF_DELETE,e],[DIFF_INSERT,f]),b=b-c-d+(c?1:0)+(d?1:0)+1):0!==b&&a[b-1][0]==DIFF_EQUAL?(a[b-1][1]+=a[b][1],a.splice(b,1)):b++,c=d=0,f=e=\"\"}\"\"===a[a.length-1][1]&&a.pop();c=!1;for(b=1;b<a.length-1;)a[b-1][0]==DIFF_EQUAL&&a[b+1][0]==DIFF_EQUAL&&(a[b][1].substring(a[b][1].length-a[b-1][1].length)==a[b-1][1]?(a[b][1]=a[b-1][1]+a[b][1].substring(0,\na[b][1].length-a[b-1][1].length),a[b+1][1]=a[b-1][1]+a[b+1][1],a.splice(b-1,1),c=!0):a[b][1].substring(0,a[b+1][1].length)==a[b+1][1]&&(a[b-1][1]+=a[b+1][1],a[b][1]=a[b][1].substring(a[b+1][1].length)+a[b+1][1],a.splice(b+1,1),c=!0)),b++;c&&this.diff_cleanupMerge(a)};\ndiff_match_patch.prototype.diff_xIndex=function(a,b){var c=0,d=0,e=0,f=0,g;for(g=0;g<a.length;g++){a[g][0]!==DIFF_INSERT&&(c+=a[g][1].length);a[g][0]!==DIFF_DELETE&&(d+=a[g][1].length);if(c>b)break;e=c;f=d}return a.length!=g&&a[g][0]===DIFF_DELETE?f:f+(b-e)};\ndiff_match_patch.prototype.diff_prettyHtml=function(a){for(var b=[],c=/&/g,d=/</g,e=/>/g,f=/\\n/g,g=0;g<a.length;g++){var h=a[g][0],l=a[g][1].replace(c,\"&amp;\").replace(d,\"&lt;\").replace(e,\"&gt;\").replace(f,\"&para;<br>\");switch(h){case DIFF_INSERT:b[g]='<ins style=\"background:#e6ffe6;\">'+l+\"</ins>\";break;case DIFF_DELETE:b[g]='<del style=\"background:#ffe6e6;\">'+l+\"</del>\";break;case DIFF_EQUAL:b[g]=\"<span>\"+l+\"</span>\"}}return b.join(\"\")};\ndiff_match_patch.prototype.diff_text1=function(a){for(var b=[],c=0;c<a.length;c++)a[c][0]!==DIFF_INSERT&&(b[c]=a[c][1]);return b.join(\"\")};diff_match_patch.prototype.diff_text2=function(a){for(var b=[],c=0;c<a.length;c++)a[c][0]!==DIFF_DELETE&&(b[c]=a[c][1]);return b.join(\"\")};\ndiff_match_patch.prototype.diff_levenshtein=function(a){for(var b=0,c=0,d=0,e=0;e<a.length;e++){var f=a[e][1];switch(a[e][0]){case DIFF_INSERT:c+=f.length;break;case DIFF_DELETE:d+=f.length;break;case DIFF_EQUAL:b+=Math.max(c,d),d=c=0}}return b+=Math.max(c,d)};\ndiff_match_patch.prototype.diff_toDelta=function(a){for(var b=[],c=0;c<a.length;c++)switch(a[c][0]){case DIFF_INSERT:b[c]=\"+\"+encodeURI(a[c][1]);break;case DIFF_DELETE:b[c]=\"-\"+a[c][1].length;break;case DIFF_EQUAL:b[c]=\"=\"+a[c][1].length}return b.join(\"\\t\").replace(/%20/g,\" \")};\ndiff_match_patch.prototype.diff_fromDelta=function(a,b){for(var c=[],d=0,e=0,f=b.split(/\\t/g),g=0;g<f.length;g++){var h=f[g].substring(1);switch(f[g].charAt(0)){case \"+\":try{c[d++]=[DIFF_INSERT,decodeURI(h)]}catch(k){throw Error(\"Illegal escape in diff_fromDelta: \"+h);}break;case \"-\":case \"=\":var l=parseInt(h,10);if(isNaN(l)||0>l)throw Error(\"Invalid number in diff_fromDelta: \"+h);h=a.substring(e,e+=l);\"=\"==f[g].charAt(0)?c[d++]=[DIFF_EQUAL,h]:c[d++]=[DIFF_DELETE,h];break;default:if(f[g])throw Error(\"Invalid diff operation in diff_fromDelta: \"+\nf[g]);}}if(e!=a.length)throw Error(\"Delta length (\"+e+\") does not equal source text length (\"+a.length+\").\");return c};diff_match_patch.prototype.match_main=function(a,b,c){if(null==a||null==b||null==c)throw Error(\"Null input. (match_main)\");c=Math.max(0,Math.min(c,a.length));return a==b?0:a.length?a.substring(c,c+b.length)==b?c:this.match_bitap_(a,b,c):-1};\ndiff_match_patch.prototype.match_bitap_=function(a,b,c){function d(a,d){var e=a/b.length,g=Math.abs(c-d);return f.Match_Distance?e+g/f.Match_Distance:g?1:e}if(b.length>this.Match_MaxBits)throw Error(\"Pattern too long for this browser.\");var e=this.match_alphabet_(b),f=this,g=this.Match_Threshold,h=a.indexOf(b,c);-1!=h&&(g=Math.min(d(0,h),g),h=a.lastIndexOf(b,c+b.length),-1!=h&&(g=Math.min(d(0,h),g)));var l=1<<b.length-1;h=-1;for(var k,m,p=b.length+a.length,x,w=0;w<b.length;w++){k=0;for(m=p;k<m;)d(w,\nc+m)<=g?k=m:p=m,m=Math.floor((p-k)/2+k);p=m;k=Math.max(1,c-m+1);var q=Math.min(c+m,a.length)+b.length;m=Array(q+2);for(m[q+1]=(1<<w)-1;q>=k;q--){var t=e[a.charAt(q-1)];m[q]=0===w?(m[q+1]<<1|1)&t:(m[q+1]<<1|1)&t|(x[q+1]|x[q])<<1|1|x[q+1];if(m[q]&l&&(t=d(w,q-1),t<=g))if(g=t,h=q-1,h>c)k=Math.max(1,2*c-h);else break}if(d(w+1,c)>g)break;x=m}return h};\ndiff_match_patch.prototype.match_alphabet_=function(a){for(var b={},c=0;c<a.length;c++)b[a.charAt(c)]=0;for(c=0;c<a.length;c++)b[a.charAt(c)]|=1<<a.length-c-1;return b};\ndiff_match_patch.prototype.patch_addContext_=function(a,b){if(0!=b.length){for(var c=b.substring(a.start2,a.start2+a.length1),d=0;b.indexOf(c)!=b.lastIndexOf(c)&&c.length<this.Match_MaxBits-this.Patch_Margin-this.Patch_Margin;)d+=this.Patch_Margin,c=b.substring(a.start2-d,a.start2+a.length1+d);d+=this.Patch_Margin;(c=b.substring(a.start2-d,a.start2))&&a.diffs.unshift([DIFF_EQUAL,c]);(d=b.substring(a.start2+a.length1,a.start2+a.length1+d))&&a.diffs.push([DIFF_EQUAL,d]);a.start1-=c.length;a.start2-=\nc.length;a.length1+=c.length+d.length;a.length2+=c.length+d.length}};\ndiff_match_patch.prototype.patch_make=function(a,b,c){if(\"string\"==typeof a&&\"string\"==typeof b&&\"undefined\"==typeof c){var d=a;b=this.diff_main(d,b,!0);2<b.length&&(this.diff_cleanupSemantic(b),this.diff_cleanupEfficiency(b))}else if(a&&\"object\"==typeof a&&\"undefined\"==typeof b&&\"undefined\"==typeof c)b=a,d=this.diff_text1(b);else if(\"string\"==typeof a&&b&&\"object\"==typeof b&&\"undefined\"==typeof c)d=a;else if(\"string\"==typeof a&&\"string\"==typeof b&&c&&\"object\"==typeof c)d=a,b=c;else throw Error(\"Unknown call format to patch_make.\");\nif(0===b.length)return[];c=[];a=new diff_match_patch.patch_obj;for(var e=0,f=0,g=0,h=d,l=0;l<b.length;l++){var k=b[l][0],m=b[l][1];e||k===DIFF_EQUAL||(a.start1=f,a.start2=g);switch(k){case DIFF_INSERT:a.diffs[e++]=b[l];a.length2+=m.length;d=d.substring(0,g)+m+d.substring(g);break;case DIFF_DELETE:a.length1+=m.length;a.diffs[e++]=b[l];d=d.substring(0,g)+d.substring(g+m.length);break;case DIFF_EQUAL:m.length<=2*this.Patch_Margin&&e&&b.length!=l+1?(a.diffs[e++]=b[l],a.length1+=m.length,a.length2+=m.length):\nm.length>=2*this.Patch_Margin&&e&&(this.patch_addContext_(a,h),c.push(a),a=new diff_match_patch.patch_obj,e=0,h=d,f=g)}k!==DIFF_INSERT&&(f+=m.length);k!==DIFF_DELETE&&(g+=m.length)}e&&(this.patch_addContext_(a,h),c.push(a));return c};\ndiff_match_patch.prototype.patch_deepCopy=function(a){for(var b=[],c=0;c<a.length;c++){var d=a[c],e=new diff_match_patch.patch_obj;e.diffs=[];for(var f=0;f<d.diffs.length;f++)e.diffs[f]=d.diffs[f].slice();e.start1=d.start1;e.start2=d.start2;e.length1=d.length1;e.length2=d.length2;b[c]=e}return b};\ndiff_match_patch.prototype.patch_apply=function(a,b){if(0==a.length)return[b,[]];a=this.patch_deepCopy(a);var c=this.patch_addPadding(a);b=c+b+c;this.patch_splitMax(a);for(var d=0,e=[],f=0;f<a.length;f++){var g=a[f].start2+d,h=this.diff_text1(a[f].diffs),l=-1;if(h.length>this.Match_MaxBits){var k=this.match_main(b,h.substring(0,this.Match_MaxBits),g);-1!=k&&(l=this.match_main(b,h.substring(h.length-this.Match_MaxBits),g+h.length-this.Match_MaxBits),-1==l||k>=l)&&(k=-1)}else k=this.match_main(b,h,\ng);if(-1==k)e[f]=!1,d-=a[f].length2-a[f].length1;else if(e[f]=!0,d=k-g,g=-1==l?b.substring(k,k+h.length):b.substring(k,l+this.Match_MaxBits),h==g)b=b.substring(0,k)+this.diff_text2(a[f].diffs)+b.substring(k+h.length);else if(g=this.diff_main(h,g,!1),h.length>this.Match_MaxBits&&this.diff_levenshtein(g)/h.length>this.Patch_DeleteThreshold)e[f]=!1;else{this.diff_cleanupSemanticLossless(g);h=0;var m;for(l=0;l<a[f].diffs.length;l++){var p=a[f].diffs[l];p[0]!==DIFF_EQUAL&&(m=this.diff_xIndex(g,h));p[0]===\nDIFF_INSERT?b=b.substring(0,k+m)+p[1]+b.substring(k+m):p[0]===DIFF_DELETE&&(b=b.substring(0,k+m)+b.substring(k+this.diff_xIndex(g,h+p[1].length)));p[0]!==DIFF_DELETE&&(h+=p[1].length)}}}b=b.substring(c.length,b.length-c.length);return[b,e]};\ndiff_match_patch.prototype.patch_addPadding=function(a){for(var b=this.Patch_Margin,c=\"\",d=1;d<=b;d++)c+=String.fromCharCode(d);for(d=0;d<a.length;d++)a[d].start1+=b,a[d].start2+=b;d=a[0];var e=d.diffs;if(0==e.length||e[0][0]!=DIFF_EQUAL)e.unshift([DIFF_EQUAL,c]),d.start1-=b,d.start2-=b,d.length1+=b,d.length2+=b;else if(b>e[0][1].length){var f=b-e[0][1].length;e[0][1]=c.substring(e[0][1].length)+e[0][1];d.start1-=f;d.start2-=f;d.length1+=f;d.length2+=f}d=a[a.length-1];e=d.diffs;0==e.length||e[e.length-\n1][0]!=DIFF_EQUAL?(e.push([DIFF_EQUAL,c]),d.length1+=b,d.length2+=b):b>e[e.length-1][1].length&&(f=b-e[e.length-1][1].length,e[e.length-1][1]+=c.substring(0,f),d.length1+=f,d.length2+=f);return c};\ndiff_match_patch.prototype.patch_splitMax=function(a){for(var b=this.Match_MaxBits,c=0;c<a.length;c++)if(!(a[c].length1<=b)){var d=a[c];a.splice(c--,1);for(var e=d.start1,f=d.start2,g=\"\";0!==d.diffs.length;){var h=new diff_match_patch.patch_obj,l=!0;h.start1=e-g.length;h.start2=f-g.length;\"\"!==g&&(h.length1=h.length2=g.length,h.diffs.push([DIFF_EQUAL,g]));for(;0!==d.diffs.length&&h.length1<b-this.Patch_Margin;){g=d.diffs[0][0];var k=d.diffs[0][1];g===DIFF_INSERT?(h.length2+=k.length,f+=k.length,h.diffs.push(d.diffs.shift()),\nl=!1):g===DIFF_DELETE&&1==h.diffs.length&&h.diffs[0][0]==DIFF_EQUAL&&k.length>2*b?(h.length1+=k.length,e+=k.length,l=!1,h.diffs.push([g,k]),d.diffs.shift()):(k=k.substring(0,b-h.length1-this.Patch_Margin),h.length1+=k.length,e+=k.length,g===DIFF_EQUAL?(h.length2+=k.length,f+=k.length):l=!1,h.diffs.push([g,k]),k==d.diffs[0][1]?d.diffs.shift():d.diffs[0][1]=d.diffs[0][1].substring(k.length))}g=this.diff_text2(h.diffs);g=g.substring(g.length-this.Patch_Margin);k=this.diff_text1(d.diffs).substring(0,\nthis.Patch_Margin);\"\"!==k&&(h.length1+=k.length,h.length2+=k.length,0!==h.diffs.length&&h.diffs[h.diffs.length-1][0]===DIFF_EQUAL?h.diffs[h.diffs.length-1][1]+=k:h.diffs.push([DIFF_EQUAL,k]));l||a.splice(++c,0,h)}}};diff_match_patch.prototype.patch_toText=function(a){for(var b=[],c=0;c<a.length;c++)b[c]=a[c];return b.join(\"\")};\ndiff_match_patch.prototype.patch_fromText=function(a){var b=[];if(!a)return b;a=a.split(\"\\n\");for(var c=0,d=/^@@ -(\\d+),?(\\d*) \\+(\\d+),?(\\d*) @@$/;c<a.length;){var e=a[c].match(d);if(!e)throw Error(\"Invalid patch string: \"+a[c]);var f=new diff_match_patch.patch_obj;b.push(f);f.start1=parseInt(e[1],10);\"\"===e[2]?(f.start1--,f.length1=1):\"0\"==e[2]?f.length1=0:(f.start1--,f.length1=parseInt(e[2],10));f.start2=parseInt(e[3],10);\"\"===e[4]?(f.start2--,f.length2=1):\"0\"==e[4]?f.length2=0:(f.start2--,f.length2=\nparseInt(e[4],10));for(c++;c<a.length;){e=a[c].charAt(0);try{var g=decodeURI(a[c].substring(1))}catch(h){throw Error(\"Illegal escape in patch_fromText: \"+g);}if(\"-\"==e)f.diffs.push([DIFF_DELETE,g]);else if(\"+\"==e)f.diffs.push([DIFF_INSERT,g]);else if(\" \"==e)f.diffs.push([DIFF_EQUAL,g]);else if(\"@\"==e)break;else if(\"\"!==e)throw Error('Invalid patch mode \"'+e+'\" in: '+g);c++}}return b};diff_match_patch.patch_obj=function(){this.diffs=[];this.start2=this.start1=null;this.length2=this.length1=0};\ndiff_match_patch.patch_obj.prototype.toString=function(){for(var a=[\"@@ -\"+(0===this.length1?this.start1+\",0\":1==this.length1?this.start1+1:this.start1+1+\",\"+this.length1)+\" +\"+(0===this.length2?this.start2+\",0\":1==this.length2?this.start2+1:this.start2+1+\",\"+this.length2)+\" @@\\n\"],b,c=0;c<this.diffs.length;c++){switch(this.diffs[c][0]){case DIFF_INSERT:b=\"+\";break;case DIFF_DELETE:b=\"-\";break;case DIFF_EQUAL:b=\" \"}a[c+1]=b+encodeURI(this.diffs[c][1])+\"\\n\"}return a.join(\"\").replace(/%20/g,\" \")};\nthis.diff_match_patch=diff_match_patch;this.DIFF_DELETE=DIFF_DELETE;this.DIFF_INSERT=DIFF_INSERT;this.DIFF_EQUAL=DIFF_EQUAL;\n}).call(exports);",
            "type": "application/javascript",
            "title": "$:/core/modules/utils/diff-match-patch/diff_match_patch.js",
            "module-type": "library"
        },
        "$:/core/modules/utils/dom/animations/slide.js": {
            "title": "$:/core/modules/utils/dom/animations/slide.js",
            "text": "/*\\\ntitle: $:/core/modules/utils/dom/animations/slide.js\ntype: application/javascript\nmodule-type: animation\n\nA simple slide animation that varies the height of the element\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nfunction slideOpen(domNode,options) {\n\toptions = options || {};\n\tvar duration = options.duration || $tw.utils.getAnimationDuration();\n\t// Get the current height of the domNode\n\tvar computedStyle = window.getComputedStyle(domNode),\n\t\tcurrMarginBottom = parseInt(computedStyle.marginBottom,10),\n\t\tcurrMarginTop = parseInt(computedStyle.marginTop,10),\n\t\tcurrPaddingBottom = parseInt(computedStyle.paddingBottom,10),\n\t\tcurrPaddingTop = parseInt(computedStyle.paddingTop,10),\n\t\tcurrHeight = domNode.offsetHeight;\n\t// Reset the margin once the transition is over\n\tsetTimeout(function() {\n\t\t$tw.utils.setStyle(domNode,[\n\t\t\t{transition: \"none\"},\n\t\t\t{marginBottom: \"\"},\n\t\t\t{marginTop: \"\"},\n\t\t\t{paddingBottom: \"\"},\n\t\t\t{paddingTop: \"\"},\n\t\t\t{height: \"auto\"},\n\t\t\t{opacity: \"\"}\n\t\t]);\n\t\tif(options.callback) {\n\t\t\toptions.callback();\n\t\t}\n\t},duration);\n\t// Set up the initial position of the element\n\t$tw.utils.setStyle(domNode,[\n\t\t{transition: \"none\"},\n\t\t{marginTop: \"0px\"},\n\t\t{marginBottom: \"0px\"},\n\t\t{paddingTop: \"0px\"},\n\t\t{paddingBottom: \"0px\"},\n\t\t{height: \"0px\"},\n\t\t{opacity: \"0\"}\n\t]);\n\t$tw.utils.forceLayout(domNode);\n\t// Transition to the final position\n\t$tw.utils.setStyle(domNode,[\n\t\t{transition: \"margin-top \" + duration + \"ms ease-in-out, \" +\n\t\t\t\t\t\"margin-bottom \" + duration + \"ms ease-in-out, \" +\n\t\t\t\t\t\"padding-top \" + duration + \"ms ease-in-out, \" +\n\t\t\t\t\t\"padding-bottom \" + duration + \"ms ease-in-out, \" +\n\t\t\t\t\t\"height \" + duration + \"ms ease-in-out, \" +\n\t\t\t\t\t\"opacity \" + duration + \"ms ease-in-out\"},\n\t\t{marginBottom: currMarginBottom + \"px\"},\n\t\t{marginTop: currMarginTop + \"px\"},\n\t\t{paddingBottom: currPaddingBottom + \"px\"},\n\t\t{paddingTop: currPaddingTop + \"px\"},\n\t\t{height: currHeight + \"px\"},\n\t\t{opacity: \"1\"}\n\t]);\n}\n\nfunction slideClosed(domNode,options) {\n\toptions = options || {};\n\tvar duration = options.duration || $tw.utils.getAnimationDuration(),\n\t\tcurrHeight = domNode.offsetHeight;\n\t// Clear the properties we've set when the animation is over\n\tsetTimeout(function() {\n\t\t$tw.utils.setStyle(domNode,[\n\t\t\t{transition: \"none\"},\n\t\t\t{marginBottom: \"\"},\n\t\t\t{marginTop: \"\"},\n\t\t\t{paddingBottom: \"\"},\n\t\t\t{paddingTop: \"\"},\n\t\t\t{height: \"auto\"},\n\t\t\t{opacity: \"\"}\n\t\t]);\n\t\tif(options.callback) {\n\t\t\toptions.callback();\n\t\t}\n\t},duration);\n\t// Set up the initial position of the element\n\t$tw.utils.setStyle(domNode,[\n\t\t{height: currHeight + \"px\"},\n\t\t{opacity: \"1\"}\n\t]);\n\t$tw.utils.forceLayout(domNode);\n\t// Transition to the final position\n\t$tw.utils.setStyle(domNode,[\n\t\t{transition: \"margin-top \" + duration + \"ms ease-in-out, \" +\n\t\t\t\t\t\"margin-bottom \" + duration + \"ms ease-in-out, \" +\n\t\t\t\t\t\"padding-top \" + duration + \"ms ease-in-out, \" +\n\t\t\t\t\t\"padding-bottom \" + duration + \"ms ease-in-out, \" +\n\t\t\t\t\t\"height \" + duration + \"ms ease-in-out, \" +\n\t\t\t\t\t\"opacity \" + duration + \"ms ease-in-out\"},\n\t\t{marginTop: \"0px\"},\n\t\t{marginBottom: \"0px\"},\n\t\t{paddingTop: \"0px\"},\n\t\t{paddingBottom: \"0px\"},\n\t\t{height: \"0px\"},\n\t\t{opacity: \"0\"}\n\t]);\n}\n\nexports.slide = {\n\topen: slideOpen,\n\tclose: slideClosed\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "animation"
        },
        "$:/core/modules/utils/dom/animator.js": {
            "title": "$:/core/modules/utils/dom/animator.js",
            "text": "/*\\\ntitle: $:/core/modules/utils/dom/animator.js\ntype: application/javascript\nmodule-type: utils\n\nOrchestrates animations and transitions\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nfunction Animator() {\n\t// Get the registered animation modules\n\tthis.animations = {};\n\t$tw.modules.applyMethods(\"animation\",this.animations);\n}\n\nAnimator.prototype.perform = function(type,domNode,options) {\n\toptions = options || {};\n\t// Find an animation that can handle this type\n\tvar chosenAnimation;\n\t$tw.utils.each(this.animations,function(animation,name) {\n\t\tif($tw.utils.hop(animation,type)) {\n\t\t\tchosenAnimation = animation[type];\n\t\t}\n\t});\n\tif(!chosenAnimation) {\n\t\tchosenAnimation = function(domNode,options) {\n\t\t\tif(options.callback) {\n\t\t\t\toptions.callback();\n\t\t\t}\n\t\t};\n\t}\n\t// Call the animation\n\tchosenAnimation(domNode,options);\n};\n\nexports.Animator = Animator;\n\n})();\n",
            "type": "application/javascript",
            "module-type": "utils"
        },
        "$:/core/modules/utils/dom/browser.js": {
            "title": "$:/core/modules/utils/dom/browser.js",
            "text": "/*\\\ntitle: $:/core/modules/utils/dom/browser.js\ntype: application/javascript\nmodule-type: utils\n\nBrowser feature detection\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nSet style properties of an element\n\telement: dom node\n\tstyles: ordered array of {name: value} pairs\n*/\nexports.setStyle = function(element,styles) {\n\tif(element.nodeType === 1) { // Element.ELEMENT_NODE\n\t\tfor(var t=0; t<styles.length; t++) {\n\t\t\tfor(var styleName in styles[t]) {\n\t\t\t\telement.style[$tw.utils.convertStyleNameToPropertyName(styleName)] = styles[t][styleName];\n\t\t\t}\n\t\t}\n\t}\n};\n\n/*\nConverts a standard CSS property name into the local browser-specific equivalent. For example:\n\t\"background-color\" --> \"backgroundColor\"\n\t\"transition\" --> \"webkitTransition\"\n*/\n\nvar styleNameCache = {}; // We'll cache the style name conversions\n\nexports.convertStyleNameToPropertyName = function(styleName) {\n\t// Return from the cache if we can\n\tif(styleNameCache[styleName]) {\n\t\treturn styleNameCache[styleName];\n\t}\n\t// Convert it by first removing any hyphens\n\tvar propertyName = $tw.utils.unHyphenateCss(styleName);\n\t// Then check if it needs a prefix\n\tif($tw.browser && document.body.style[propertyName] === undefined) {\n\t\tvar prefixes = [\"O\",\"MS\",\"Moz\",\"webkit\"];\n\t\tfor(var t=0; t<prefixes.length; t++) {\n\t\t\tvar prefixedName = prefixes[t] + propertyName.substr(0,1).toUpperCase() + propertyName.substr(1);\n\t\t\tif(document.body.style[prefixedName] !== undefined) {\n\t\t\t\tpropertyName = prefixedName;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\t// Put it in the cache too\n\tstyleNameCache[styleName] = propertyName;\n\treturn propertyName;\n};\n\n/*\nConverts a JS format CSS property name back into the dashed form used in CSS declarations. For example:\n\t\"backgroundColor\" --> \"background-color\"\n\t\"webkitTransform\" --> \"-webkit-transform\"\n*/\nexports.convertPropertyNameToStyleName = function(propertyName) {\n\t// Rehyphenate the name\n\tvar styleName = $tw.utils.hyphenateCss(propertyName);\n\t// If there's a webkit prefix, add a dash (other browsers have uppercase prefixes, and so get the dash automatically)\n\tif(styleName.indexOf(\"webkit\") === 0) {\n\t\tstyleName = \"-\" + styleName;\n\t} else if(styleName.indexOf(\"-m-s\") === 0) {\n\t\tstyleName = \"-ms\" + styleName.substr(4);\n\t}\n\treturn styleName;\n};\n\n/*\nRound trip a stylename to a property name and back again. For example:\n\t\"transform\" --> \"webkitTransform\" --> \"-webkit-transform\"\n*/\nexports.roundTripPropertyName = function(propertyName) {\n\treturn $tw.utils.convertPropertyNameToStyleName($tw.utils.convertStyleNameToPropertyName(propertyName));\n};\n\n/*\nConverts a standard event name into the local browser specific equivalent. For example:\n\t\"animationEnd\" --> \"webkitAnimationEnd\"\n*/\n\nvar eventNameCache = {}; // We'll cache the conversions\n\nvar eventNameMappings = {\n\t\"transitionEnd\": {\n\t\tcorrespondingCssProperty: \"transition\",\n\t\tmappings: {\n\t\t\ttransition: \"transitionend\",\n\t\t\tOTransition: \"oTransitionEnd\",\n\t\t\tMSTransition: \"msTransitionEnd\",\n\t\t\tMozTransition: \"transitionend\",\n\t\t\twebkitTransition: \"webkitTransitionEnd\"\n\t\t}\n\t},\n\t\"animationEnd\": {\n\t\tcorrespondingCssProperty: \"animation\",\n\t\tmappings: {\n\t\t\tanimation: \"animationend\",\n\t\t\tOAnimation: \"oAnimationEnd\",\n\t\t\tMSAnimation: \"msAnimationEnd\",\n\t\t\tMozAnimation: \"animationend\",\n\t\t\twebkitAnimation: \"webkitAnimationEnd\"\n\t\t}\n\t}\n};\n\nexports.convertEventName = function(eventName) {\n\tif(eventNameCache[eventName]) {\n\t\treturn eventNameCache[eventName];\n\t}\n\tvar newEventName = eventName,\n\t\tmappings = eventNameMappings[eventName];\n\tif(mappings) {\n\t\tvar convertedProperty = $tw.utils.convertStyleNameToPropertyName(mappings.correspondingCssProperty);\n\t\tif(mappings.mappings[convertedProperty]) {\n\t\t\tnewEventName = mappings.mappings[convertedProperty];\n\t\t}\n\t}\n\t// Put it in the cache too\n\teventNameCache[eventName] = newEventName;\n\treturn newEventName;\n};\n\n/*\nReturn the names of the fullscreen APIs\n*/\nexports.getFullScreenApis = function() {\n\tvar d = document,\n\t\tdb = d.body,\n\t\tresult = {\n\t\t\"_requestFullscreen\": db.webkitRequestFullscreen !== undefined ? \"webkitRequestFullscreen\" :\n\t\t\t\t\t\t\tdb.mozRequestFullScreen !== undefined ? \"mozRequestFullScreen\" :\n\t\t\t\t\t\t\tdb.msRequestFullscreen !== undefined ? \"msRequestFullscreen\" :\n\t\t\t\t\t\t\tdb.requestFullscreen !== undefined ? \"requestFullscreen\" : \"\",\n\t\t\"_exitFullscreen\": d.webkitExitFullscreen !== undefined ? \"webkitExitFullscreen\" :\n\t\t\t\t\t\t\td.mozCancelFullScreen !== undefined ? \"mozCancelFullScreen\" :\n\t\t\t\t\t\t\td.msExitFullscreen !== undefined ? \"msExitFullscreen\" :\n\t\t\t\t\t\t\td.exitFullscreen !== undefined ? \"exitFullscreen\" : \"\",\n\t\t\"_fullscreenElement\": d.webkitFullscreenElement !== undefined ? \"webkitFullscreenElement\" :\n\t\t\t\t\t\t\td.mozFullScreenElement !== undefined ? \"mozFullScreenElement\" :\n\t\t\t\t\t\t\td.msFullscreenElement !== undefined ? \"msFullscreenElement\" :\n\t\t\t\t\t\t\td.fullscreenElement !== undefined ? \"fullscreenElement\" : \"\",\n\t\t\"_fullscreenChange\": d.webkitFullscreenElement !== undefined ? \"webkitfullscreenchange\" :\n\t\t\t\t\t\t\td.mozFullScreenElement !== undefined ? \"mozfullscreenchange\" :\n\t\t\t\t\t\t\td.msFullscreenElement !== undefined ? \"MSFullscreenChange\" :\n\t\t\t\t\t\t\td.fullscreenElement !== undefined ? \"fullscreenchange\" : \"\"\n\t};\n\tif(!result._requestFullscreen || !result._exitFullscreen || !result._fullscreenElement || !result._fullscreenChange) {\n\t\treturn null;\n\t} else {\n\t\treturn result;\n\t}\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "utils"
        },
        "$:/core/modules/utils/dom/csscolorparser.js": {
            "title": "$:/core/modules/utils/dom/csscolorparser.js",
            "text": "// (c) Dean McNamee <dean@gmail.com>, 2012.\n//\n// https://github.com/deanm/css-color-parser-js\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to\n// deal in the Software without restriction, including without limitation the\n// rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n// sell copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n// IN THE SOFTWARE.\n\n// http://www.w3.org/TR/css3-color/\nvar kCSSColorTable = {\n  \"transparent\": [0,0,0,0], \"aliceblue\": [240,248,255,1],\n  \"antiquewhite\": [250,235,215,1], \"aqua\": [0,255,255,1],\n  \"aquamarine\": [127,255,212,1], \"azure\": [240,255,255,1],\n  \"beige\": [245,245,220,1], \"bisque\": [255,228,196,1],\n  \"black\": [0,0,0,1], \"blanchedalmond\": [255,235,205,1],\n  \"blue\": [0,0,255,1], \"blueviolet\": [138,43,226,1],\n  \"brown\": [165,42,42,1], \"burlywood\": [222,184,135,1],\n  \"cadetblue\": [95,158,160,1], \"chartreuse\": [127,255,0,1],\n  \"chocolate\": [210,105,30,1], \"coral\": [255,127,80,1],\n  \"cornflowerblue\": [100,149,237,1], \"cornsilk\": [255,248,220,1],\n  \"crimson\": [220,20,60,1], \"cyan\": [0,255,255,1],\n  \"darkblue\": [0,0,139,1], \"darkcyan\": [0,139,139,1],\n  \"darkgoldenrod\": [184,134,11,1], \"darkgray\": [169,169,169,1],\n  \"darkgreen\": [0,100,0,1], \"darkgrey\": [169,169,169,1],\n  \"darkkhaki\": [189,183,107,1], \"darkmagenta\": [139,0,139,1],\n  \"darkolivegreen\": [85,107,47,1], \"darkorange\": [255,140,0,1],\n  \"darkorchid\": [153,50,204,1], \"darkred\": [139,0,0,1],\n  \"darksalmon\": [233,150,122,1], \"darkseagreen\": [143,188,143,1],\n  \"darkslateblue\": [72,61,139,1], \"darkslategray\": [47,79,79,1],\n  \"darkslategrey\": [47,79,79,1], \"darkturquoise\": [0,206,209,1],\n  \"darkviolet\": [148,0,211,1], \"deeppink\": [255,20,147,1],\n  \"deepskyblue\": [0,191,255,1], \"dimgray\": [105,105,105,1],\n  \"dimgrey\": [105,105,105,1], \"dodgerblue\": [30,144,255,1],\n  \"firebrick\": [178,34,34,1], \"floralwhite\": [255,250,240,1],\n  \"forestgreen\": [34,139,34,1], \"fuchsia\": [255,0,255,1],\n  \"gainsboro\": [220,220,220,1], \"ghostwhite\": [248,248,255,1],\n  \"gold\": [255,215,0,1], \"goldenrod\": [218,165,32,1],\n  \"gray\": [128,128,128,1], \"green\": [0,128,0,1],\n  \"greenyellow\": [173,255,47,1], \"grey\": [128,128,128,1],\n  \"honeydew\": [240,255,240,1], \"hotpink\": [255,105,180,1],\n  \"indianred\": [205,92,92,1], \"indigo\": [75,0,130,1],\n  \"ivory\": [255,255,240,1], \"khaki\": [240,230,140,1],\n  \"lavender\": [230,230,250,1], \"lavenderblush\": [255,240,245,1],\n  \"lawngreen\": [124,252,0,1], \"lemonchiffon\": [255,250,205,1],\n  \"lightblue\": [173,216,230,1], \"lightcoral\": [240,128,128,1],\n  \"lightcyan\": [224,255,255,1], \"lightgoldenrodyellow\": [250,250,210,1],\n  \"lightgray\": [211,211,211,1], \"lightgreen\": [144,238,144,1],\n  \"lightgrey\": [211,211,211,1], \"lightpink\": [255,182,193,1],\n  \"lightsalmon\": [255,160,122,1], \"lightseagreen\": [32,178,170,1],\n  \"lightskyblue\": [135,206,250,1], \"lightslategray\": [119,136,153,1],\n  \"lightslategrey\": [119,136,153,1], \"lightsteelblue\": [176,196,222,1],\n  \"lightyellow\": [255,255,224,1], \"lime\": [0,255,0,1],\n  \"limegreen\": [50,205,50,1], \"linen\": [250,240,230,1],\n  \"magenta\": [255,0,255,1], \"maroon\": [128,0,0,1],\n  \"mediumaquamarine\": [102,205,170,1], \"mediumblue\": [0,0,205,1],\n  \"mediumorchid\": [186,85,211,1], \"mediumpurple\": [147,112,219,1],\n  \"mediumseagreen\": [60,179,113,1], \"mediumslateblue\": [123,104,238,1],\n  \"mediumspringgreen\": [0,250,154,1], \"mediumturquoise\": [72,209,204,1],\n  \"mediumvioletred\": [199,21,133,1], \"midnightblue\": [25,25,112,1],\n  \"mintcream\": [245,255,250,1], \"mistyrose\": [255,228,225,1],\n  \"moccasin\": [255,228,181,1], \"navajowhite\": [255,222,173,1],\n  \"navy\": [0,0,128,1], \"oldlace\": [253,245,230,1],\n  \"olive\": [128,128,0,1], \"olivedrab\": [107,142,35,1],\n  \"orange\": [255,165,0,1], \"orangered\": [255,69,0,1],\n  \"orchid\": [218,112,214,1], \"palegoldenrod\": [238,232,170,1],\n  \"palegreen\": [152,251,152,1], \"paleturquoise\": [175,238,238,1],\n  \"palevioletred\": [219,112,147,1], \"papayawhip\": [255,239,213,1],\n  \"peachpuff\": [255,218,185,1], \"peru\": [205,133,63,1],\n  \"pink\": [255,192,203,1], \"plum\": [221,160,221,1],\n  \"powderblue\": [176,224,230,1], \"purple\": [128,0,128,1],\n  \"red\": [255,0,0,1], \"rosybrown\": [188,143,143,1],\n  \"royalblue\": [65,105,225,1], \"saddlebrown\": [139,69,19,1],\n  \"salmon\": [250,128,114,1], \"sandybrown\": [244,164,96,1],\n  \"seagreen\": [46,139,87,1], \"seashell\": [255,245,238,1],\n  \"sienna\": [160,82,45,1], \"silver\": [192,192,192,1],\n  \"skyblue\": [135,206,235,1], \"slateblue\": [106,90,205,1],\n  \"slategray\": [112,128,144,1], \"slategrey\": [112,128,144,1],\n  \"snow\": [255,250,250,1], \"springgreen\": [0,255,127,1],\n  \"steelblue\": [70,130,180,1], \"tan\": [210,180,140,1],\n  \"teal\": [0,128,128,1], \"thistle\": [216,191,216,1],\n  \"tomato\": [255,99,71,1], \"turquoise\": [64,224,208,1],\n  \"violet\": [238,130,238,1], \"wheat\": [245,222,179,1],\n  \"white\": [255,255,255,1], \"whitesmoke\": [245,245,245,1],\n  \"yellow\": [255,255,0,1], \"yellowgreen\": [154,205,50,1]}\n\nfunction clamp_css_byte(i) {  // Clamp to integer 0 .. 255.\n  i = Math.round(i);  // Seems to be what Chrome does (vs truncation).\n  return i < 0 ? 0 : i > 255 ? 255 : i;\n}\n\nfunction clamp_css_float(f) {  // Clamp to float 0.0 .. 1.0.\n  return f < 0 ? 0 : f > 1 ? 1 : f;\n}\n\nfunction parse_css_int(str) {  // int or percentage.\n  if (str[str.length - 1] === '%')\n    return clamp_css_byte(parseFloat(str) / 100 * 255);\n  return clamp_css_byte(parseInt(str));\n}\n\nfunction parse_css_float(str) {  // float or percentage.\n  if (str[str.length - 1] === '%')\n    return clamp_css_float(parseFloat(str) / 100);\n  return clamp_css_float(parseFloat(str));\n}\n\nfunction css_hue_to_rgb(m1, m2, h) {\n  if (h < 0) h += 1;\n  else if (h > 1) h -= 1;\n\n  if (h * 6 < 1) return m1 + (m2 - m1) * h * 6;\n  if (h * 2 < 1) return m2;\n  if (h * 3 < 2) return m1 + (m2 - m1) * (2/3 - h) * 6;\n  return m1;\n}\n\nfunction parseCSSColor(css_str) {\n  // Remove all whitespace, not compliant, but should just be more accepting.\n  var str = css_str.replace(/ /g, '').toLowerCase();\n\n  // Color keywords (and transparent) lookup.\n  if (str in kCSSColorTable) return kCSSColorTable[str].slice();  // dup.\n\n  // #abc and #abc123 syntax.\n  if (str[0] === '#') {\n    if (str.length === 4) {\n      var iv = parseInt(str.substr(1), 16);  // TODO(deanm): Stricter parsing.\n      if (!(iv >= 0 && iv <= 0xfff)) return null;  // Covers NaN.\n      return [((iv & 0xf00) >> 4) | ((iv & 0xf00) >> 8),\n              (iv & 0xf0) | ((iv & 0xf0) >> 4),\n              (iv & 0xf) | ((iv & 0xf) << 4),\n              1];\n    } else if (str.length === 7) {\n      var iv = parseInt(str.substr(1), 16);  // TODO(deanm): Stricter parsing.\n      if (!(iv >= 0 && iv <= 0xffffff)) return null;  // Covers NaN.\n      return [(iv & 0xff0000) >> 16,\n              (iv & 0xff00) >> 8,\n              iv & 0xff,\n              1];\n    }\n\n    return null;\n  }\n\n  var op = str.indexOf('('), ep = str.indexOf(')');\n  if (op !== -1 && ep + 1 === str.length) {\n    var fname = str.substr(0, op);\n    var params = str.substr(op+1, ep-(op+1)).split(',');\n    var alpha = 1;  // To allow case fallthrough.\n    switch (fname) {\n      case 'rgba':\n        if (params.length !== 4) return null;\n        alpha = parse_css_float(params.pop());\n        // Fall through.\n      case 'rgb':\n        if (params.length !== 3) return null;\n        return [parse_css_int(params[0]),\n                parse_css_int(params[1]),\n                parse_css_int(params[2]),\n                alpha];\n      case 'hsla':\n        if (params.length !== 4) return null;\n        alpha = parse_css_float(params.pop());\n        // Fall through.\n      case 'hsl':\n        if (params.length !== 3) return null;\n        var h = (((parseFloat(params[0]) % 360) + 360) % 360) / 360;  // 0 .. 1\n        // NOTE(deanm): According to the CSS spec s/l should only be\n        // percentages, but we don't bother and let float or percentage.\n        var s = parse_css_float(params[1]);\n        var l = parse_css_float(params[2]);\n        var m2 = l <= 0.5 ? l * (s + 1) : l + s - l * s;\n        var m1 = l * 2 - m2;\n        return [clamp_css_byte(css_hue_to_rgb(m1, m2, h+1/3) * 255),\n                clamp_css_byte(css_hue_to_rgb(m1, m2, h) * 255),\n                clamp_css_byte(css_hue_to_rgb(m1, m2, h-1/3) * 255),\n                alpha];\n      default:\n        return null;\n    }\n  }\n\n  return null;\n}\n\ntry { exports.parseCSSColor = parseCSSColor } catch(e) { }\n",
            "type": "application/javascript",
            "module-type": "utils"
        },
        "$:/core/modules/utils/dom.js": {
            "title": "$:/core/modules/utils/dom.js",
            "text": "/*\\\ntitle: $:/core/modules/utils/dom.js\ntype: application/javascript\nmodule-type: utils\n\nVarious static DOM-related utility functions.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nDetermines whether element 'a' contains element 'b'\nCode thanks to John Resig, http://ejohn.org/blog/comparing-document-position/\n*/\nexports.domContains = function(a,b) {\n\treturn a.contains ?\n\t\ta !== b && a.contains(b) :\n\t\t!!(a.compareDocumentPosition(b) & 16);\n};\n\nexports.removeChildren = function(node) {\n\twhile(node.hasChildNodes()) {\n\t\tnode.removeChild(node.firstChild);\n\t}\n};\n\nexports.hasClass = function(el,className) {\n\treturn el && el.hasAttribute && el.hasAttribute(\"class\") && el.getAttribute(\"class\").split(\" \").indexOf(className) !== -1;\n};\n\nexports.addClass = function(el,className) {\n\tvar c = (el.getAttribute(\"class\") || \"\").split(\" \");\n\tif(c.indexOf(className) === -1) {\n\t\tc.push(className);\n\t\tel.setAttribute(\"class\",c.join(\" \"));\n\t}\n};\n\nexports.removeClass = function(el,className) {\n\tvar c = (el.getAttribute(\"class\") || \"\").split(\" \"),\n\t\tp = c.indexOf(className);\n\tif(p !== -1) {\n\t\tc.splice(p,1);\n\t\tel.setAttribute(\"class\",c.join(\" \"));\n\t}\n};\n\nexports.toggleClass = function(el,className,status) {\n\tif(status === undefined) {\n\t\tstatus = !exports.hasClass(el,className);\n\t}\n\tif(status) {\n\t\texports.addClass(el,className);\n\t} else {\n\t\texports.removeClass(el,className);\n\t}\n};\n\n/*\nGet the first parent element that has scrollbars or use the body as fallback.\n*/\nexports.getScrollContainer = function(el) {\n\tvar doc = el.ownerDocument;\n\twhile(el.parentNode) {\t\n\t\tel = el.parentNode;\n\t\tif(el.scrollTop) {\n\t\t\treturn el;\n\t\t}\n\t}\n\treturn doc.body;\n};\n\n/*\nGet the scroll position of the viewport\nReturns:\n\t{\n\t\tx: horizontal scroll position in pixels,\n\t\ty: vertical scroll position in pixels\n\t}\n*/\nexports.getScrollPosition = function(srcWindow) {\n\tvar scrollWindow = srcWindow || window;\n\tif(\"scrollX\" in scrollWindow) {\n\t\treturn {x: scrollWindow.scrollX, y: scrollWindow.scrollY};\n\t} else {\n\t\treturn {x: scrollWindow.document.documentElement.scrollLeft, y: scrollWindow.document.documentElement.scrollTop};\n\t}\n};\n\n/*\nAdjust the height of a textarea to fit its content, preserving scroll position, and return the height\n*/\nexports.resizeTextAreaToFit = function(domNode,minHeight) {\n\t// Get the scroll container and register the current scroll position\n\tvar container = $tw.utils.getScrollContainer(domNode),\n\t\tscrollTop = container.scrollTop;\n    // Measure the specified minimum height\n\tdomNode.style.height = minHeight;\n\tvar measuredHeight = domNode.offsetHeight || parseInt(minHeight,10);\n\t// Set its height to auto so that it snaps to the correct height\n\tdomNode.style.height = \"auto\";\n\t// Calculate the revised height\n\tvar newHeight = Math.max(domNode.scrollHeight + domNode.offsetHeight - domNode.clientHeight,measuredHeight);\n\t// Only try to change the height if it has changed\n\tif(newHeight !== domNode.offsetHeight) {\n\t\tdomNode.style.height = newHeight + \"px\";\n\t\t// Make sure that the dimensions of the textarea are recalculated\n\t\t$tw.utils.forceLayout(domNode);\n\t\t// Set the container to the position we registered at the beginning\n\t\tcontainer.scrollTop = scrollTop;\n\t}\n\treturn newHeight;\n};\n\n/*\nGets the bounding rectangle of an element in absolute page coordinates\n*/\nexports.getBoundingPageRect = function(element) {\n\tvar scrollPos = $tw.utils.getScrollPosition(element.ownerDocument.defaultView),\n\t\tclientRect = element.getBoundingClientRect();\n\treturn {\n\t\tleft: clientRect.left + scrollPos.x,\n\t\twidth: clientRect.width,\n\t\tright: clientRect.right + scrollPos.x,\n\t\ttop: clientRect.top + scrollPos.y,\n\t\theight: clientRect.height,\n\t\tbottom: clientRect.bottom + scrollPos.y\n\t};\n};\n\n/*\nSaves a named password in the browser\n*/\nexports.savePassword = function(name,password) {\n\tvar done = false;\n\ttry {\n\t\twindow.localStorage.setItem(\"tw5-password-\" + name,password);\n\t\tdone = true;\n\t} catch(e) {\n\t}\n\tif(!done) {\n\t\t$tw.savedPasswords = $tw.savedPasswords || Object.create(null);\n\t\t$tw.savedPasswords[name] = password;\n\t}\n};\n\n/*\nRetrieve a named password from the browser\n*/\nexports.getPassword = function(name) {\n\tvar value;\n\ttry {\n\t\tvalue = window.localStorage.getItem(\"tw5-password-\" + name);\n\t} catch(e) {\n\t}\n\tif(value !== undefined) {\n\t\treturn value;\n\t} else {\n\t\treturn ($tw.savedPasswords || Object.create(null))[name] || \"\";\n\t}\n};\n\n/*\nForce layout of a dom node and its descendents\n*/\nexports.forceLayout = function(element) {\n\tvar dummy = element.offsetWidth;\n};\n\n/*\nPulse an element for debugging purposes\n*/\nexports.pulseElement = function(element) {\n\t// Event handler to remove the class at the end\n\telement.addEventListener($tw.browser.animationEnd,function handler(event) {\n\t\telement.removeEventListener($tw.browser.animationEnd,handler,false);\n\t\t$tw.utils.removeClass(element,\"pulse\");\n\t},false);\n\t// Apply the pulse class\n\t$tw.utils.removeClass(element,\"pulse\");\n\t$tw.utils.forceLayout(element);\n\t$tw.utils.addClass(element,\"pulse\");\n};\n\n/*\nAttach specified event handlers to a DOM node\ndomNode: where to attach the event handlers\nevents: array of event handlers to be added (see below)\nEach entry in the events array is an object with these properties:\nhandlerFunction: optional event handler function\nhandlerObject: optional event handler object\nhandlerMethod: optionally specifies object handler method name (defaults to `handleEvent`)\n*/\nexports.addEventListeners = function(domNode,events) {\n\t$tw.utils.each(events,function(eventInfo) {\n\t\tvar handler;\n\t\tif(eventInfo.handlerFunction) {\n\t\t\thandler = eventInfo.handlerFunction;\n\t\t} else if(eventInfo.handlerObject) {\n\t\t\tif(eventInfo.handlerMethod) {\n\t\t\t\thandler = function(event) {\n\t\t\t\t\teventInfo.handlerObject[eventInfo.handlerMethod].call(eventInfo.handlerObject,event);\n\t\t\t\t};\t\n\t\t\t} else {\n\t\t\t\thandler = eventInfo.handlerObject;\n\t\t\t}\n\t\t}\n\t\tdomNode.addEventListener(eventInfo.name,handler,false);\n\t});\n};\n\n/*\nGet the computed styles applied to an element as an array of strings of individual CSS properties\n*/\nexports.getComputedStyles = function(domNode) {\n\tvar textAreaStyles = window.getComputedStyle(domNode,null),\n\t\tstyleDefs = [],\n\t\tname;\n\tfor(var t=0; t<textAreaStyles.length; t++) {\n\t\tname = textAreaStyles[t];\n\t\tstyleDefs.push(name + \": \" + textAreaStyles.getPropertyValue(name) + \";\");\n\t}\n\treturn styleDefs;\n};\n\n/*\nApply a set of styles passed as an array of strings of individual CSS properties\n*/\nexports.setStyles = function(domNode,styleDefs) {\n\tdomNode.style.cssText = styleDefs.join(\"\");\n};\n\n/*\nCopy the computed styles from a source element to a destination element\n*/\nexports.copyStyles = function(srcDomNode,dstDomNode) {\n\t$tw.utils.setStyles(dstDomNode,$tw.utils.getComputedStyles(srcDomNode));\n};\n\n/*\nCopy plain text to the clipboard on browsers that support it\n*/\nexports.copyToClipboard = function(text,options) {\n\toptions = options || {};\n\tvar textArea = document.createElement(\"textarea\");\n\ttextArea.style.position = \"fixed\";\n\ttextArea.style.top = 0;\n\ttextArea.style.left = 0;\n\ttextArea.style.fontSize = \"12pt\";\n\ttextArea.style.width = \"2em\";\n\ttextArea.style.height = \"2em\";\n\ttextArea.style.padding = 0;\n\ttextArea.style.border = \"none\";\n\ttextArea.style.outline = \"none\";\n\ttextArea.style.boxShadow = \"none\";\n\ttextArea.style.background = \"transparent\";\n\ttextArea.value = text;\n\tdocument.body.appendChild(textArea);\n\ttextArea.select();\n\ttextArea.setSelectionRange(0,text.length);\n\tvar succeeded = false;\n\ttry {\n\t\tsucceeded = document.execCommand(\"copy\");\n\t} catch (err) {\n\t}\n\tif(!options.doNotNotify) {\n\t\t$tw.notifier.display(succeeded ? \"$:/language/Notifications/CopiedToClipboard/Succeeded\" : \"$:/language/Notifications/CopiedToClipboard/Failed\");\n\t}\n\tdocument.body.removeChild(textArea);\n};\n\nexports.getLocationPath = function() {\n\treturn window.location.toString().split(\"#\")[0];\n};\n\n\n})();\n",
            "type": "application/javascript",
            "module-type": "utils"
        },
        "$:/core/modules/utils/dom/dragndrop.js": {
            "title": "$:/core/modules/utils/dom/dragndrop.js",
            "text": "/*\\\ntitle: $:/core/modules/utils/dom/dragndrop.js\ntype: application/javascript\nmodule-type: utils\n\nBrowser data transfer utilities, used with the clipboard and drag and drop\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nOptions:\n\ndomNode: dom node to make draggable\ndragImageType: \"pill\" or \"dom\"\ndragTiddlerFn: optional function to retrieve the title of tiddler to drag\ndragFilterFn: optional function to retreive the filter defining a list of tiddlers to drag\nwidget: widget to use as the contect for the filter\n*/\nexports.makeDraggable = function(options) {\n\tvar dragImageType = options.dragImageType || \"dom\",\n\t\tdragImage,\n\t\tdomNode = options.domNode;\n\t// Make the dom node draggable (not necessary for anchor tags)\n\tif((domNode.tagName || \"\").toLowerCase() !== \"a\") {\n\t\tdomNode.setAttribute(\"draggable\",\"true\");\t\t\n\t}\n\t// Add event handlers\n\t$tw.utils.addEventListeners(domNode,[\n\t\t{name: \"dragstart\", handlerFunction: function(event) {\n\t\t\tif(event.dataTransfer === undefined) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\t// Collect the tiddlers being dragged\n\t\t\tvar dragTiddler = options.dragTiddlerFn && options.dragTiddlerFn(),\n\t\t\t\tdragFilter = options.dragFilterFn && options.dragFilterFn(),\n\t\t\t\ttitles = dragTiddler ? [dragTiddler] : [],\n\t\t\t    \tstartActions = options.startActions;\n\t\t\tif(dragFilter) {\n\t\t\t\ttitles.push.apply(titles,options.widget.wiki.filterTiddlers(dragFilter,options.widget));\n\t\t\t}\n\t\t\tvar titleString = $tw.utils.stringifyList(titles);\n\t\t\t// Check that we've something to drag\n\t\t\tif(titles.length > 0 && event.target === domNode) {\n\t\t\t\t// Mark the drag in progress\n\t\t\t\t$tw.dragInProgress = domNode;\n\t\t\t\t// Set the dragging class on the element being dragged\n\t\t\t\t$tw.utils.addClass(event.target,\"tc-dragging\");\n\t\t\t\t// Invoke drag-start actions if given\n\t\t\t\tif(startActions !== undefined) {\n\t\t\t\t\toptions.widget.invokeActionString(startActions,options.widget,event,{actionTiddler: titleString});\n\t\t\t\t}\n\t\t\t\t// Create the drag image elements\n\t\t\t\tdragImage = options.widget.document.createElement(\"div\");\n\t\t\t\tdragImage.className = \"tc-tiddler-dragger\";\n\t\t\t\tvar inner = options.widget.document.createElement(\"div\");\n\t\t\t\tinner.className = \"tc-tiddler-dragger-inner\";\n\t\t\t\tinner.appendChild(options.widget.document.createTextNode(\n\t\t\t\t\ttitles.length === 1 ? \n\t\t\t\t\t\ttitles[0] :\n\t\t\t\t\t\ttitles.length + \" tiddlers\"\n\t\t\t\t));\n\t\t\t\tdragImage.appendChild(inner);\n\t\t\t\toptions.widget.document.body.appendChild(dragImage);\n\t\t\t\t// Set the data transfer properties\n\t\t\t\tvar dataTransfer = event.dataTransfer;\n\t\t\t\t// Set up the image\n\t\t\t\tdataTransfer.effectAllowed = \"all\";\n\t\t\t\tif(dataTransfer.setDragImage) {\n\t\t\t\t\tif(dragImageType === \"pill\") {\n\t\t\t\t\t\tdataTransfer.setDragImage(dragImage.firstChild,-16,-16);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tvar r = domNode.getBoundingClientRect();\n\t\t\t\t\t\tdataTransfer.setDragImage(domNode,event.clientX-r.left,event.clientY-r.top);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\t// Set up the data transfer\n\t\t\t\tif(dataTransfer.clearData) {\n\t\t\t\t\tdataTransfer.clearData();\t\t\t\t\t\n\t\t\t\t}\n\t\t\t\tvar jsonData = [];\n\t\t\t\tif(titles.length > 1) {\n\t\t\t\t\ttitles.forEach(function(title) {\n\t\t\t\t\t\tjsonData.push(options.widget.wiki.getTiddlerAsJson(title));\n\t\t\t\t\t});\n\t\t\t\t\tjsonData = \"[\" + jsonData.join(\",\") + \"]\";\n\t\t\t\t} else {\n\t\t\t\t\tjsonData = options.widget.wiki.getTiddlerAsJson(titles[0]);\n\t\t\t\t}\n\t\t\t\t// IE doesn't like these content types\n\t\t\t\tif(!$tw.browser.isIE) {\n\t\t\t\t\tdataTransfer.setData(\"text/vnd.tiddler\",jsonData);\n\t\t\t\t\tdataTransfer.setData(\"text/plain\",titleString);\n\t\t\t\t\tdataTransfer.setData(\"text/x-moz-url\",\"data:text/vnd.tiddler,\" + encodeURIComponent(jsonData));\n\t\t\t\t}\n\t\t\t\tdataTransfer.setData(\"URL\",\"data:text/vnd.tiddler,\" + encodeURIComponent(jsonData));\n\t\t\t\tdataTransfer.setData(\"Text\",titleString);\n\t\t\t\tevent.stopPropagation();\n\t\t\t}\n\t\t\treturn false;\n\t\t}},\n\t\t{name: \"dragend\", handlerFunction: function(event) {\n\t\t\tif(event.target === domNode) {\n\t\t\t\t// Collect the tiddlers being dragged\n\t\t\t\tvar dragTiddler = options.dragTiddlerFn && options.dragTiddlerFn(),\n\t\t\t\t\tdragFilter = options.dragFilterFn && options.dragFilterFn(),\n\t\t\t\t\ttitles = dragTiddler ? [dragTiddler] : [],\n\t\t\t    \t\tendActions = options.endActions;\n\t\t\t\tif(dragFilter) {\n\t\t\t\t\ttitles.push.apply(titles,options.widget.wiki.filterTiddlers(dragFilter,options.widget));\n\t\t\t\t}\n\t\t\t\tvar titleString = $tw.utils.stringifyList(titles);\n\t\t\t\t$tw.dragInProgress = null;\n\t\t\t\t// Invoke drag-end actions if given\n\t\t\t\tif(endActions !== undefined) {\n\t\t\t\t\toptions.widget.invokeActionString(endActions,options.widget,event,{actionTiddler: titleString});\n\t\t\t\t}\n\t\t\t\t// Remove the dragging class on the element being dragged\n\t\t\t\t$tw.utils.removeClass(event.target,\"tc-dragging\");\n\t\t\t\t// Delete the drag image element\n\t\t\t\tif(dragImage) {\n\t\t\t\t\tdragImage.parentNode.removeChild(dragImage);\n\t\t\t\t\tdragImage = null;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn false;\n\t\t}}\n\t]);\n};\n\nexports.importDataTransfer = function(dataTransfer,fallbackTitle,callback) {\n\t// Try each provided data type in turn\n\tif($tw.log.IMPORT) {\n\t\tconsole.log(\"Available data types:\");\n\t\tfor(var type=0; type<dataTransfer.types.length; type++) {\n\t\t\tconsole.log(\"type\",dataTransfer.types[type],dataTransfer.getData(dataTransfer.types[type]))\n\t\t}\n\t}\n\tfor(var t=0; t<importDataTypes.length; t++) {\n\t\tif(!$tw.browser.isIE || importDataTypes[t].IECompatible) {\n\t\t\t// Get the data\n\t\t\tvar dataType = importDataTypes[t];\n\t\t\t\tvar data = dataTransfer.getData(dataType.type);\n\t\t\t// Import the tiddlers in the data\n\t\t\tif(data !== \"\" && data !== null) {\n\t\t\t\tif($tw.log.IMPORT) {\n\t\t\t\t\tconsole.log(\"Importing data type '\" + dataType.type + \"', data: '\" + data + \"'\")\n\t\t\t\t}\n\t\t\t\tvar tiddlerFields = dataType.toTiddlerFieldsArray(data,fallbackTitle);\n\t\t\t\tcallback(tiddlerFields);\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\t}\n};\n\nvar importDataTypes = [\n\t{type: \"text/vnd.tiddler\", IECompatible: false, toTiddlerFieldsArray: function(data,fallbackTitle) {\n\t\treturn parseJSONTiddlers(data,fallbackTitle);\n\t}},\n\t{type: \"URL\", IECompatible: true, toTiddlerFieldsArray: function(data,fallbackTitle) {\n\t\t// Check for tiddler data URI\n\t\tvar match = decodeURIComponent(data).match(/^data\\:text\\/vnd\\.tiddler,(.*)/i);\n\t\tif(match) {\n\t\t\treturn parseJSONTiddlers(match[1],fallbackTitle);\n\t\t} else {\n\t\t\treturn [{title: fallbackTitle, text: data}]; // As URL string\n\t\t}\n\t}},\n\t{type: \"text/x-moz-url\", IECompatible: false, toTiddlerFieldsArray: function(data,fallbackTitle) {\n\t\t// Check for tiddler data URI\n\t\tvar match = decodeURIComponent(data).match(/^data\\:text\\/vnd\\.tiddler,(.*)/i);\n\t\tif(match) {\n\t\t\treturn parseJSONTiddlers(match[1],fallbackTitle);\n\t\t} else {\n\t\t\treturn [{title: fallbackTitle, text: data}]; // As URL string\n\t\t}\n\t}},\n\t{type: \"text/html\", IECompatible: false, toTiddlerFieldsArray: function(data,fallbackTitle) {\n\t\treturn [{title: fallbackTitle, text: data}];\n\t}},\n\t{type: \"text/plain\", IECompatible: false, toTiddlerFieldsArray: function(data,fallbackTitle) {\n\t\treturn [{title: fallbackTitle, text: data}];\n\t}},\n\t{type: \"Text\", IECompatible: true, toTiddlerFieldsArray: function(data,fallbackTitle) {\n\t\treturn [{title: fallbackTitle, text: data}];\n\t}},\n\t{type: \"text/uri-list\", IECompatible: false, toTiddlerFieldsArray: function(data,fallbackTitle) {\n\t\treturn [{title: fallbackTitle, text: data}];\n\t}}\n];\n\nfunction parseJSONTiddlers(json,fallbackTitle) {\n\tvar data = JSON.parse(json);\n\tif(!$tw.utils.isArray(data)) {\n\t\tdata = [data];\n\t}\n\tdata.forEach(function(fields) {\n\t\tfields.title = fields.title || fallbackTitle;\n\t});\n\treturn data;\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "utils"
        },
        "$:/core/modules/utils/dom/http.js": {
            "title": "$:/core/modules/utils/dom/http.js",
            "text": "/*\\\ntitle: $:/core/modules/utils/dom/http.js\ntype: application/javascript\nmodule-type: utils\n\nBrowser HTTP support\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nA quick and dirty HTTP function; to be refactored later. Options are:\n\turl: URL to retrieve\n\theaders: hashmap of headers to send\n\ttype: GET, PUT, POST etc\n\tcallback: function invoked with (err,data,xhr)\n\treturnProp: string name of the property to return as first argument of callback\n*/\nexports.httpRequest = function(options) {\n\tvar type = options.type || \"GET\",\n\t\turl = options.url,\n\t\theaders = options.headers || {accept: \"application/json\"},\n\t\thasHeader = function(targetHeader) {\n\t\t\ttargetHeader = targetHeader.toLowerCase();\n\t\t\tvar result = false;\n\t\t\t$tw.utils.each(headers,function(header,headerTitle,object) {\n\t\t\t\tif(headerTitle.toLowerCase() === targetHeader) {\n\t\t\t\t\tresult = true;\n\t\t\t\t}\n\t\t\t});\n\t\t\treturn result;\n\t\t},\n\t\treturnProp = options.returnProp || \"responseText\",\n\t\trequest = new XMLHttpRequest(),\n\t\tdata = \"\",\n\t\tf,results;\n\t// Massage the data hashmap into a string\n\tif(options.data) {\n\t\tif(typeof options.data === \"string\") { // Already a string\n\t\t\tdata = options.data;\n\t\t} else { // A hashmap of strings\n\t\t\tresults = [];\n\t\t\t$tw.utils.each(options.data,function(dataItem,dataItemTitle) {\n\t\t\t\tresults.push(dataItemTitle + \"=\" + encodeURIComponent(dataItem));\n\t\t\t});\n\t\t\tif(type === \"GET\" || type === \"HEAD\") {\n\t\t\t\turl += \"?\" + results.join(\"&\");\n\t\t\t} else {\n\t\t\t\tdata = results.join(\"&\");\n\t\t\t}\n\t\t}\n\t}\n\t// Set up the state change handler\n\trequest.onreadystatechange = function() {\n\t\tif(this.readyState === 4) {\n\t\t\tif(this.status === 200 || this.status === 201 || this.status === 204) {\n\t\t\t\t// Success!\n\t\t\t\toptions.callback(null,this[returnProp],this);\n\t\t\t\treturn;\n\t\t\t}\n\t\t// Something went wrong\n\t\toptions.callback($tw.language.getString(\"Error/XMLHttpRequest\") + \": \" + this.status,null,this);\n\t\t}\n\t};\n\t// Make the request\n\trequest.open(type,url,true);\n\tif(headers) {\n\t\t$tw.utils.each(headers,function(header,headerTitle,object) {\n\t\t\trequest.setRequestHeader(headerTitle,header);\n\t\t});\n\t}\n\tif(data && !hasHeader(\"Content-Type\")) {\n\t\trequest.setRequestHeader(\"Content-Type\",\"application/x-www-form-urlencoded; charset=UTF-8\");\n\t}\n\tif(!hasHeader(\"X-Requested-With\")) {\n\t\trequest.setRequestHeader(\"X-Requested-With\",\"TiddlyWiki\");\n\t}\n\ttry {\n\t\trequest.send(data);\n\t} catch(e) {\n\t\toptions.callback(e,null,this);\n\t}\n\treturn request;\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "utils"
        },
        "$:/core/modules/utils/dom/keyboard.js": {
            "title": "$:/core/modules/utils/dom/keyboard.js",
            "text": "/*\\\ntitle: $:/core/modules/utils/dom/keyboard.js\ntype: application/javascript\nmodule-type: utils\n\nKeyboard utilities; now deprecated. Instead, use $tw.keyboardManager\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n[\"parseKeyDescriptor\",\"checkKeyDescriptor\"].forEach(function(method) {\n\texports[method] = function() {\n\t\tif($tw.keyboardManager) {\n\t\t\treturn $tw.keyboardManager[method].apply($tw.keyboardManager,Array.prototype.slice.call(arguments,0));\n\t\t} else {\n\t\t\treturn null\n\t\t}\n\t};\n});\n\n})();\n",
            "type": "application/javascript",
            "module-type": "utils"
        },
        "$:/core/modules/utils/dom/modal.js": {
            "title": "$:/core/modules/utils/dom/modal.js",
            "text": "/*\\\ntitle: $:/core/modules/utils/dom/modal.js\ntype: application/javascript\nmodule-type: utils\n\nModal message mechanism\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar widget = require(\"$:/core/modules/widgets/widget.js\");\nvar navigator = require(\"$:/core/modules/widgets/navigator.js\");\n\nvar Modal = function(wiki) {\n\tthis.wiki = wiki;\n\tthis.modalCount = 0;\n};\n\n/*\nDisplay a modal dialogue\n\ttitle: Title of tiddler to display\n\toptions: see below\nOptions include:\n\tdownloadLink: Text of a big download link to include\n*/\nModal.prototype.display = function(title,options) {\n\toptions = options || {};\n\tthis.srcDocument = options.variables && (options.variables.rootwindow === \"true\" ||\n\t\t\t\toptions.variables.rootwindow === \"yes\") ? document :\n\t\t\t\t(options.event.event && options.event.event.target ? options.event.event.target.ownerDocument : document);\n\tthis.srcWindow = this.srcDocument.defaultView;\n\tvar self = this,\n\t\trefreshHandler,\n\t\tduration = $tw.utils.getAnimationDuration(),\n\t\ttiddler = this.wiki.getTiddler(title);\n\t// Don't do anything if the tiddler doesn't exist\n\tif(!tiddler) {\n\t\treturn;\n\t}\n\t// Create the variables\n\tvar variables = $tw.utils.extend({\n\t\t\tcurrentTiddler: title,\n\t\t\t\"tv-story-list\": (options.event && options.event.widget ? options.event.widget.getVariable(\"tv-story-list\") : \"\"),\n\t\t\t\"tv-history-list\": (options.event && options.event.widget ? options.event.widget.getVariable(\"tv-history-list\") : \"\")\n\t\t},options.variables);\n\n\t// Create the wrapper divs\n\tvar wrapper = this.srcDocument.createElement(\"div\"),\n\t\tmodalBackdrop = this.srcDocument.createElement(\"div\"),\n\t\tmodalWrapper = this.srcDocument.createElement(\"div\"),\n\t\tmodalHeader = this.srcDocument.createElement(\"div\"),\n\t\theaderTitle = this.srcDocument.createElement(\"h3\"),\n\t\tmodalBody = this.srcDocument.createElement(\"div\"),\n\t\tmodalLink = this.srcDocument.createElement(\"a\"),\n\t\tmodalFooter = this.srcDocument.createElement(\"div\"),\n\t\tmodalFooterHelp = this.srcDocument.createElement(\"span\"),\n\t\tmodalFooterButtons = this.srcDocument.createElement(\"span\");\n\t// Up the modal count and adjust the body class\n\tthis.modalCount++;\n\tthis.adjustPageClass();\n\t// Add classes\n\t$tw.utils.addClass(wrapper,\"tc-modal-wrapper\");\n\tif(tiddler.fields && tiddler.fields.class) {\n\t\t$tw.utils.addClass(wrapper,tiddler.fields.class);\n\t}\n\t$tw.utils.addClass(modalBackdrop,\"tc-modal-backdrop\");\n\t$tw.utils.addClass(modalWrapper,\"tc-modal\");\n\t$tw.utils.addClass(modalHeader,\"tc-modal-header\");\n\t$tw.utils.addClass(modalBody,\"tc-modal-body\");\n\t$tw.utils.addClass(modalFooter,\"tc-modal-footer\");\n\t// Join them together\n\twrapper.appendChild(modalBackdrop);\n\twrapper.appendChild(modalWrapper);\n\tmodalHeader.appendChild(headerTitle);\n\tmodalWrapper.appendChild(modalHeader);\n\tmodalWrapper.appendChild(modalBody);\n\tmodalFooter.appendChild(modalFooterHelp);\n\tmodalFooter.appendChild(modalFooterButtons);\n\tmodalWrapper.appendChild(modalFooter);\n\tvar navigatorTree = {\n\t\t\"type\": \"navigator\",\n\t\t\"attributes\": {\n\t\t\t\"story\": {\n\t\t\t\t\"name\": \"story\",\n\t\t\t\t\"type\": \"string\",\n\t\t\t\t\"value\": variables[\"tv-story-list\"]\n\t\t\t},\n\t\t\t\"history\": {\n\t\t\t\t\"name\": \"history\",\n\t\t\t\t\"type\": \"string\",\n\t\t\t\t\"value\": variables[\"tv-history-list\"]\n\t\t\t}\n\t\t},\n\t\t\"tag\": \"$navigator\",\n\t\t\"isBlock\": true,\n\t\t\"children\": []\n\t};\n\tvar navigatorWidgetNode = new navigator.navigator(navigatorTree, {\n\t\twiki: this.wiki,\n\t\tdocument : this.srcDocument,\n\t\tparentWidget: $tw.rootWidget\n\t});\n\tnavigatorWidgetNode.render(modalBody,null);\n\t\n\t// Render the title of the message\n\tvar headerWidgetNode = this.wiki.makeTranscludeWidget(title,{\n\t\tfield: \"subtitle\",\n\t\tmode: \"inline\",\n\t\tchildren: [{\n\t\t\ttype: \"text\",\n\t\t\tattributes: {\n\t\t\t\ttext: {\n\t\t\t\t\ttype: \"string\",\n\t\t\t\t\tvalue: title\n\t\t}}}],\n\t\tparentWidget: navigatorWidgetNode,\n\t\tdocument: this.srcDocument,\n\t\tvariables: variables,\n\t\timportPageMacros: true\n\t});\n\theaderWidgetNode.render(headerTitle,null);\n\t// Render the body of the message\n\tvar bodyWidgetNode = this.wiki.makeTranscludeWidget(title,{\n\t\tparentWidget: navigatorWidgetNode,\n\t\tdocument: this.srcDocument,\n\t\tvariables: variables,\n\t\timportPageMacros: true\n\t});\n\n\tbodyWidgetNode.render(modalBody,null);\n\t// Setup the link if present\n\tif(options.downloadLink) {\n\t\tmodalLink.href = options.downloadLink;\n\t\tmodalLink.appendChild(this.srcDocument.createTextNode(\"Right-click to save changes\"));\n\t\tmodalBody.appendChild(modalLink);\n\t}\n\t// Render the footer of the message\n\tif(tiddler.fields && tiddler.fields.help) {\n\t\tvar link = this.srcDocument.createElement(\"a\");\n\t\tlink.setAttribute(\"href\",tiddler.fields.help);\n\t\tlink.setAttribute(\"target\",\"_blank\");\n\t\tlink.setAttribute(\"rel\",\"noopener noreferrer\");\n\t\tlink.appendChild(this.srcDocument.createTextNode(\"Help\"));\n\t\tmodalFooterHelp.appendChild(link);\n\t\tmodalFooterHelp.style.float = \"left\";\n\t}\n\tvar footerWidgetNode = this.wiki.makeTranscludeWidget(title,{\n\t\tfield: \"footer\",\n\t\tmode: \"inline\",\n\t\tchildren: [{\n\t\t\ttype: \"button\",\n\t\t\tattributes: {\n\t\t\t\tmessage: {\n\t\t\t\t\ttype: \"string\",\n\t\t\t\t\tvalue: \"tm-close-tiddler\"\n\t\t\t\t}\n\t\t\t},\n\t\t\tchildren: [{\n\t\t\t\ttype: \"text\",\n\t\t\t\tattributes: {\n\t\t\t\t\ttext: {\n\t\t\t\t\t\ttype: \"string\",\n\t\t\t\t\t\tvalue: $tw.language.getString(\"Buttons/Close/Caption\")\n\t\t\t}}}\n\t\t]}],\n\t\tparentWidget: navigatorWidgetNode,\n\t\tdocument: this.srcDocument,\n\t\tvariables: variables,\n\t\timportPageMacros: true\n\t});\n\tfooterWidgetNode.render(modalFooterButtons,null);\n\t// Set up the refresh handler\n\trefreshHandler = function(changes) {\n\t\theaderWidgetNode.refresh(changes,modalHeader,null);\n\t\tbodyWidgetNode.refresh(changes,modalBody,null);\n\t\tfooterWidgetNode.refresh(changes,modalFooterButtons,null);\n\t};\n\tthis.wiki.addEventListener(\"change\",refreshHandler);\n\t// Add the close event handler\n\tvar closeHandler = function(event) {\n\t\t// Remove our refresh handler\n\t\tself.wiki.removeEventListener(\"change\",refreshHandler);\n\t\t// Decrease the modal count and adjust the body class\n\t\tself.modalCount--;\n\t\tself.adjustPageClass();\n\t\t// Force layout and animate the modal message away\n\t\t$tw.utils.forceLayout(modalBackdrop);\n\t\t$tw.utils.forceLayout(modalWrapper);\n\t\t$tw.utils.setStyle(modalBackdrop,[\n\t\t\t{opacity: \"0\"}\n\t\t]);\n\t\t$tw.utils.setStyle(modalWrapper,[\n\t\t\t{transform: \"translateY(\" + self.srcWindow.innerHeight + \"px)\"}\n\t\t]);\n\t\t// Set up an event for the transition end\n\t\tself.srcWindow.setTimeout(function() {\n\t\t\tif(wrapper.parentNode) {\n\t\t\t\t// Remove the modal message from the DOM\n\t\t\t\tself.srcDocument.body.removeChild(wrapper);\n\t\t\t}\n\t\t},duration);\n\t\t// Don't let anyone else handle the tm-close-tiddler message\n\t\treturn false;\n\t};\n\theaderWidgetNode.addEventListener(\"tm-close-tiddler\",closeHandler,false);\n\tbodyWidgetNode.addEventListener(\"tm-close-tiddler\",closeHandler,false);\n\tfooterWidgetNode.addEventListener(\"tm-close-tiddler\",closeHandler,false);\n\t// Set the initial styles for the message\n\t$tw.utils.setStyle(modalBackdrop,[\n\t\t{opacity: \"0\"}\n\t]);\n\t$tw.utils.setStyle(modalWrapper,[\n\t\t{transformOrigin: \"0% 0%\"},\n\t\t{transform: \"translateY(\" + (-this.srcWindow.innerHeight) + \"px)\"}\n\t]);\n\t// Put the message into the document\n\tthis.srcDocument.body.appendChild(wrapper);\n\t// Set up animation for the styles\n\t$tw.utils.setStyle(modalBackdrop,[\n\t\t{transition: \"opacity \" + duration + \"ms ease-out\"}\n\t]);\n\t$tw.utils.setStyle(modalWrapper,[\n\t\t{transition: $tw.utils.roundTripPropertyName(\"transform\") + \" \" + duration + \"ms ease-in-out\"}\n\t]);\n\t// Force layout\n\t$tw.utils.forceLayout(modalBackdrop);\n\t$tw.utils.forceLayout(modalWrapper);\n\t// Set final animated styles\n\t$tw.utils.setStyle(modalBackdrop,[\n\t\t{opacity: \"0.7\"}\n\t]);\n\t$tw.utils.setStyle(modalWrapper,[\n\t\t{transform: \"translateY(0px)\"}\n\t]);\n};\n\nModal.prototype.adjustPageClass = function() {\n\tvar windowContainer = $tw.pageContainer ? ($tw.pageContainer === this.srcDocument.body.firstChild ? $tw.pageContainer : this.srcDocument.body.firstChild) : null;\n\tif(windowContainer) {\n\t\t$tw.utils.toggleClass(windowContainer,\"tc-modal-displayed\",this.modalCount > 0);\n\t}\n};\n\nexports.Modal = Modal;\n\n})();\n",
            "type": "application/javascript",
            "module-type": "utils"
        },
        "$:/core/modules/utils/dom/notifier.js": {
            "title": "$:/core/modules/utils/dom/notifier.js",
            "text": "/*\\\ntitle: $:/core/modules/utils/dom/notifier.js\ntype: application/javascript\nmodule-type: utils\n\nNotifier mechanism\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar widget = require(\"$:/core/modules/widgets/widget.js\");\n\nvar Notifier = function(wiki) {\n\tthis.wiki = wiki;\n};\n\n/*\nDisplay a notification\n\ttitle: Title of tiddler containing the notification text\n\toptions: see below\nOptions include:\n*/\nNotifier.prototype.display = function(title,options) {\n\toptions = options || {};\n\t// Create the wrapper divs\n\tvar self = this,\n\t\tnotification = document.createElement(\"div\"),\n\t\ttiddler = this.wiki.getTiddler(title),\n\t\tduration = $tw.utils.getAnimationDuration(),\n\t\trefreshHandler;\n\t// Don't do anything if the tiddler doesn't exist\n\tif(!tiddler) {\n\t\treturn;\n\t}\n\t// Add classes\n\t$tw.utils.addClass(notification,\"tc-notification\");\n\t// Create the variables\n\tvar variables = $tw.utils.extend({currentTiddler: title},options.variables);\n\t// Render the body of the notification\n\tvar widgetNode = this.wiki.makeTranscludeWidget(title,{\n\t\tparentWidget: $tw.rootWidget,\n\t\tdocument: document,\n\t\tvariables: variables,\n\t\timportPageMacros: true});\n\twidgetNode.render(notification,null);\n\trefreshHandler = function(changes) {\n\t\twidgetNode.refresh(changes,notification,null);\n\t};\n\tthis.wiki.addEventListener(\"change\",refreshHandler);\n\t// Set the initial styles for the notification\n\t$tw.utils.setStyle(notification,[\n\t\t{opacity: \"0\"},\n\t\t{transformOrigin: \"0% 0%\"},\n\t\t{transform: \"translateY(\" + (-window.innerHeight) + \"px)\"},\n\t\t{transition: \"opacity \" + duration + \"ms ease-out, \" + $tw.utils.roundTripPropertyName(\"transform\") + \" \" + duration + \"ms ease-in-out\"}\n\t]);\n\t// Add the notification to the DOM\n\tdocument.body.appendChild(notification);\n\t// Force layout\n\t$tw.utils.forceLayout(notification);\n\t// Set final animated styles\n\t$tw.utils.setStyle(notification,[\n\t\t{opacity: \"1.0\"},\n\t\t{transform: \"translateY(0px)\"}\n\t]);\n\t// Set a timer to remove the notification\n\twindow.setTimeout(function() {\n\t\t// Remove our change event handler\n\t\tself.wiki.removeEventListener(\"change\",refreshHandler);\n\t\t// Force layout and animate the notification away\n\t\t$tw.utils.forceLayout(notification);\n\t\t$tw.utils.setStyle(notification,[\n\t\t\t{opacity: \"0.0\"},\n\t\t\t{transform: \"translateX(\" + (notification.offsetWidth) + \"px)\"}\n\t\t]);\n\t\t// Remove the modal message from the DOM once the transition ends\n\t\tsetTimeout(function() {\n\t\t\tif(notification.parentNode) {\n\t\t\t\tdocument.body.removeChild(notification);\n\t\t\t}\n\t\t},duration);\n\t},$tw.config.preferences.notificationDuration);\n};\n\nexports.Notifier = Notifier;\n\n})();\n",
            "type": "application/javascript",
            "module-type": "utils"
        },
        "$:/core/modules/utils/dom/popup.js": {
            "title": "$:/core/modules/utils/dom/popup.js",
            "text": "/*\\\ntitle: $:/core/modules/utils/dom/popup.js\ntype: application/javascript\nmodule-type: utils\n\nModule that creates a $tw.utils.Popup object prototype that manages popups in the browser\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nCreates a Popup object with these options:\n\trootElement: the DOM element to which the popup zapper should be attached\n*/\nvar Popup = function(options) {\n\toptions = options || {};\n\tthis.rootElement = options.rootElement || document.documentElement;\n\tthis.popups = []; // Array of {title:,wiki:,domNode:} objects\n};\n\n/*\nTrigger a popup open or closed. Parameters are in a hashmap:\n\ttitle: title of the tiddler where the popup details are stored\n\tdomNode: dom node to which the popup will be positioned (one of domNode or domNodeRect is required)\n\tdomNodeRect: rectangle to which the popup will be positioned\n\twiki: wiki\n\tforce: if specified, forces the popup state to true or false (instead of toggling it)\n\tfloating: if true, skips registering the popup, meaning that it will need manually clearing\n*/\nPopup.prototype.triggerPopup = function(options) {\n\t// Check if this popup is already active\n\tvar index = this.findPopup(options.title);\n\t// Compute the new state\n\tvar state = index === -1;\n\tif(options.force !== undefined) {\n\t\tstate = options.force;\n\t}\n\t// Show or cancel the popup according to the new state\n\tif(state) {\n\t\tthis.show(options);\n\t} else {\n\t\tthis.cancel(index);\n\t}\n};\n\nPopup.prototype.findPopup = function(title) {\n\tvar index = -1;\n\tfor(var t=0; t<this.popups.length; t++) {\n\t\tif(this.popups[t].title === title) {\n\t\t\tindex = t;\n\t\t}\n\t}\n\treturn index;\n};\n\nPopup.prototype.handleEvent = function(event) {\n\tif(event.type === \"click\") {\n\t\t// Find out what was clicked on\n\t\tvar info = this.popupInfo(event.target),\n\t\t\tcancelLevel = info.popupLevel - 1;\n\t\t// Don't remove the level that was clicked on if we clicked on a handle\n\t\tif(info.isHandle) {\n\t\t\tcancelLevel++;\n\t\t}\n\t\t// Cancel\n\t\tthis.cancel(cancelLevel);\n\t}\n};\n\n/*\nFind the popup level containing a DOM node. Returns:\npopupLevel: count of the number of nested popups containing the specified element\nisHandle: true if the specified element is within a popup handle\n*/\nPopup.prototype.popupInfo = function(domNode) {\n\tvar isHandle = false,\n\t\tpopupCount = 0,\n\t\tnode = domNode;\n\t// First check ancestors to see if we're within a popup handle\n\twhile(node) {\n\t\tif($tw.utils.hasClass(node,\"tc-popup-handle\")) {\n\t\t\tisHandle = true;\n\t\t\tpopupCount++;\n\t\t}\n\t\tif($tw.utils.hasClass(node,\"tc-popup-keep\")) {\n\t\t\tisHandle = true;\n\t\t}\n\t\tnode = node.parentNode;\n\t}\n\t// Then count the number of ancestor popups\n\tnode = domNode;\n\twhile(node) {\n\t\tif($tw.utils.hasClass(node,\"tc-popup\")) {\n\t\t\tpopupCount++;\n\t\t}\n\t\tnode = node.parentNode;\n\t}\n\tvar info = {\n\t\tpopupLevel: popupCount,\n\t\tisHandle: isHandle\n\t};\n\treturn info;\n};\n\n/*\nDisplay a popup by adding it to the stack\n*/\nPopup.prototype.show = function(options) {\n\t// Find out what was clicked on\n\tvar info = this.popupInfo(options.domNode);\n\t// Cancel any higher level popups\n\tthis.cancel(info.popupLevel);\n\n\t// Store the popup details if not already there\n\tif(!options.floating && this.findPopup(options.title) === -1) {\n\t\tthis.popups.push({\n\t\t\ttitle: options.title,\n\t\t\twiki: options.wiki,\n\t\t\tdomNode: options.domNode,\n\t\t\tnoStateReference: options.noStateReference\n\t\t});\n\t}\n\t// Set the state tiddler\n\tvar rect;\n\tif(options.domNodeRect) {\n\t\trect = options.domNodeRect;\n\t} else {\n\t\trect = {\n\t\t\tleft: options.domNode.offsetLeft,\n\t\t\ttop: options.domNode.offsetTop,\n\t\t\twidth: options.domNode.offsetWidth,\n\t\t\theight: options.domNode.offsetHeight\n\t\t};\n\t}\n\tvar popupRect = \"(\" + rect.left + \",\" + rect.top + \",\" + \n\t\t\t\trect.width + \",\" + rect.height + \")\";\n\tif(options.noStateReference) {\n\t\toptions.wiki.setText(options.title,\"text\",undefined,popupRect);\n\t} else {\n\t\toptions.wiki.setTextReference(options.title,popupRect);\n\t}\n\t// Add the click handler if we have any popups\n\tif(this.popups.length > 0) {\n\t\tthis.rootElement.addEventListener(\"click\",this,true);\t\t\n\t}\n};\n\n/*\nCancel all popups at or above a specified level or DOM node\nlevel: popup level to cancel (0 cancels all popups)\n*/\nPopup.prototype.cancel = function(level) {\n\tvar numPopups = this.popups.length;\n\tlevel = Math.max(0,Math.min(level,numPopups));\n\tfor(var t=level; t<numPopups; t++) {\n\t\tvar popup = this.popups.pop();\n\t\tif(popup.title) {\n\t\t\tif(popup.noStateReference) {\n\t\t\t\tpopup.wiki.deleteTiddler(popup.title);\n\t\t\t} else {\n\t\t\t\tpopup.wiki.deleteTiddler($tw.utils.parseTextReference(popup.title).title);\n        \t\t}\n\t\t}\n\t}\n\tif(this.popups.length === 0) {\n\t\tthis.rootElement.removeEventListener(\"click\",this,false);\n\t}\n};\n\n/*\nReturns true if the specified title and text identifies an active popup\n*/\nPopup.prototype.readPopupState = function(text) {\n\tvar popupLocationRegExp = /^\\((-?[0-9\\.E]+),(-?[0-9\\.E]+),(-?[0-9\\.E]+),(-?[0-9\\.E]+)\\)$/;\n\treturn popupLocationRegExp.test(text);\n};\n\nexports.Popup = Popup;\n\n})();\n",
            "type": "application/javascript",
            "module-type": "utils"
        },
        "$:/core/modules/utils/dom/scroller.js": {
            "title": "$:/core/modules/utils/dom/scroller.js",
            "text": "/*\\\ntitle: $:/core/modules/utils/dom/scroller.js\ntype: application/javascript\nmodule-type: utils\n\nModule that creates a $tw.utils.Scroller object prototype that manages scrolling in the browser\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nEvent handler for when the `tm-scroll` event hits the document body\n*/\nvar PageScroller = function() {\n\tthis.idRequestFrame = null;\n\tthis.requestAnimationFrame = window.requestAnimationFrame ||\n\t\twindow.webkitRequestAnimationFrame ||\n\t\twindow.mozRequestAnimationFrame ||\n\t\tfunction(callback) {\n\t\t\treturn window.setTimeout(callback, 1000/60);\n\t\t};\n\tthis.cancelAnimationFrame = window.cancelAnimationFrame ||\n\t\twindow.webkitCancelAnimationFrame ||\n\t\twindow.webkitCancelRequestAnimationFrame ||\n\t\twindow.mozCancelAnimationFrame ||\n\t\twindow.mozCancelRequestAnimationFrame ||\n\t\tfunction(id) {\n\t\t\twindow.clearTimeout(id);\n\t\t};\n};\n\nPageScroller.prototype.isScrolling = function() {\n\treturn this.idRequestFrame !== null;\n}\n\nPageScroller.prototype.cancelScroll = function(srcWindow) {\n\tif(this.idRequestFrame) {\n\t\tthis.cancelAnimationFrame.call(srcWindow,this.idRequestFrame);\n\t\tthis.idRequestFrame = null;\n\t}\n};\n\n/*\nHandle an event\n*/\nPageScroller.prototype.handleEvent = function(event) {\n\tif(event.type === \"tm-scroll\") {\n\t\tif(event.paramObject && event.paramObject.selector) {\n\t\t\tthis.scrollSelectorIntoView(null,event.paramObject.selector);\n\t\t} else {\n\t\t\tthis.scrollIntoView(event.target);\t\t\t\n\t\t}\n\t\treturn false; // Event was handled\n\t}\n\treturn true;\n};\n\n/*\nHandle a scroll event hitting the page document\n*/\nPageScroller.prototype.scrollIntoView = function(element,callback) {\n\tvar self = this,\n\t\tduration = $tw.utils.getAnimationDuration(),\n\t    srcWindow = element ? element.ownerDocument.defaultView : window;\n\t// Now get ready to scroll the body\n\tthis.cancelScroll(srcWindow);\n\tthis.startTime = Date.now();\n\t// Get the height of any position:fixed toolbars\n\tvar toolbar = srcWindow.document.querySelector(\".tc-adjust-top-of-scroll\"),\n\t\toffset = 0;\n\tif(toolbar) {\n\t\toffset = toolbar.offsetHeight;\n\t}\n\t// Get the client bounds of the element and adjust by the scroll position\n\tvar getBounds = function() {\n\t\t\tvar clientBounds = typeof callback === 'function' ? callback() : element.getBoundingClientRect(),\n\t\t\t\tscrollPosition = $tw.utils.getScrollPosition(srcWindow);\n\t\t\treturn {\n\t\t\t\tleft: clientBounds.left + scrollPosition.x,\n\t\t\t\ttop: clientBounds.top + scrollPosition.y - offset,\n\t\t\t\twidth: clientBounds.width,\n\t\t\t\theight: clientBounds.height\n\t\t\t};\n\t\t},\n\t\t// We'll consider the horizontal and vertical scroll directions separately via this function\n\t\t// targetPos/targetSize - position and size of the target element\n\t\t// currentPos/currentSize - position and size of the current scroll viewport\n\t\t// returns: new position of the scroll viewport\n\t\tgetEndPos = function(targetPos,targetSize,currentPos,currentSize) {\n\t\t\tvar newPos = targetPos;\n\t\t\t// If we are scrolling within 50 pixels of the top/left then snap to zero\n\t\t\tif(newPos < 50) {\n\t\t\t\tnewPos = 0;\n\t\t\t}\n\t\t\treturn newPos;\n\t\t},\n\t\tdrawFrame = function drawFrame() {\n\t\t\tvar t;\n\t\t\tif(duration <= 0) {\n\t\t\t\tt = 1;\n\t\t\t} else {\n\t\t\t\tt = ((Date.now()) - self.startTime) / duration;\t\n\t\t\t}\n\t\t\tif(t >= 1) {\n\t\t\t\tself.cancelScroll(srcWindow);\n\t\t\t\tt = 1;\n\t\t\t}\n\t\t\tt = $tw.utils.slowInSlowOut(t);\n\t\t\tvar scrollPosition = $tw.utils.getScrollPosition(srcWindow),\n\t\t\t\tbounds = getBounds(),\n\t\t\t\tendX = getEndPos(bounds.left,bounds.width,scrollPosition.x,srcWindow.innerWidth),\n\t\t\t\tendY = getEndPos(bounds.top,bounds.height,scrollPosition.y,srcWindow.innerHeight);\n\t\t\tsrcWindow.scrollTo(scrollPosition.x + (endX - scrollPosition.x) * t,scrollPosition.y + (endY - scrollPosition.y) * t);\n\t\t\tif(t < 1) {\n\t\t\t\tself.idRequestFrame = self.requestAnimationFrame.call(srcWindow,drawFrame);\n\t\t\t}\n\t\t};\n\tdrawFrame();\n};\n\nPageScroller.prototype.scrollSelectorIntoView = function(baseElement,selector,callback) {\n\tbaseElement = baseElement || document.body;\n\tvar element = baseElement.querySelector(selector);\n\tif(element) {\n\t\tthis.scrollIntoView(element,callback);\t\t\n\t}\n};\n\nexports.PageScroller = PageScroller;\n\n})();\n",
            "type": "application/javascript",
            "module-type": "utils"
        },
        "$:/core/modules/utils/edition-info.js": {
            "title": "$:/core/modules/utils/edition-info.js",
            "text": "/*\\\ntitle: $:/core/modules/utils/edition-info.js\ntype: application/javascript\nmodule-type: utils-node\n\nInformation about the available editions\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar fs = require(\"fs\"),\n\tpath = require(\"path\");\n\nvar editionInfo;\n\nexports.getEditionInfo = function() {\n\tif(!editionInfo) {\n\t\t// Enumerate the edition paths\n\t\tvar editionPaths = $tw.getLibraryItemSearchPaths($tw.config.editionsPath,$tw.config.editionsEnvVar);\n\t\teditionInfo = {};\n\t\tfor(var editionIndex=0; editionIndex<editionPaths.length; editionIndex++) {\n\t\t\tvar editionPath = editionPaths[editionIndex];\n\t\t\t// Enumerate the folders\n\t\t\tvar entries = fs.readdirSync(editionPath);\n\t\t\tfor(var entryIndex=0; entryIndex<entries.length; entryIndex++) {\n\t\t\t\tvar entry = entries[entryIndex];\n\t\t\t\t// Check if directories have a valid tiddlywiki.info\n\t\t\t\tif(!editionInfo[entry] && $tw.utils.isDirectory(path.resolve(editionPath,entry))) {\n\t\t\t\t\tvar info;\n\t\t\t\t\ttry {\n\t\t\t\t\t\tinfo = JSON.parse(fs.readFileSync(path.resolve(editionPath,entry,\"tiddlywiki.info\"),\"utf8\"));\n\t\t\t\t\t} catch(ex) {\n\t\t\t\t\t}\n\t\t\t\t\tif(info) {\n\t\t\t\t\t\teditionInfo[entry] = info;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn editionInfo;\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "utils-node"
        },
        "$:/core/modules/utils/fakedom.js": {
            "title": "$:/core/modules/utils/fakedom.js",
            "text": "/*\\\ntitle: $:/core/modules/utils/fakedom.js\ntype: application/javascript\nmodule-type: global\n\nA barebones implementation of DOM interfaces needed by the rendering mechanism.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n// Sequence number used to enable us to track objects for testing\nvar sequenceNumber = null;\n\nvar bumpSequenceNumber = function(object) {\n\tif(sequenceNumber !== null) {\n\t\tobject.sequenceNumber = sequenceNumber++;\n\t}\n};\n\nvar TW_Node = function (){\n\tthrow TypeError(\"Illegal constructor\");\n};\n\nObject.defineProperty(TW_Node.prototype, 'ELEMENT_NODE', {\n\tget: function() {\n\t\treturn 1;\n\t}\n});\n\nObject.defineProperty(TW_Node.prototype, 'TEXT_NODE', {\n\tget: function() {\n\t\treturn 3;\n\t}\n});\n\nvar TW_TextNode = function(text) {\n\tbumpSequenceNumber(this);\n\tthis.textContent = text + \"\";\n};\n\nTW_TextNode.prototype = Object.create(TW_Node.prototype);\n\nObject.defineProperty(TW_TextNode.prototype, \"nodeType\", {\n\tget: function() {\n\t\treturn this.TEXT_NODE;\n\t}\n});\n\nObject.defineProperty(TW_TextNode.prototype, \"formattedTextContent\", {\n\tget: function() {\n\t\treturn this.textContent.replace(/(\\r?\\n)/g,\"\");\n\t}\n});\n\nvar TW_Element = function(tag,namespace) {\n\tbumpSequenceNumber(this);\n\tthis.isTiddlyWikiFakeDom = true;\n\tthis.tag = tag;\n\tthis.attributes = {};\n\tthis.isRaw = false;\n\tthis.children = [];\n\tthis._style = {};\n\tthis.namespaceURI = namespace || \"http://www.w3.org/1999/xhtml\";\n};\n\nTW_Element.prototype = Object.create(TW_Node.prototype);\n\nObject.defineProperty(TW_Element.prototype, \"style\", {\n\tget: function() {\n\t\treturn this._style;\n\t},\n\tset: function(str) {\n\t\tvar self = this;\n\t\tstr = str || \"\";\n\t\t$tw.utils.each(str.split(\";\"),function(declaration) {\n\t\t\tvar parts = declaration.split(\":\"),\n\t\t\t\tname = $tw.utils.trim(parts[0]),\n\t\t\t\tvalue = $tw.utils.trim(parts[1]);\n\t\t\tif(name && value) {\n\t\t\t\tself._style[$tw.utils.convertStyleNameToPropertyName(name)] = value;\n\t\t\t}\n\t\t});\n\t}\n});\n\nObject.defineProperty(TW_Element.prototype, \"nodeType\", {\n\tget: function() {\n\t\treturn this.ELEMENT_NODE;\n\t}\n});\n\nTW_Element.prototype.getAttribute = function(name) {\n\tif(this.isRaw) {\n\t\tthrow \"Cannot getAttribute on a raw TW_Element\";\n\t}\n\treturn this.attributes[name];\n};\n\nTW_Element.prototype.setAttribute = function(name,value) {\n\tif(this.isRaw) {\n\t\tthrow \"Cannot setAttribute on a raw TW_Element\";\n\t}\n\tthis.attributes[name] = value + \"\";\n};\n\nTW_Element.prototype.setAttributeNS = function(namespace,name,value) {\n\tthis.setAttribute(name,value);\n};\n\nTW_Element.prototype.removeAttribute = function(name) {\n\tif(this.isRaw) {\n\t\tthrow \"Cannot removeAttribute on a raw TW_Element\";\n\t}\n\tif($tw.utils.hop(this.attributes,name)) {\n\t\tdelete this.attributes[name];\n\t}\n};\n\nTW_Element.prototype.appendChild = function(node) {\n\tthis.children.push(node);\n\tnode.parentNode = this;\n};\n\nTW_Element.prototype.insertBefore = function(node,nextSibling) {\n\tif(nextSibling) {\n\t\tvar p = this.children.indexOf(nextSibling);\n\t\tif(p !== -1) {\n\t\t\tthis.children.splice(p,0,node);\n\t\t\tnode.parentNode = this;\n\t\t} else {\n\t\t\tthis.appendChild(node);\n\t\t}\n\t} else {\n\t\tthis.appendChild(node);\n\t}\n};\n\nTW_Element.prototype.removeChild = function(node) {\n\tvar p = this.children.indexOf(node);\n\tif(p !== -1) {\n\t\tthis.children.splice(p,1);\n\t}\n};\n\nTW_Element.prototype.hasChildNodes = function() {\n\treturn !!this.children.length;\n};\n\nObject.defineProperty(TW_Element.prototype, \"childNodes\", {\n\tget: function() {\n\t\treturn this.children;\n\t}\n});\n\nObject.defineProperty(TW_Element.prototype, \"firstChild\", {\n\tget: function() {\n\t\treturn this.children[0];\n\t}\n});\n\nTW_Element.prototype.addEventListener = function(type,listener,useCapture) {\n\t// Do nothing\n};\n\nObject.defineProperty(TW_Element.prototype, \"tagName\", {\n\tget: function() {\n\t\treturn this.tag || \"\";\n\t}\n});\n\nObject.defineProperty(TW_Element.prototype, \"className\", {\n\tget: function() {\n\t\treturn this.attributes[\"class\"] || \"\";\n\t},\n\tset: function(value) {\n\t\tthis.attributes[\"class\"] = value + \"\";\n\t}\n});\n\nObject.defineProperty(TW_Element.prototype, \"value\", {\n\tget: function() {\n\t\treturn this.attributes.value || \"\";\n\t},\n\tset: function(value) {\n\t\tthis.attributes.value = value + \"\";\n\t}\n});\n\nObject.defineProperty(TW_Element.prototype, \"outerHTML\", {\n\tget: function() {\n\t\tvar output = [],attr,a,v;\n\t\toutput.push(\"<\",this.tag);\n\t\tif(this.attributes) {\n\t\t\tattr = [];\n\t\t\tfor(a in this.attributes) {\n\t\t\t\tattr.push(a);\n\t\t\t}\n\t\t\tattr.sort();\n\t\t\tfor(a=0; a<attr.length; a++) {\n\t\t\t\tv = this.attributes[attr[a]];\n\t\t\t\tif(v !== undefined) {\n\t\t\t\t\toutput.push(\" \",attr[a],\"=\\\"\",$tw.utils.htmlEncode(v),\"\\\"\");\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tif(this._style) {\n\t\t\tvar style = [];\n\t\t\tfor(var s in this._style) {\n\t\t\t\tstyle.push($tw.utils.convertPropertyNameToStyleName(s) + \":\" + this._style[s] + \";\");\n\t\t\t}\n\t\t\tif(style.length > 0) {\n\t\t\t\toutput.push(\" style=\\\"\",style.join(\"\"),\"\\\"\");\n\t\t\t}\n\t\t}\n\t\toutput.push(\">\");\n\t\tif($tw.config.htmlVoidElements.indexOf(this.tag) === -1) {\n\t\t\toutput.push(this.innerHTML);\n\t\t\toutput.push(\"</\",this.tag,\">\");\n\t\t}\n\t\treturn output.join(\"\");\n\t}\n});\n\nObject.defineProperty(TW_Element.prototype, \"innerHTML\", {\n\tget: function() {\n\t\tif(this.isRaw) {\n\t\t\treturn this.rawHTML;\n\t\t} else {\n\t\t\tvar b = [];\n\t\t\t$tw.utils.each(this.children,function(node) {\n\t\t\t\tif(node instanceof TW_Element) {\n\t\t\t\t\tb.push(node.outerHTML);\n\t\t\t\t} else if(node instanceof TW_TextNode) {\n\t\t\t\t\tb.push($tw.utils.htmlEncode(node.textContent));\n\t\t\t\t}\n\t\t\t});\n\t\t\treturn b.join(\"\");\n\t\t}\n\t},\n\tset: function(value) {\n\t\tthis.isRaw = true;\n\t\tthis.rawHTML = value;\n\t\tthis.rawTextContent = null;\n\t}\n});\n\nObject.defineProperty(TW_Element.prototype, \"textInnerHTML\", {\n\tset: function(value) {\n\t\tif(this.isRaw) {\n\t\t\tthis.rawTextContent = value;\n\t\t} else {\n\t\t\tthrow \"Cannot set textInnerHTML of a non-raw TW_Element\";\n\t\t}\n\t}\n});\n\nObject.defineProperty(TW_Element.prototype, \"textContent\", {\n\tget: function() {\n\t\tif(this.isRaw) {\n\t\t\tif(this.rawTextContent === null) {\n\t\t\t\treturn \"\";\n\t\t\t} else {\n\t\t\t\treturn this.rawTextContent;\n\t\t\t}\n\t\t} else {\n\t\t\tvar b = [];\n\t\t\t$tw.utils.each(this.children,function(node) {\n\t\t\t\tb.push(node.textContent);\n\t\t\t});\n\t\t\treturn b.join(\"\");\n\t\t}\n\t},\n\tset: function(value) {\n\t\tthis.children = [new TW_TextNode(value)];\n\t}\n});\n\nObject.defineProperty(TW_Element.prototype, \"formattedTextContent\", {\n\tget: function() {\n\t\tif(this.isRaw) {\n\t\t\treturn \"\";\n\t\t} else {\n\t\t\tvar b = [],\n\t\t\t\tisBlock = $tw.config.htmlBlockElements.indexOf(this.tag) !== -1;\n\t\t\tif(isBlock) {\n\t\t\t\tb.push(\"\\n\");\n\t\t\t}\n\t\t\tif(this.tag === \"li\") {\n\t\t\t\tb.push(\"* \");\n\t\t\t}\n\t\t\t$tw.utils.each(this.children,function(node) {\n\t\t\t\tb.push(node.formattedTextContent);\n\t\t\t});\n\t\t\tif(isBlock) {\n\t\t\t\tb.push(\"\\n\");\n\t\t\t}\n\t\t\treturn b.join(\"\");\n\t\t}\n\t}\n});\n\nvar document = {\n\tsetSequenceNumber: function(value) {\n\t\tsequenceNumber = value;\n\t},\n\tcreateElementNS: function(namespace,tag) {\n\t\treturn new TW_Element(tag,namespace);\n\t},\n\tcreateElement: function(tag) {\n\t\treturn new TW_Element(tag);\n\t},\n\tcreateTextNode: function(text) {\n\t\treturn new TW_TextNode(text);\n\t},\n\tcompatMode: \"CSS1Compat\", // For KaTeX to know that we're not a browser in quirks mode\n\tisTiddlyWikiFakeDom: true\n};\n\nexports.fakeDocument = document;\n\n})();\n",
            "type": "application/javascript",
            "module-type": "global"
        },
        "$:/core/modules/utils/filesystem.js": {
            "title": "$:/core/modules/utils/filesystem.js",
            "text": "/*\\\ntitle: $:/core/modules/utils/filesystem.js\ntype: application/javascript\nmodule-type: utils-node\n\nFile system utilities\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar fs = require(\"fs\"),\n\tpath = require(\"path\");\n\n/*\nReturn the subdirectories of a path\n*/\nexports.getSubdirectories = function(dirPath) {\n\tif(!$tw.utils.isDirectory(dirPath)) {\n\t\treturn null;\n\t}\n\tvar subdirs = [];\n\t$tw.utils.each(fs.readdirSync(dirPath),function(item) {\n\t\tif($tw.utils.isDirectory(path.resolve(dirPath,item))) {\n\t\t\tsubdirs.push(item);\n\t\t}\n\t});\n\treturn subdirs;\n}\n\n/*\nRecursively (and synchronously) copy a directory and all its content\n*/\nexports.copyDirectory = function(srcPath,dstPath) {\n\t// Remove any trailing path separators\n\tsrcPath = path.resolve($tw.utils.removeTrailingSeparator(srcPath));\n\tdstPath = path.resolve($tw.utils.removeTrailingSeparator(dstPath));\n\t// Check that neither director is within the other\n\tif(srcPath.substring(0,dstPath.length) === dstPath || dstPath.substring(0,srcPath.length) === srcPath) {\n\t\treturn \"Cannot copy nested directories\";\n\t}\n\t// Create the destination directory\n\tvar err = $tw.utils.createDirectory(dstPath);\n\tif(err) {\n\t\treturn err;\n\t}\n\t// Function to copy a folder full of files\n\tvar copy = function(srcPath,dstPath) {\n\t\tvar srcStats = fs.lstatSync(srcPath),\n\t\t\tdstExists = fs.existsSync(dstPath);\n\t\tif(srcStats.isFile()) {\n\t\t\t$tw.utils.copyFile(srcPath,dstPath);\n\t\t} else if(srcStats.isDirectory()) {\n\t\t\tvar items = fs.readdirSync(srcPath);\n\t\t\tfor(var t=0; t<items.length; t++) {\n\t\t\t\tvar item = items[t],\n\t\t\t\t\terr = copy(srcPath + path.sep + item,dstPath + path.sep + item);\n\t\t\t\tif(err) {\n\t\t\t\t\treturn err;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t};\n\tcopy(srcPath,dstPath);\n\treturn null;\n};\n\n/*\nCopy a file\n*/\nvar FILE_BUFFER_LENGTH = 64 * 1024,\n\tfileBuffer;\n\nexports.copyFile = function(srcPath,dstPath) {\n\t// Create buffer if required\n\tif(!fileBuffer) {\n\t\tfileBuffer = Buffer.alloc(FILE_BUFFER_LENGTH);\n\t}\n\t// Create any directories in the destination\n\t$tw.utils.createDirectory(path.dirname(dstPath));\n\t// Copy the file\n\tvar srcFile = fs.openSync(srcPath,\"r\"),\n\t\tdstFile = fs.openSync(dstPath,\"w\"),\n\t\tbytesRead = 1,\n\t\tpos = 0;\n\twhile (bytesRead > 0) {\n\t\tbytesRead = fs.readSync(srcFile,fileBuffer,0,FILE_BUFFER_LENGTH,pos);\n\t\tfs.writeSync(dstFile,fileBuffer,0,bytesRead);\n\t\tpos += bytesRead;\n\t}\n\tfs.closeSync(srcFile);\n\tfs.closeSync(dstFile);\n\treturn null;\n};\n\n/*\nRemove trailing path separator\n*/\nexports.removeTrailingSeparator = function(dirPath) {\n\tvar len = dirPath.length;\n\tif(dirPath.charAt(len-1) === path.sep) {\n\t\tdirPath = dirPath.substr(0,len-1);\n\t}\n\treturn dirPath;\n};\n\n/*\nRecursively create a directory\n*/\nexports.createDirectory = function(dirPath) {\n\tif(dirPath.substr(dirPath.length-1,1) !== path.sep) {\n\t\tdirPath = dirPath + path.sep;\n\t}\n\tvar pos = 1;\n\tpos = dirPath.indexOf(path.sep,pos);\n\twhile(pos !== -1) {\n\t\tvar subDirPath = dirPath.substr(0,pos);\n\t\tif(!$tw.utils.isDirectory(subDirPath)) {\n\t\t\ttry {\n\t\t\t\tfs.mkdirSync(subDirPath);\n\t\t\t} catch(e) {\n\t\t\t\treturn \"Error creating directory '\" + subDirPath + \"'\";\n\t\t\t}\n\t\t}\n\t\tpos = dirPath.indexOf(path.sep,pos + 1);\n\t}\n\treturn null;\n};\n\n/*\nRecursively create directories needed to contain a specified file\n*/\nexports.createFileDirectories = function(filePath) {\n\treturn $tw.utils.createDirectory(path.dirname(filePath));\n};\n\n/*\nRecursively delete a directory\n*/\nexports.deleteDirectory = function(dirPath) {\n\tif(fs.existsSync(dirPath)) {\n\t\tvar entries = fs.readdirSync(dirPath);\n\t\tfor(var entryIndex=0; entryIndex<entries.length; entryIndex++) {\n\t\t\tvar currPath = dirPath + path.sep + entries[entryIndex];\n\t\t\tif(fs.lstatSync(currPath).isDirectory()) {\n\t\t\t\t$tw.utils.deleteDirectory(currPath);\n\t\t\t} else {\n\t\t\t\tfs.unlinkSync(currPath);\n\t\t\t}\n\t\t}\n\tfs.rmdirSync(dirPath);\n\t}\n\treturn null;\n};\n\n/*\nCheck if a path identifies a directory\n*/\nexports.isDirectory = function(dirPath) {\n\treturn fs.existsSync(dirPath) && fs.statSync(dirPath).isDirectory();\n};\n\n/*\nCheck if a path identifies a directory that is empty\n*/\nexports.isDirectoryEmpty = function(dirPath) {\n\tif(!$tw.utils.isDirectory(dirPath)) {\n\t\treturn false;\n\t}\n\tvar files = fs.readdirSync(dirPath),\n\t\tempty = true;\n\t$tw.utils.each(files,function(file,index) {\n\t\tif(file.charAt(0) !== \".\") {\n\t\t\tempty = false;\n\t\t}\n\t});\n\treturn empty;\n};\n\n/*\nRecursively delete a tree of empty directories\n*/\nexports.deleteEmptyDirs = function(dirpath,callback) {\n\tvar self = this;\n\tfs.readdir(dirpath,function(err,files) {\n\t\tif(err) {\n\t\t\treturn callback(err);\n\t\t}\n\t\tif(files.length > 0) {\n\t\t\treturn callback(null);\n\t\t}\n\t\tfs.rmdir(dirpath,function(err) {\n\t\t\tif(err) {\n\t\t\t\treturn callback(err);\n\t\t\t}\n\t\t\tself.deleteEmptyDirs(path.dirname(dirpath),callback);\n\t\t});\n\t});\n};\n\n/*\nCreate a fileInfo object for saving a tiddler:\n\tfilepath: the absolute path to the file containing the tiddler\n\ttype: the type of the tiddler file on disk (NOT the type of the tiddler)\n\thasMetaFile: true if the file also has a companion .meta file\n\tisEditableFile: true if the tiddler was loaded via non-standard options & marked editable\nOptions include:\n\tdirectory: absolute path of root directory to which we are saving\n\tpathFilters: optional array of filters to be used to generate the base path\n\textFilters: optional array of filters to be used to generate the base path\n\twiki: optional wiki for evaluating the pathFilters,\n\tfileInfo: an existing fileInfo to check against\n\toriginalpath: a preferred filepath if no pathFilters match\n*/\nexports.generateTiddlerFileInfo = function(tiddler,options) {\n\tvar fileInfo = {}, metaExt;\n\t// Propagate the isEditableFile flag\n\tif(options.fileInfo) {\n\t\tfileInfo.isEditableFile = options.fileInfo.isEditableFile || false;\n\t}\n\t// Check if the tiddler has any unsafe fields that can't be expressed in a .tid or .meta file: containing control characters, or leading/trailing whitespace\n\tvar hasUnsafeFields = false;\n\t$tw.utils.each(tiddler.getFieldStrings(),function(value,fieldName) {\n\t\tif(fieldName !== \"text\") {\n\t\t\thasUnsafeFields = hasUnsafeFields || /[\\x00-\\x1F]/mg.test(value);\n\t\t\thasUnsafeFields = hasUnsafeFields || ($tw.utils.trim(value) !== value);\n\t\t}\n\t});\n\t// Check for field values \n\tif(hasUnsafeFields) {\n\t\t// Save as a JSON file\n\t\tfileInfo.type = \"application/json\";\n\t\tfileInfo.hasMetaFile = false;\n\t} else {\n\t\t// Save as a .tid or a text/binary file plus a .meta file\n\t\tvar tiddlerType = tiddler.fields.type || \"text/vnd.tiddlywiki\";\n\t\tif(tiddlerType === \"text/vnd.tiddlywiki\") {\n\t\t\t// Save as a .tid file\n\t\t\tfileInfo.type = \"application/x-tiddler\";\n\t\t\tfileInfo.hasMetaFile = false;\n\t\t} else {\n\t\t\t// Save as a text/binary file and a .meta file\n\t\t\tfileInfo.type = tiddlerType;\n\t\t\tfileInfo.hasMetaFile = true;\n\t\t}\n\t\tif(options.extFilters) {\n\t\t\t// Check for extension override\n\t\t\tmetaExt = $tw.utils.generateTiddlerExtension(tiddler.fields.title,{\n\t\t\t\textFilters: options.extFilters,\n\t\t\t\twiki: options.wiki\n\t\t\t});\n\t\t\tif(metaExt){\n\t\t\t\tif(metaExt === \".tid\") {\n\t\t\t\t\t// Overriding to the .tid extension needs special handling\n\t\t\t\t\tfileInfo.type = \"application/x-tiddler\";\n\t\t\t\t\tfileInfo.hasMetaFile = false;\n\t\t\t\t} else if (metaExt === \".json\") {\n\t\t\t\t\t// Overriding to the .json extension needs special handling\n\t\t\t\t\tfileInfo.type = \"application/json\";\n\t\t\t\t\tfileInfo.hasMetaFile = false;\n\t\t\t\t} else {\n\t\t\t\t\t//If the new type matches a known extention, use that MIME type's encoding\n\t\t\t\t\tvar extInfo = $tw.utils.getFileExtensionInfo(metaExt);\n\t\t\t\t\tfileInfo.type = extInfo ? extInfo.type : null;\n\t\t\t\t\tfileInfo.encoding = $tw.utils.getTypeEncoding(metaExt);\n\t\t\t\t\tfileInfo.hasMetaFile = true;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\t// Take the file extension from the tiddler content type or metaExt\n\tvar contentTypeInfo = $tw.config.contentTypeInfo[fileInfo.type] || {extension: \"\"};\n\t// Generate the filepath\n\tfileInfo.filepath = $tw.utils.generateTiddlerFilepath(tiddler.fields.title,{\n\t\textension: metaExt || contentTypeInfo.extension,\n\t\tdirectory: options.directory,\n\t\tpathFilters: options.pathFilters,\n\t\twiki: options.wiki,\n\t\tfileInfo: options.fileInfo,\n\t\toriginalpath: options.originalpath\n\t});\n\treturn fileInfo;\n};\n\n/*\nGenerate the file extension for saving a tiddler\nOptions include:\n\textFilters: optional array of filters to be used to generate the extention\n\twiki: optional wiki for evaluating the extFilters\n*/\nexports.generateTiddlerExtension = function(title,options) {\n\tvar self = this,\n\t\textension;\n\t// Check if any of the extFilters applies\n\tif(options.extFilters && options.wiki) { \n\t\t$tw.utils.each(options.extFilters,function(filter) {\n\t\t\tif(!extension) {\n\t\t\t\tvar source = options.wiki.makeTiddlerIterator([title]),\n\t\t\t\t\tresult = options.wiki.filterTiddlers(filter,null,source);\n\t\t\t\tif(result.length > 0) {\n\t\t\t\t\textension = result[0];\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t}\n\treturn extension;\n};\n\n/*\nGenerate the filepath for saving a tiddler\nOptions include:\n\textension: file extension to be added the finished filepath\n\tdirectory: absolute path of root directory to which we are saving\n\tpathFilters: optional array of filters to be used to generate the base path\n\twiki: optional wiki for evaluating the pathFilters\n\tfileInfo: an existing fileInfo object to check against\n*/\nexports.generateTiddlerFilepath = function(title,options) {\n\tvar self = this,\n\t\tdirectory = options.directory || \"\",\n\t\textension = options.extension || \"\",\n\t\toriginalpath = options.originalpath || \"\",\n\t\tfilepath;\t\n\t// Check if any of the pathFilters applies\n\tif(options.pathFilters && options.wiki) {\n\t\t$tw.utils.each(options.pathFilters,function(filter) {\n\t\t\tif(!filepath) {\n\t\t\t\tvar source = options.wiki.makeTiddlerIterator([title]),\n\t\t\t\t\tresult = options.wiki.filterTiddlers(filter,null,source);\n\t\t\t\tif(result.length > 0) {\n\t\t\t\t\tfilepath = result[0];\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t}\n\tif(!filepath && originalpath !== \"\") {\n\t\t//Use the originalpath without the extension\n\t\tvar ext = path.extname(originalpath);\n\t\tfilepath = originalpath.substring(0,originalpath.length - ext.length);\n\t} else if(!filepath) {\n\t\tfilepath = title;\n\t\t// If the filepath already ends in the extension then remove it\n\t\tif(filepath.substring(filepath.length - extension.length) === extension) {\n\t\t\tfilepath = filepath.substring(0,filepath.length - extension.length);\n\t\t}\n\t\t// Remove any forward or backward slashes so we don't create directories\n\t\tfilepath = filepath.replace(/\\/|\\\\/g,\"_\");\n\t}\n\t//If the path does not start with \".\" or \"..\" and a path seperator, then\n\tif(!/^\\.{1,2}[/\\\\]/g.test(filepath)) {\n\t\t// Don't let the filename start with any dots because such files are invisible on *nix\n\t\tfilepath = filepath.replace(/^\\.+/g,\"_\");\n\t}\n\t// Remove any characters that can't be used in cross-platform filenames\n\tfilepath = $tw.utils.transliterate(filepath.replace(/<|>|~|\\:|\\\"|\\||\\?|\\*|\\^/g,\"_\"));\n\t// Truncate the filename if it is too long\n\tif(filepath.length > 200) {\n\t\tfilepath = filepath.substr(0,200);\n\t}\n\t// If the resulting filename is blank (eg because the title is just punctuation characters)\n\tif(!filepath) {\n\t\t// ...then just use the character codes of the title\n\t\tfilepath = \"\";\t\n\t\t$tw.utils.each(title.split(\"\"),function(char) {\n\t\t\tif(filepath) {\n\t\t\t\tfilepath += \"-\";\n\t\t\t}\n\t\t\tfilepath += char.charCodeAt(0).toString();\n\t\t});\n\t}\n\t// Add a uniquifier if the file already exists\n\tvar fullPath, oldPath = (options.fileInfo) ? options.fileInfo.filepath : undefined,\n\t\tcount = 0;\n\tdo {\n\t\tfullPath = path.resolve(directory,filepath + (count ? \"_\" + count : \"\") + extension);\n\t\tif(oldPath && oldPath == fullPath) {\n\t\t\tbreak;\n\t\t}\n\t\tcount++;\n\t} while(fs.existsSync(fullPath));\n\t// If the last write failed with an error, or if path does not start with:\n\t//\tthe resolved options.directory, the resolved wikiPath directory, or the wikiTiddlersPath directory, \n\t//\tthen encodeURIComponent() and resolve to tiddler directory\n\tvar newPath = fullPath,\n\t\tencode = (options.fileInfo || {writeError: false}).writeError == true;\n\tif(!encode){\n\t\tencode = !(fullPath.indexOf(path.resolve(directory)) == 0 ||\n\t\t\tfullPath.indexOf(path.resolve($tw.boot.wikiPath)) == 0 ||\n\t\t\tfullPath.indexOf($tw.boot.wikiTiddlersPath) == 0);\n\t\t}\n\tif(encode){\n\t\tfullPath = path.resolve(directory, encodeURIComponent(fullPath));\n\t}\n\t// Call hook to allow plugins to modify the final path\n\tfullPath = $tw.hooks.invokeHook(\"th-make-tiddler-path\", newPath, fullPath);\n\t// Return the full path to the file\n\treturn fullPath;\n};\n\n/*\nSave a tiddler to a file described by the fileInfo:\n\tfilepath: the absolute path to the file containing the tiddler\n\ttype: the type of the tiddler file (NOT the type of the tiddler)\n\thasMetaFile: true if the file also has a companion .meta file\n*/\nexports.saveTiddlerToFile = function(tiddler,fileInfo,callback) {\n\t$tw.utils.createDirectory(path.dirname(fileInfo.filepath));\n\tif(fileInfo.hasMetaFile) {\n\t\t// Save the tiddler as a separate body and meta file\n\t\tvar typeInfo = $tw.config.contentTypeInfo[tiddler.fields.type || \"text/plain\"] || {encoding: \"utf8\"};\n\t\tfs.writeFile(fileInfo.filepath,tiddler.fields.text,typeInfo.encoding,function(err) {\n\t\t\tif(err) {\n\t\t\t\treturn callback(err);\n\t\t\t}\n\t\t\tfs.writeFile(fileInfo.filepath + \".meta\",tiddler.getFieldStringBlock({exclude: [\"text\",\"bag\"]}),\"utf8\",callback);\n\t\t});\n\t} else {\n\t\t// Save the tiddler as a self contained templated file\n\t\tif(fileInfo.type === \"application/x-tiddler\") {\n\t\t\tfs.writeFile(fileInfo.filepath,tiddler.getFieldStringBlock({exclude: [\"text\",\"bag\"]}) + (!!tiddler.fields.text ? \"\\n\\n\" + tiddler.fields.text : \"\"),\"utf8\",callback);\n\t\t} else {\n\t\t\tfs.writeFile(fileInfo.filepath,JSON.stringify([tiddler.getFieldStrings({exclude: [\"bag\"]})],null,$tw.config.preferences.jsonSpaces),\"utf8\",callback);\n\t\t}\n\t}\n};\n\n/*\nSave a tiddler to a file described by the fileInfo:\n\tfilepath: the absolute path to the file containing the tiddler\n\ttype: the type of the tiddler file (NOT the type of the tiddler)\n\thasMetaFile: true if the file also has a companion .meta file\n*/\nexports.saveTiddlerToFileSync = function(tiddler,fileInfo) {\n\t$tw.utils.createDirectory(path.dirname(fileInfo.filepath));\n\tif(fileInfo.hasMetaFile) {\n\t\t// Save the tiddler as a separate body and meta file\n\t\tvar typeInfo = $tw.config.contentTypeInfo[tiddler.fields.type || \"text/plain\"] || {encoding: \"utf8\"};\n\t\tfs.writeFileSync(fileInfo.filepath,tiddler.fields.text,typeInfo.encoding);\n\t\tfs.writeFileSync(fileInfo.filepath + \".meta\",tiddler.getFieldStringBlock({exclude: [\"text\",\"bag\"]}),\"utf8\");\n\t} else {\n\t\t// Save the tiddler as a self contained templated file\n\t\tif(fileInfo.type === \"application/x-tiddler\") {\n\t\t\tfs.writeFileSync(fileInfo.filepath,tiddler.getFieldStringBlock({exclude: [\"text\",\"bag\"]}) + (!!tiddler.fields.text ? \"\\n\\n\" + tiddler.fields.text : \"\"),\"utf8\");\n\t\t} else {\n\t\t\tfs.writeFileSync(fileInfo.filepath,JSON.stringify([tiddler.getFieldStrings({exclude: [\"bag\"]})],null,$tw.config.preferences.jsonSpaces),\"utf8\");\n\t\t}\n\t}\n};\n\n/*\nDelete a file described by the fileInfo if it exits\n*/\nexports.deleteTiddlerFile = function(fileInfo, callback) {\n\t//Only attempt to delete files that exist on disk\n\tif(!fileInfo.filepath || !fs.existsSync(fileInfo.filepath)) {\n\t\treturn callback(null);\n\t}\n\t// Delete the file\n\tfs.unlink(fileInfo.filepath,function(err) {\n\t\tif(err) {\n\t\t\treturn callback(err);\n\t\t}\t\n\t\t// Delete the metafile if present\n\t\tif(fileInfo.hasMetaFile && fs.existsSync(fileInfo.filepath + \".meta\")) {\n\t\t\tfs.unlink(fileInfo.filepath + \".meta\",function(err) {\n\t\t\t\tif(err) {\n\t\t\t\t\treturn callback(err);\n\t\t\t\t}\n\t\t\t\treturn $tw.utils.deleteEmptyDirs(path.dirname(fileInfo.filepath),callback);\n\t\t\t});\n\t\t} else {\n\t\t\treturn $tw.utils.deleteEmptyDirs(path.dirname(fileInfo.filepath),callback);\n\t\t}\n\t});\n};\n\n/*\nCleanup old files on disk, by comparing the options values:\n\tadaptorInfo from $tw.syncer.tiddlerInfo\n\tbootInfo from $tw.boot.files\n*/\nexports.cleanupTiddlerFiles = function(options, callback) {\n\tvar adaptorInfo = options.adaptorInfo || {},\n\tbootInfo = options.bootInfo || {},\n\ttitle = options.title || \"undefined\";\n\tif(adaptorInfo.filepath && bootInfo.filepath && adaptorInfo.filepath !== bootInfo.filepath) {\n\t\treturn $tw.utils.deleteTiddlerFile(adaptorInfo, function(err){\n\t\t\tif(err) {\n\t\t\t\tif ((err.code == \"EPERM\" || err.code == \"EACCES\") && err.syscall == \"unlink\") {\n\t\t\t\t\t// Error deleting the previous file on disk, should fail gracefully\n\t\t\t\t\t$tw.syncer.displayError(\"Server desynchronized. Error cleaning up previous file for tiddler: \"+title, err);\n\t\t\t\t\treturn callback(null);\n\t\t\t\t} else {\n\t\t\t\t\treturn callback(err);\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn callback(null);\n\t\t});\n\t} else {\n\t\treturn callback(null);\n\t}\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "utils-node"
        },
        "$:/core/modules/utils/linkedlist.js": {
            "title": "$:/core/modules/utils/linkedlist.js",
            "text": "/*\\\nmodule-type: utils\ntitle: $:/core/modules/utils/linkedlist.js\ntype: application/javascript\n\nThis is a doubly-linked indexed list intended for manipulation, particularly\npushTop, which it does with significantly better performance than an array.\n\n\\*/\n(function(){\n\nfunction LinkedList() {\n\tthis.clear();\n};\n\nLinkedList.prototype.clear = function() {\n\tthis.index = Object.create(null);\n\t// LinkedList performs the duty of both the head and tail node\n\tthis.next = this;\n\tthis.prev = this;\n\tthis.length = 0;\n};\n\nLinkedList.prototype.remove = function(value) {\n\tif($tw.utils.isArray(value)) {\n\t\tfor(var t=0; t<value.length; t++) {\n\t\t\t_removeOne(this,value[t]);\n\t\t}\n\t} else {\n\t\t_removeOne(this,value);\n\t}\n};\n\nLinkedList.prototype.push = function(/* values */) {\n\tfor(var i = 0; i < arguments.length; i++) {\n\t\tvar value = arguments[i];\n\t\tvar node = {value: value};\n\t\tvar preexistingNode = this.index[value];\n\t\t_linkToEnd(this,node);\n\t\tif(preexistingNode) {\n\t\t\t// We want to keep pointing to the first instance, but we want\n\t\t\t// to have that instance (or chain of instances) point to the\n\t\t\t// new one.\n\t\t\twhile (preexistingNode.copy) {\n\t\t\t\tpreexistingNode = preexistingNode.copy;\n\t\t\t}\n\t\t\tpreexistingNode.copy = node;\n\t\t} else {\n\t\t\tthis.index[value] = node;\n\t\t}\n\t}\n};\n\nLinkedList.prototype.pushTop = function(value) {\n\tif($tw.utils.isArray(value)) {\n\t\tfor(var t=0; t<value.length; t++) {\n\t\t\t_removeOne(this,value[t]);\n\t\t}\n\t\tthis.push.apply(this,value);\n\t} else {\n\t\tvar node = _removeOne(this,value);\n\t\tif(!node) {\n\t\t\tnode = {value: value};\n\t\t\tthis.index[value] = node;\n\t\t} else {\n\t\t\t// Put this node at the end of the copy chain.\n\t\t\tvar preexistingNode = node;\n\t\t\twhile(preexistingNode.copy) {\n\t\t\t\tpreexistingNode = preexistingNode.copy;\n\t\t\t}\n\t\t\t// The order of these three statements is important,\n\t\t\t// because sometimes preexistingNode == node.\n\t\t\tpreexistingNode.copy = node;\n\t\t\tthis.index[value] = node.copy;\n\t\t\tnode.copy = undefined;\n\t\t}\n\t\t_linkToEnd(this,node);\n\t}\n};\n\nLinkedList.prototype.each = function(callback) {\n\tfor(var ptr = this.next; ptr !== this; ptr = ptr.next) {\n\t\tcallback(ptr.value);\n\t}\n};\n\nLinkedList.prototype.toArray = function() {\n\tvar output = [];\n\tfor(var ptr = this.next; ptr !== this; ptr = ptr.next) {\n\t\toutput.push(ptr.value);\n\t}\n\treturn output;\n};\n\nfunction _removeOne(list,value) {\n\tvar node = list.index[value];\n\tif(node) {\n\t\tnode.prev.next = node.next;\n\t\tnode.next.prev = node.prev;\n\t\tlist.length -= 1;\n\t\t// Point index to the next instance of the same value, maybe nothing.\n\t\tlist.index[value] = node.copy;\n\t}\n\treturn node;\n};\n\nfunction _linkToEnd(list,node) {\n\t// Sticks the given node onto the end of the list.\n\tlist.prev.next = node;\n\tnode.prev = list.prev;\n\tlist.prev = node;\n\tnode.next = list;\n\tlist.length += 1;\n};\n\nexports.LinkedList = LinkedList;\n\n})();\n",
            "module-type": "utils",
            "type": "application/javascript"
        },
        "$:/core/modules/utils/logger.js": {
            "title": "$:/core/modules/utils/logger.js",
            "text": "/*\\\ntitle: $:/core/modules/utils/logger.js\ntype: application/javascript\nmodule-type: utils\n\nA basic logging implementation\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar ALERT_TAG = \"$:/tags/Alert\";\n\n/*\nMake a new logger\n*/\nfunction Logger(componentName,options) {\n\toptions = options || {};\n\tthis.componentName = componentName || \"\";\n\tthis.colour = options.colour || \"white\";\n\tthis.enable = \"enable\" in options ? options.enable : true;\n\tthis.save = \"save\" in options ? options.save : true;\n\tthis.saveLimit = options.saveLimit || 100 * 1024;\n\tthis.saveBufferLogger = this;\n\tthis.buffer = \"\";\n\tthis.alertCount = 0;\n}\n\nLogger.prototype.setSaveBuffer = function(logger) {\n\tthis.saveBufferLogger = logger;\n};\n\n/*\nLog a message\n*/\nLogger.prototype.log = function(/* args */) {\n\tvar self = this;\n\tif(this.enable) {\n\t\tif(this.saveBufferLogger.save) {\n\t\t\tthis.saveBufferLogger.buffer += $tw.utils.formatDateString(new Date(),\"YYYY MM DD 0hh:0mm:0ss.0XXX\") + \":\";\n\t\t\t$tw.utils.each(Array.prototype.slice.call(arguments,0),function(arg,index) {\n\t\t\t\tself.saveBufferLogger.buffer += \" \" + arg;\n\t\t\t});\n\t\t\tthis.saveBufferLogger.buffer += \"\\n\";\n\t\t\tthis.saveBufferLogger.buffer = this.saveBufferLogger.buffer.slice(-this.saveBufferLogger.saveLimit);\t\t\t\n\t\t}\n\t\tif(console !== undefined && console.log !== undefined) {\n\t\t\treturn Function.apply.call(console.log, console, [$tw.utils.terminalColour(this.colour),this.componentName + \":\"].concat(Array.prototype.slice.call(arguments,0)).concat($tw.utils.terminalColour()));\n\t\t}\n\t} \n};\n\n/*\nRead the message buffer\n*/\nLogger.prototype.getBuffer = function() {\n\treturn this.saveBufferLogger.buffer;\n};\n\n/*\nLog a structure as a table\n*/\nLogger.prototype.table = function(value) {\n\t(console.table || console.log)(value);\n};\n\n/*\nAlert a message\n*/\nLogger.prototype.alert = function(/* args */) {\n\tif(this.enable) {\n\t\t// Prepare the text of the alert\n\t\tvar text = Array.prototype.join.call(arguments,\" \");\n\t\t// Create alert tiddlers in the browser\n\t\tif($tw.browser) {\n\t\t\t// Check if there is an existing alert with the same text and the same component\n\t\t\tvar existingAlerts = $tw.wiki.getTiddlersWithTag(ALERT_TAG),\n\t\t\t\talertFields,\n\t\t\t\texistingCount,\n\t\t\t\tself = this;\n\t\t\t$tw.utils.each(existingAlerts,function(title) {\n\t\t\t\tvar tiddler = $tw.wiki.getTiddler(title);\n\t\t\t\tif(tiddler.fields.text === text && tiddler.fields.component === self.componentName && tiddler.fields.modified && (!alertFields || tiddler.fields.modified < alertFields.modified)) {\n\t\t\t\t\t\talertFields = $tw.utils.extend({},tiddler.fields);\n\t\t\t\t}\n\t\t\t});\n\t\t\tif(alertFields) {\n\t\t\t\texistingCount = alertFields.count || 1;\n\t\t\t} else {\n\t\t\t\talertFields = {\n\t\t\t\t\ttitle: $tw.wiki.generateNewTitle(\"$:/temp/alerts/alert\",{prefix: \"\"}),\n\t\t\t\t\ttext: text,\n\t\t\t\t\ttags: [ALERT_TAG],\n\t\t\t\t\tcomponent: this.componentName\n\t\t\t\t};\n\t\t\t\texistingCount = 0;\n\t\t\t\tthis.alertCount += 1;\n\t\t\t}\n\t\t\talertFields.modified = new Date();\n\t\t\tif(++existingCount > 1) {\n\t\t\t\talertFields.count = existingCount;\n\t\t\t} else {\n\t\t\t\talertFields.count = undefined;\n\t\t\t}\n\t\t\t$tw.wiki.addTiddler(new $tw.Tiddler(alertFields));\n\t\t\t// Log the alert as well\n\t\t\tthis.log.apply(this,Array.prototype.slice.call(arguments,0));\n\t\t} else {\n\t\t\t// Print an orange message to the console if not in the browser\n\t\t\tconsole.error(\"\\x1b[1;33m\" + text + \"\\x1b[0m\");\n\t\t}\t\t\n\t}\n};\n\n/*\nClear outstanding alerts\n*/\nLogger.prototype.clearAlerts = function() {\n\tvar self = this;\n\tif($tw.browser && this.alertCount > 0) {\n\t\t$tw.utils.each($tw.wiki.getTiddlersWithTag(ALERT_TAG),function(title) {\n\t\t\tvar tiddler = $tw.wiki.getTiddler(title);\n\t\t\tif(tiddler.fields.component === self.componentName) {\n\t\t\t\t$tw.wiki.deleteTiddler(title);\n\t\t\t}\n\t\t});\n\t\tthis.alertCount = 0;\n\t}\n};\n\nexports.Logger = Logger;\n\n})();\n",
            "type": "application/javascript",
            "module-type": "utils"
        },
        "$:/core/modules/utils/parsetree.js": {
            "title": "$:/core/modules/utils/parsetree.js",
            "text": "/*\\\ntitle: $:/core/modules/utils/parsetree.js\ntype: application/javascript\nmodule-type: utils\n\nParse tree utility functions.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.addAttributeToParseTreeNode = function(node,name,value) {\n\tnode.attributes = node.attributes || {};\n\tnode.attributes[name] = {type: \"string\", value: value};\n};\n\nexports.getAttributeValueFromParseTreeNode = function(node,name,defaultValue) {\n\tif(node.attributes && node.attributes[name] && node.attributes[name].value !== undefined) {\n\t\treturn node.attributes[name].value;\n\t}\n\treturn defaultValue;\n};\n\nexports.addClassToParseTreeNode = function(node,classString) {\n\tvar classes = [];\n\tnode.attributes = node.attributes || {};\n\tnode.attributes[\"class\"] = node.attributes[\"class\"] || {type: \"string\", value: \"\"};\n\tif(node.attributes[\"class\"].type === \"string\") {\n\t\tif(node.attributes[\"class\"].value !== \"\") {\n\t\t\tclasses = node.attributes[\"class\"].value.split(\" \");\n\t\t}\n\t\tif(classString !== \"\") {\n\t\t\t$tw.utils.pushTop(classes,classString.split(\" \"));\n\t\t}\n\t\tnode.attributes[\"class\"].value = classes.join(\" \");\n\t}\n};\n\nexports.addStyleToParseTreeNode = function(node,name,value) {\n\t\tnode.attributes = node.attributes || {};\n\t\tnode.attributes.style = node.attributes.style || {type: \"string\", value: \"\"};\n\t\tif(node.attributes.style.type === \"string\") {\n\t\t\tnode.attributes.style.value += name + \":\" + value + \";\";\n\t\t}\n};\n\nexports.findParseTreeNode = function(nodeArray,search) {\n\tfor(var t=0; t<nodeArray.length; t++) {\n\t\tif(nodeArray[t].type === search.type && nodeArray[t].tag === search.tag) {\n\t\t\treturn nodeArray[t];\n\t\t}\n\t}\n\treturn undefined;\n};\n\n/*\nHelper to get the text of a parse tree node or array of nodes\n*/\nexports.getParseTreeText = function getParseTreeText(tree) {\n\tvar output = [];\n\tif($tw.utils.isArray(tree)) {\n\t\t$tw.utils.each(tree,function(node) {\n\t\t\toutput.push(getParseTreeText(node));\n\t\t});\n\t} else {\n\t\tif(tree.type === \"text\") {\n\t\t\toutput.push(tree.text);\n\t\t}\n\t\tif(tree.children) {\n\t\t\treturn getParseTreeText(tree.children);\n\t\t}\n\t}\n\treturn output.join(\"\");\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "utils"
        },
        "$:/core/modules/utils/performance.js": {
            "title": "$:/core/modules/utils/performance.js",
            "text": "/*\\\ntitle: $:/core/modules/utils/performance.js\ntype: application/javascript\nmodule-type: global\n\nPerformance measurement.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nfunction Performance(enabled) {\n\tthis.enabled = !!enabled;\n\tthis.measures = {}; // Hashmap by measurement name of {time:, invocations:}\n\tthis.logger = new $tw.utils.Logger(\"performance\");\n\tthis.showGreeting();\n}\n\nPerformance.prototype.showGreeting = function() {\n\tif($tw.browser) {\n\t\tthis.logger.log(\"Execute $tw.perf.log(); to see filter execution timings\");\t\t\n\t}\n};\n\n/*\nWrap performance reporting around a top level function\n*/\nPerformance.prototype.report = function(name,fn) {\n\tvar self = this;\n\tif(this.enabled) {\n\t\treturn function() {\n\t\t\tvar startTime = $tw.utils.timer(),\n\t\t\t\tresult = fn.apply(this,arguments);\n\t\t\tself.logger.log(name + \": \" + $tw.utils.timer(startTime).toFixed(2) + \"ms\");\n\t\t\treturn result;\n\t\t};\n\t} else {\n\t\treturn fn;\n\t}\n};\n\nPerformance.prototype.log = function() {\n\tvar self = this,\n\t\ttotalTime = 0,\n\t\torderedMeasures = Object.keys(this.measures).sort(function(a,b) {\n\t\t\tif(self.measures[a].time > self.measures[b].time) {\n\t\t\t\treturn -1;\n\t\t\t} else if (self.measures[a].time < self.measures[b].time) {\n\t\t\t\treturn + 1;\n\t\t\t} else {\n\t\t\t\treturn 0;\n\t\t\t}\n\t\t});\n\t$tw.utils.each(orderedMeasures,function(name) {\n\t\ttotalTime += self.measures[name].time;\n\t});\n\tvar results = []\n\t$tw.utils.each(orderedMeasures,function(name) {\n\t\tvar measure = self.measures[name];\n\t\tresults.push({name: name,invocations: measure.invocations, avgTime: measure.time / measure.invocations, totalTime: measure.time, percentTime: (measure.time / totalTime) * 100})\n\t});\n\tself.logger.table(results);\n};\n\n/*\nWrap performance measurements around a subfunction\n*/\nPerformance.prototype.measure = function(name,fn) {\n\tvar self = this;\n\tif(this.enabled) {\n\t\treturn function() {\n\t\t\tvar startTime = $tw.utils.timer(),\n\t\t\t\tresult = fn.apply(this,arguments);\n\t\t\tif(!(name in self.measures)) {\n\t\t\t\tself.measures[name] = {time: 0, invocations: 0};\n\t\t\t}\n\t\t\tself.measures[name].time += $tw.utils.timer(startTime);\n\t\t\tself.measures[name].invocations++;\n\t\t\treturn result;\n\t\t};\n\t} else {\n\t\treturn fn;\n\t}\n};\n\nexports.Performance = Performance;\n\n})();\n",
            "type": "application/javascript",
            "module-type": "global"
        },
        "$:/core/modules/utils/pluginmaker.js": {
            "title": "$:/core/modules/utils/pluginmaker.js",
            "text": "/*\\\ntitle: $:/core/modules/utils/pluginmaker.js\ntype: application/javascript\nmodule-type: utils\n\nA quick and dirty way to pack up plugins within the browser.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nRepack a plugin, and then delete any non-shadow payload tiddlers\n*/\nexports.repackPlugin = function(title,additionalTiddlers,excludeTiddlers) {\n\tadditionalTiddlers = additionalTiddlers || [];\n\texcludeTiddlers = excludeTiddlers || [];\n\t// Get the plugin tiddler\n\tvar pluginTiddler = $tw.wiki.getTiddler(title);\n\tif(!pluginTiddler) {\n\t\tthrow \"No such tiddler as \" + title;\n\t}\n\t// Extract the JSON\n\tvar jsonPluginTiddler;\n\ttry {\n\t\tjsonPluginTiddler = JSON.parse(pluginTiddler.fields.text);\n\t} catch(e) {\n\t\tthrow \"Cannot parse plugin tiddler \" + title + \"\\n\" + $tw.language.getString(\"Error/Caption\") + \": \" + e;\n\t}\n\t// Get the list of tiddlers\n\tvar tiddlers = Object.keys(jsonPluginTiddler.tiddlers);\n\t// Add the additional tiddlers\n\t$tw.utils.pushTop(tiddlers,additionalTiddlers);\n\t// Remove any excluded tiddlers\n\tfor(var t=tiddlers.length-1; t>=0; t--) {\n\t\tif(excludeTiddlers.indexOf(tiddlers[t]) !== -1) {\n\t\t\ttiddlers.splice(t,1);\n\t\t}\n\t}\n\t// Pack up the tiddlers into a block of JSON\n\tvar plugins = {};\n\t$tw.utils.each(tiddlers,function(title) {\n\t\tvar tiddler = $tw.wiki.getTiddler(title),\n\t\t\tfields = {};\n\t\t$tw.utils.each(tiddler.fields,function (value,name) {\n\t\t\tfields[name] = tiddler.getFieldString(name);\n\t\t});\n\t\tplugins[title] = fields;\n\t});\n\t// Retrieve and bump the version number\n\tvar pluginVersion = $tw.utils.parseVersion(pluginTiddler.getFieldString(\"version\") || \"0.0.0\") || {\n\t\t\tmajor: \"0\",\n\t\t\tminor: \"0\",\n\t\t\tpatch: \"0\"\n\t\t};\n\tpluginVersion.patch++;\n\tvar version = pluginVersion.major + \".\" + pluginVersion.minor + \".\" + pluginVersion.patch;\n\tif(pluginVersion.prerelease) {\n\t\tversion += \"-\" + pluginVersion.prerelease;\n\t}\n\tif(pluginVersion.build) {\n\t\tversion += \"+\" + pluginVersion.build;\n\t}\n\t// Save the tiddler\n\t$tw.wiki.addTiddler(new $tw.Tiddler(pluginTiddler,{text: JSON.stringify({tiddlers: plugins},null,4), version: version}));\n\t// Delete any non-shadow constituent tiddlers\n\t$tw.utils.each(tiddlers,function(title) {\n\t\tif($tw.wiki.tiddlerExists(title)) {\n\t\t\t$tw.wiki.deleteTiddler(title);\n\t\t}\n\t});\n\t// Trigger an autosave\n\t$tw.rootWidget.dispatchEvent({type: \"tm-auto-save-wiki\"});\n\t// Return a heartwarming confirmation\n\treturn \"Plugin \" + title + \" successfully saved\";\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "utils"
        },
        "$:/core/modules/utils/transliterate.js": {
            "title": "$:/core/modules/utils/transliterate.js",
            "text": "/*\\\ntitle: $:/core/modules/utils/transliterate.js\ntype: application/javascript\nmodule-type: utils\n\nTransliteration static utility functions.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nTransliterate string to ASCII\n\n(Some pairs taken from http://semplicewebsites.com/removing-accents-javascript)\n*/\nexports.transliterationPairs = {\n\t\"Á\":\"A\",\n\t\"Ă\":\"A\",\n\t\"Ắ\":\"A\",\n\t\"Ặ\":\"A\",\n\t\"Ằ\":\"A\",\n\t\"Ẳ\":\"A\",\n\t\"Ẵ\":\"A\",\n\t\"Ǎ\":\"A\",\n\t\"Â\":\"A\",\n\t\"Ấ\":\"A\",\n\t\"Ậ\":\"A\",\n\t\"Ầ\":\"A\",\n\t\"Ẩ\":\"A\",\n\t\"Ẫ\":\"A\",\n\t\"Ä\":\"A\",\n\t\"Ǟ\":\"A\",\n\t\"Ȧ\":\"A\",\n\t\"Ǡ\":\"A\",\n\t\"Ạ\":\"A\",\n\t\"Ȁ\":\"A\",\n\t\"À\":\"A\",\n\t\"Ả\":\"A\",\n\t\"Ȃ\":\"A\",\n\t\"Ā\":\"A\",\n\t\"Ą\":\"A\",\n\t\"Å\":\"A\",\n\t\"Ǻ\":\"A\",\n\t\"Ḁ\":\"A\",\n\t\"Ⱥ\":\"A\",\n\t\"Ã\":\"A\",\n\t\"Ꜳ\":\"AA\",\n\t\"Æ\":\"AE\",\n\t\"Ǽ\":\"AE\",\n\t\"Ǣ\":\"AE\",\n\t\"Ꜵ\":\"AO\",\n\t\"Ꜷ\":\"AU\",\n\t\"Ꜹ\":\"AV\",\n\t\"Ꜻ\":\"AV\",\n\t\"Ꜽ\":\"AY\",\n\t\"Ḃ\":\"B\",\n\t\"Ḅ\":\"B\",\n\t\"Ɓ\":\"B\",\n\t\"Ḇ\":\"B\",\n\t\"Ƀ\":\"B\",\n\t\"Ƃ\":\"B\",\n\t\"Ć\":\"C\",\n\t\"Č\":\"C\",\n\t\"Ç\":\"C\",\n\t\"Ḉ\":\"C\",\n\t\"Ĉ\":\"C\",\n\t\"Ċ\":\"C\",\n\t\"Ƈ\":\"C\",\n\t\"Ȼ\":\"C\",\n\t\"Ď\":\"D\",\n\t\"Ḑ\":\"D\",\n\t\"Ḓ\":\"D\",\n\t\"Ḋ\":\"D\",\n\t\"Ḍ\":\"D\",\n\t\"Ɗ\":\"D\",\n\t\"Ḏ\":\"D\",\n\t\"Dz\":\"D\",\n\t\"Dž\":\"D\",\n\t\"Đ\":\"D\",\n\t\"Ƌ\":\"D\",\n\t\"DZ\":\"DZ\",\n\t\"DŽ\":\"DZ\",\n\t\"É\":\"E\",\n\t\"Ĕ\":\"E\",\n\t\"Ě\":\"E\",\n\t\"Ȩ\":\"E\",\n\t\"Ḝ\":\"E\",\n\t\"Ê\":\"E\",\n\t\"Ế\":\"E\",\n\t\"Ệ\":\"E\",\n\t\"Ề\":\"E\",\n\t\"Ể\":\"E\",\n\t\"Ễ\":\"E\",\n\t\"Ḙ\":\"E\",\n\t\"Ë\":\"E\",\n\t\"Ė\":\"E\",\n\t\"Ẹ\":\"E\",\n\t\"Ȅ\":\"E\",\n\t\"È\":\"E\",\n\t\"Ẻ\":\"E\",\n\t\"Ȇ\":\"E\",\n\t\"Ē\":\"E\",\n\t\"Ḗ\":\"E\",\n\t\"Ḕ\":\"E\",\n\t\"Ę\":\"E\",\n\t\"Ɇ\":\"E\",\n\t\"Ẽ\":\"E\",\n\t\"Ḛ\":\"E\",\n\t\"Ꝫ\":\"ET\",\n\t\"Ḟ\":\"F\",\n\t\"Ƒ\":\"F\",\n\t\"Ǵ\":\"G\",\n\t\"Ğ\":\"G\",\n\t\"Ǧ\":\"G\",\n\t\"Ģ\":\"G\",\n\t\"Ĝ\":\"G\",\n\t\"Ġ\":\"G\",\n\t\"Ɠ\":\"G\",\n\t\"Ḡ\":\"G\",\n\t\"Ǥ\":\"G\",\n\t\"Ḫ\":\"H\",\n\t\"Ȟ\":\"H\",\n\t\"Ḩ\":\"H\",\n\t\"Ĥ\":\"H\",\n\t\"Ⱨ\":\"H\",\n\t\"Ḧ\":\"H\",\n\t\"Ḣ\":\"H\",\n\t\"Ḥ\":\"H\",\n\t\"Ħ\":\"H\",\n\t\"Í\":\"I\",\n\t\"Ĭ\":\"I\",\n\t\"Ǐ\":\"I\",\n\t\"Î\":\"I\",\n\t\"Ï\":\"I\",\n\t\"Ḯ\":\"I\",\n\t\"İ\":\"I\",\n\t\"Ị\":\"I\",\n\t\"Ȉ\":\"I\",\n\t\"Ì\":\"I\",\n\t\"Ỉ\":\"I\",\n\t\"Ȋ\":\"I\",\n\t\"Ī\":\"I\",\n\t\"Į\":\"I\",\n\t\"Ɨ\":\"I\",\n\t\"Ĩ\":\"I\",\n\t\"Ḭ\":\"I\",\n\t\"Ꝺ\":\"D\",\n\t\"Ꝼ\":\"F\",\n\t\"Ᵹ\":\"G\",\n\t\"Ꞃ\":\"R\",\n\t\"Ꞅ\":\"S\",\n\t\"Ꞇ\":\"T\",\n\t\"Ꝭ\":\"IS\",\n\t\"Ĵ\":\"J\",\n\t\"Ɉ\":\"J\",\n\t\"Ḱ\":\"K\",\n\t\"Ǩ\":\"K\",\n\t\"Ķ\":\"K\",\n\t\"Ⱪ\":\"K\",\n\t\"Ꝃ\":\"K\",\n\t\"Ḳ\":\"K\",\n\t\"Ƙ\":\"K\",\n\t\"Ḵ\":\"K\",\n\t\"Ꝁ\":\"K\",\n\t\"Ꝅ\":\"K\",\n\t\"Ĺ\":\"L\",\n\t\"Ƚ\":\"L\",\n\t\"Ľ\":\"L\",\n\t\"Ļ\":\"L\",\n\t\"Ḽ\":\"L\",\n\t\"Ḷ\":\"L\",\n\t\"Ḹ\":\"L\",\n\t\"Ⱡ\":\"L\",\n\t\"Ꝉ\":\"L\",\n\t\"Ḻ\":\"L\",\n\t\"Ŀ\":\"L\",\n\t\"Ɫ\":\"L\",\n\t\"Lj\":\"L\",\n\t\"Ł\":\"L\",\n\t\"LJ\":\"LJ\",\n\t\"Ḿ\":\"M\",\n\t\"Ṁ\":\"M\",\n\t\"Ṃ\":\"M\",\n\t\"Ɱ\":\"M\",\n\t\"Ń\":\"N\",\n\t\"Ň\":\"N\",\n\t\"Ņ\":\"N\",\n\t\"Ṋ\":\"N\",\n\t\"Ṅ\":\"N\",\n\t\"Ṇ\":\"N\",\n\t\"Ǹ\":\"N\",\n\t\"Ɲ\":\"N\",\n\t\"Ṉ\":\"N\",\n\t\"Ƞ\":\"N\",\n\t\"Nj\":\"N\",\n\t\"Ñ\":\"N\",\n\t\"NJ\":\"NJ\",\n\t\"Ó\":\"O\",\n\t\"Ŏ\":\"O\",\n\t\"Ǒ\":\"O\",\n\t\"Ô\":\"O\",\n\t\"Ố\":\"O\",\n\t\"Ộ\":\"O\",\n\t\"Ồ\":\"O\",\n\t\"Ổ\":\"O\",\n\t\"Ỗ\":\"O\",\n\t\"Ö\":\"O\",\n\t\"Ȫ\":\"O\",\n\t\"Ȯ\":\"O\",\n\t\"Ȱ\":\"O\",\n\t\"Ọ\":\"O\",\n\t\"Ő\":\"O\",\n\t\"Ȍ\":\"O\",\n\t\"Ò\":\"O\",\n\t\"Ỏ\":\"O\",\n\t\"Ơ\":\"O\",\n\t\"Ớ\":\"O\",\n\t\"Ợ\":\"O\",\n\t\"Ờ\":\"O\",\n\t\"Ở\":\"O\",\n\t\"Ỡ\":\"O\",\n\t\"Ȏ\":\"O\",\n\t\"Ꝋ\":\"O\",\n\t\"Ꝍ\":\"O\",\n\t\"Ō\":\"O\",\n\t\"Ṓ\":\"O\",\n\t\"Ṑ\":\"O\",\n\t\"Ɵ\":\"O\",\n\t\"Ǫ\":\"O\",\n\t\"Ǭ\":\"O\",\n\t\"Ø\":\"O\",\n\t\"Ǿ\":\"O\",\n\t\"Õ\":\"O\",\n\t\"Ṍ\":\"O\",\n\t\"Ṏ\":\"O\",\n\t\"Ȭ\":\"O\",\n\t\"Ƣ\":\"OI\",\n\t\"Ꝏ\":\"OO\",\n\t\"Ɛ\":\"E\",\n\t\"Ɔ\":\"O\",\n\t\"Ȣ\":\"OU\",\n\t\"Ṕ\":\"P\",\n\t\"Ṗ\":\"P\",\n\t\"Ꝓ\":\"P\",\n\t\"Ƥ\":\"P\",\n\t\"Ꝕ\":\"P\",\n\t\"Ᵽ\":\"P\",\n\t\"Ꝑ\":\"P\",\n\t\"Ꝙ\":\"Q\",\n\t\"Ꝗ\":\"Q\",\n\t\"Ŕ\":\"R\",\n\t\"Ř\":\"R\",\n\t\"Ŗ\":\"R\",\n\t\"Ṙ\":\"R\",\n\t\"Ṛ\":\"R\",\n\t\"Ṝ\":\"R\",\n\t\"Ȑ\":\"R\",\n\t\"Ȓ\":\"R\",\n\t\"Ṟ\":\"R\",\n\t\"Ɍ\":\"R\",\n\t\"Ɽ\":\"R\",\n\t\"Ꜿ\":\"C\",\n\t\"Ǝ\":\"E\",\n\t\"Ś\":\"S\",\n\t\"Ṥ\":\"S\",\n\t\"Š\":\"S\",\n\t\"Ṧ\":\"S\",\n\t\"Ş\":\"S\",\n\t\"Ŝ\":\"S\",\n\t\"Ș\":\"S\",\n\t\"Ṡ\":\"S\",\n\t\"Ṣ\":\"S\",\n\t\"Ṩ\":\"S\",\n\t\"Ť\":\"T\",\n\t\"Ţ\":\"T\",\n\t\"Ṱ\":\"T\",\n\t\"Ț\":\"T\",\n\t\"Ⱦ\":\"T\",\n\t\"Ṫ\":\"T\",\n\t\"Ṭ\":\"T\",\n\t\"Ƭ\":\"T\",\n\t\"Ṯ\":\"T\",\n\t\"Ʈ\":\"T\",\n\t\"Ŧ\":\"T\",\n\t\"Ɐ\":\"A\",\n\t\"Ꞁ\":\"L\",\n\t\"Ɯ\":\"M\",\n\t\"Ʌ\":\"V\",\n\t\"Ꜩ\":\"TZ\",\n\t\"Ú\":\"U\",\n\t\"Ŭ\":\"U\",\n\t\"Ǔ\":\"U\",\n\t\"Û\":\"U\",\n\t\"Ṷ\":\"U\",\n\t\"Ü\":\"U\",\n\t\"Ǘ\":\"U\",\n\t\"Ǚ\":\"U\",\n\t\"Ǜ\":\"U\",\n\t\"Ǖ\":\"U\",\n\t\"Ṳ\":\"U\",\n\t\"Ụ\":\"U\",\n\t\"Ű\":\"U\",\n\t\"Ȕ\":\"U\",\n\t\"Ù\":\"U\",\n\t\"Ủ\":\"U\",\n\t\"Ư\":\"U\",\n\t\"Ứ\":\"U\",\n\t\"Ự\":\"U\",\n\t\"Ừ\":\"U\",\n\t\"Ử\":\"U\",\n\t\"Ữ\":\"U\",\n\t\"Ȗ\":\"U\",\n\t\"Ū\":\"U\",\n\t\"Ṻ\":\"U\",\n\t\"Ų\":\"U\",\n\t\"Ů\":\"U\",\n\t\"Ũ\":\"U\",\n\t\"Ṹ\":\"U\",\n\t\"Ṵ\":\"U\",\n\t\"Ꝟ\":\"V\",\n\t\"Ṿ\":\"V\",\n\t\"Ʋ\":\"V\",\n\t\"Ṽ\":\"V\",\n\t\"Ꝡ\":\"VY\",\n\t\"Ẃ\":\"W\",\n\t\"Ŵ\":\"W\",\n\t\"Ẅ\":\"W\",\n\t\"Ẇ\":\"W\",\n\t\"Ẉ\":\"W\",\n\t\"Ẁ\":\"W\",\n\t\"Ⱳ\":\"W\",\n\t\"Ẍ\":\"X\",\n\t\"Ẋ\":\"X\",\n\t\"Ý\":\"Y\",\n\t\"Ŷ\":\"Y\",\n\t\"Ÿ\":\"Y\",\n\t\"Ẏ\":\"Y\",\n\t\"Ỵ\":\"Y\",\n\t\"Ỳ\":\"Y\",\n\t\"Ƴ\":\"Y\",\n\t\"Ỷ\":\"Y\",\n\t\"Ỿ\":\"Y\",\n\t\"Ȳ\":\"Y\",\n\t\"Ɏ\":\"Y\",\n\t\"Ỹ\":\"Y\",\n\t\"Ź\":\"Z\",\n\t\"Ž\":\"Z\",\n\t\"Ẑ\":\"Z\",\n\t\"Ⱬ\":\"Z\",\n\t\"Ż\":\"Z\",\n\t\"Ẓ\":\"Z\",\n\t\"Ȥ\":\"Z\",\n\t\"Ẕ\":\"Z\",\n\t\"Ƶ\":\"Z\",\n\t\"IJ\":\"IJ\",\n\t\"Œ\":\"OE\",\n\t\"ᴀ\":\"A\",\n\t\"ᴁ\":\"AE\",\n\t\"ʙ\":\"B\",\n\t\"ᴃ\":\"B\",\n\t\"ᴄ\":\"C\",\n\t\"ᴅ\":\"D\",\n\t\"ᴇ\":\"E\",\n\t\"ꜰ\":\"F\",\n\t\"ɢ\":\"G\",\n\t\"ʛ\":\"G\",\n\t\"ʜ\":\"H\",\n\t\"ɪ\":\"I\",\n\t\"ʁ\":\"R\",\n\t\"ᴊ\":\"J\",\n\t\"ᴋ\":\"K\",\n\t\"ʟ\":\"L\",\n\t\"ᴌ\":\"L\",\n\t\"ᴍ\":\"M\",\n\t\"ɴ\":\"N\",\n\t\"ᴏ\":\"O\",\n\t\"ɶ\":\"OE\",\n\t\"ᴐ\":\"O\",\n\t\"ᴕ\":\"OU\",\n\t\"ᴘ\":\"P\",\n\t\"ʀ\":\"R\",\n\t\"ᴎ\":\"N\",\n\t\"ᴙ\":\"R\",\n\t\"ꜱ\":\"S\",\n\t\"ᴛ\":\"T\",\n\t\"ⱻ\":\"E\",\n\t\"ᴚ\":\"R\",\n\t\"ᴜ\":\"U\",\n\t\"ᴠ\":\"V\",\n\t\"ᴡ\":\"W\",\n\t\"ʏ\":\"Y\",\n\t\"ᴢ\":\"Z\",\n\t\"á\":\"a\",\n\t\"ă\":\"a\",\n\t\"ắ\":\"a\",\n\t\"ặ\":\"a\",\n\t\"ằ\":\"a\",\n\t\"ẳ\":\"a\",\n\t\"ẵ\":\"a\",\n\t\"ǎ\":\"a\",\n\t\"â\":\"a\",\n\t\"ấ\":\"a\",\n\t\"ậ\":\"a\",\n\t\"ầ\":\"a\",\n\t\"ẩ\":\"a\",\n\t\"ẫ\":\"a\",\n\t\"ä\":\"a\",\n\t\"ǟ\":\"a\",\n\t\"ȧ\":\"a\",\n\t\"ǡ\":\"a\",\n\t\"ạ\":\"a\",\n\t\"ȁ\":\"a\",\n\t\"à\":\"a\",\n\t\"ả\":\"a\",\n\t\"ȃ\":\"a\",\n\t\"ā\":\"a\",\n\t\"ą\":\"a\",\n\t\"ᶏ\":\"a\",\n\t\"ẚ\":\"a\",\n\t\"å\":\"a\",\n\t\"ǻ\":\"a\",\n\t\"ḁ\":\"a\",\n\t\"ⱥ\":\"a\",\n\t\"ã\":\"a\",\n\t\"ꜳ\":\"aa\",\n\t\"æ\":\"ae\",\n\t\"ǽ\":\"ae\",\n\t\"ǣ\":\"ae\",\n\t\"ꜵ\":\"ao\",\n\t\"ꜷ\":\"au\",\n\t\"ꜹ\":\"av\",\n\t\"ꜻ\":\"av\",\n\t\"ꜽ\":\"ay\",\n\t\"ḃ\":\"b\",\n\t\"ḅ\":\"b\",\n\t\"ɓ\":\"b\",\n\t\"ḇ\":\"b\",\n\t\"ᵬ\":\"b\",\n\t\"ᶀ\":\"b\",\n\t\"ƀ\":\"b\",\n\t\"ƃ\":\"b\",\n\t\"ɵ\":\"o\",\n\t\"ć\":\"c\",\n\t\"č\":\"c\",\n\t\"ç\":\"c\",\n\t\"ḉ\":\"c\",\n\t\"ĉ\":\"c\",\n\t\"ɕ\":\"c\",\n\t\"ċ\":\"c\",\n\t\"ƈ\":\"c\",\n\t\"ȼ\":\"c\",\n\t\"ď\":\"d\",\n\t\"ḑ\":\"d\",\n\t\"ḓ\":\"d\",\n\t\"ȡ\":\"d\",\n\t\"ḋ\":\"d\",\n\t\"ḍ\":\"d\",\n\t\"ɗ\":\"d\",\n\t\"ᶑ\":\"d\",\n\t\"ḏ\":\"d\",\n\t\"ᵭ\":\"d\",\n\t\"ᶁ\":\"d\",\n\t\"đ\":\"d\",\n\t\"ɖ\":\"d\",\n\t\"ƌ\":\"d\",\n\t\"ı\":\"i\",\n\t\"ȷ\":\"j\",\n\t\"ɟ\":\"j\",\n\t\"ʄ\":\"j\",\n\t\"dz\":\"dz\",\n\t\"dž\":\"dz\",\n\t\"é\":\"e\",\n\t\"ĕ\":\"e\",\n\t\"ě\":\"e\",\n\t\"ȩ\":\"e\",\n\t\"ḝ\":\"e\",\n\t\"ê\":\"e\",\n\t\"ế\":\"e\",\n\t\"ệ\":\"e\",\n\t\"ề\":\"e\",\n\t\"ể\":\"e\",\n\t\"ễ\":\"e\",\n\t\"ḙ\":\"e\",\n\t\"ë\":\"e\",\n\t\"ė\":\"e\",\n\t\"ẹ\":\"e\",\n\t\"ȅ\":\"e\",\n\t\"è\":\"e\",\n\t\"ẻ\":\"e\",\n\t\"ȇ\":\"e\",\n\t\"ē\":\"e\",\n\t\"ḗ\":\"e\",\n\t\"ḕ\":\"e\",\n\t\"ⱸ\":\"e\",\n\t\"ę\":\"e\",\n\t\"ᶒ\":\"e\",\n\t\"ɇ\":\"e\",\n\t\"ẽ\":\"e\",\n\t\"ḛ\":\"e\",\n\t\"ꝫ\":\"et\",\n\t\"ḟ\":\"f\",\n\t\"ƒ\":\"f\",\n\t\"ᵮ\":\"f\",\n\t\"ᶂ\":\"f\",\n\t\"ǵ\":\"g\",\n\t\"ğ\":\"g\",\n\t\"ǧ\":\"g\",\n\t\"ģ\":\"g\",\n\t\"ĝ\":\"g\",\n\t\"ġ\":\"g\",\n\t\"ɠ\":\"g\",\n\t\"ḡ\":\"g\",\n\t\"ᶃ\":\"g\",\n\t\"ǥ\":\"g\",\n\t\"ḫ\":\"h\",\n\t\"ȟ\":\"h\",\n\t\"ḩ\":\"h\",\n\t\"ĥ\":\"h\",\n\t\"ⱨ\":\"h\",\n\t\"ḧ\":\"h\",\n\t\"ḣ\":\"h\",\n\t\"ḥ\":\"h\",\n\t\"ɦ\":\"h\",\n\t\"ẖ\":\"h\",\n\t\"ħ\":\"h\",\n\t\"ƕ\":\"hv\",\n\t\"í\":\"i\",\n\t\"ĭ\":\"i\",\n\t\"ǐ\":\"i\",\n\t\"î\":\"i\",\n\t\"ï\":\"i\",\n\t\"ḯ\":\"i\",\n\t\"ị\":\"i\",\n\t\"ȉ\":\"i\",\n\t\"ì\":\"i\",\n\t\"ỉ\":\"i\",\n\t\"ȋ\":\"i\",\n\t\"ī\":\"i\",\n\t\"į\":\"i\",\n\t\"ᶖ\":\"i\",\n\t\"ɨ\":\"i\",\n\t\"ĩ\":\"i\",\n\t\"ḭ\":\"i\",\n\t\"ꝺ\":\"d\",\n\t\"ꝼ\":\"f\",\n\t\"ᵹ\":\"g\",\n\t\"ꞃ\":\"r\",\n\t\"ꞅ\":\"s\",\n\t\"ꞇ\":\"t\",\n\t\"ꝭ\":\"is\",\n\t\"ǰ\":\"j\",\n\t\"ĵ\":\"j\",\n\t\"ʝ\":\"j\",\n\t\"ɉ\":\"j\",\n\t\"ḱ\":\"k\",\n\t\"ǩ\":\"k\",\n\t\"ķ\":\"k\",\n\t\"ⱪ\":\"k\",\n\t\"ꝃ\":\"k\",\n\t\"ḳ\":\"k\",\n\t\"ƙ\":\"k\",\n\t\"ḵ\":\"k\",\n\t\"ᶄ\":\"k\",\n\t\"ꝁ\":\"k\",\n\t\"ꝅ\":\"k\",\n\t\"ĺ\":\"l\",\n\t\"ƚ\":\"l\",\n\t\"ɬ\":\"l\",\n\t\"ľ\":\"l\",\n\t\"ļ\":\"l\",\n\t\"ḽ\":\"l\",\n\t\"ȴ\":\"l\",\n\t\"ḷ\":\"l\",\n\t\"ḹ\":\"l\",\n\t\"ⱡ\":\"l\",\n\t\"ꝉ\":\"l\",\n\t\"ḻ\":\"l\",\n\t\"ŀ\":\"l\",\n\t\"ɫ\":\"l\",\n\t\"ᶅ\":\"l\",\n\t\"ɭ\":\"l\",\n\t\"ł\":\"l\",\n\t\"lj\":\"lj\",\n\t\"ſ\":\"s\",\n\t\"ẜ\":\"s\",\n\t\"ẛ\":\"s\",\n\t\"ẝ\":\"s\",\n\t\"ḿ\":\"m\",\n\t\"ṁ\":\"m\",\n\t\"ṃ\":\"m\",\n\t\"ɱ\":\"m\",\n\t\"ᵯ\":\"m\",\n\t\"ᶆ\":\"m\",\n\t\"ń\":\"n\",\n\t\"ň\":\"n\",\n\t\"ņ\":\"n\",\n\t\"ṋ\":\"n\",\n\t\"ȵ\":\"n\",\n\t\"ṅ\":\"n\",\n\t\"ṇ\":\"n\",\n\t\"ǹ\":\"n\",\n\t\"ɲ\":\"n\",\n\t\"ṉ\":\"n\",\n\t\"ƞ\":\"n\",\n\t\"ᵰ\":\"n\",\n\t\"ᶇ\":\"n\",\n\t\"ɳ\":\"n\",\n\t\"ñ\":\"n\",\n\t\"nj\":\"nj\",\n\t\"ó\":\"o\",\n\t\"ŏ\":\"o\",\n\t\"ǒ\":\"o\",\n\t\"ô\":\"o\",\n\t\"ố\":\"o\",\n\t\"ộ\":\"o\",\n\t\"ồ\":\"o\",\n\t\"ổ\":\"o\",\n\t\"ỗ\":\"o\",\n\t\"ö\":\"o\",\n\t\"ȫ\":\"o\",\n\t\"ȯ\":\"o\",\n\t\"ȱ\":\"o\",\n\t\"ọ\":\"o\",\n\t\"ő\":\"o\",\n\t\"ȍ\":\"o\",\n\t\"ò\":\"o\",\n\t\"ỏ\":\"o\",\n\t\"ơ\":\"o\",\n\t\"ớ\":\"o\",\n\t\"ợ\":\"o\",\n\t\"ờ\":\"o\",\n\t\"ở\":\"o\",\n\t\"ỡ\":\"o\",\n\t\"ȏ\":\"o\",\n\t\"ꝋ\":\"o\",\n\t\"ꝍ\":\"o\",\n\t\"ⱺ\":\"o\",\n\t\"ō\":\"o\",\n\t\"ṓ\":\"o\",\n\t\"ṑ\":\"o\",\n\t\"ǫ\":\"o\",\n\t\"ǭ\":\"o\",\n\t\"ø\":\"o\",\n\t\"ǿ\":\"o\",\n\t\"õ\":\"o\",\n\t\"ṍ\":\"o\",\n\t\"ṏ\":\"o\",\n\t\"ȭ\":\"o\",\n\t\"ƣ\":\"oi\",\n\t\"ꝏ\":\"oo\",\n\t\"ɛ\":\"e\",\n\t\"ᶓ\":\"e\",\n\t\"ɔ\":\"o\",\n\t\"ᶗ\":\"o\",\n\t\"ȣ\":\"ou\",\n\t\"ṕ\":\"p\",\n\t\"ṗ\":\"p\",\n\t\"ꝓ\":\"p\",\n\t\"ƥ\":\"p\",\n\t\"ᵱ\":\"p\",\n\t\"ᶈ\":\"p\",\n\t\"ꝕ\":\"p\",\n\t\"ᵽ\":\"p\",\n\t\"ꝑ\":\"p\",\n\t\"ꝙ\":\"q\",\n\t\"ʠ\":\"q\",\n\t\"ɋ\":\"q\",\n\t\"ꝗ\":\"q\",\n\t\"ŕ\":\"r\",\n\t\"ř\":\"r\",\n\t\"ŗ\":\"r\",\n\t\"ṙ\":\"r\",\n\t\"ṛ\":\"r\",\n\t\"ṝ\":\"r\",\n\t\"ȑ\":\"r\",\n\t\"ɾ\":\"r\",\n\t\"ᵳ\":\"r\",\n\t\"ȓ\":\"r\",\n\t\"ṟ\":\"r\",\n\t\"ɼ\":\"r\",\n\t\"ᵲ\":\"r\",\n\t\"ᶉ\":\"r\",\n\t\"ɍ\":\"r\",\n\t\"ɽ\":\"r\",\n\t\"ↄ\":\"c\",\n\t\"ꜿ\":\"c\",\n\t\"ɘ\":\"e\",\n\t\"ɿ\":\"r\",\n\t\"ś\":\"s\",\n\t\"ṥ\":\"s\",\n\t\"š\":\"s\",\n\t\"ṧ\":\"s\",\n\t\"ş\":\"s\",\n\t\"ŝ\":\"s\",\n\t\"ș\":\"s\",\n\t\"ṡ\":\"s\",\n\t\"ṣ\":\"s\",\n\t\"ṩ\":\"s\",\n\t\"ʂ\":\"s\",\n\t\"ᵴ\":\"s\",\n\t\"ᶊ\":\"s\",\n\t\"ȿ\":\"s\",\n\t\"ɡ\":\"g\",\n\t\"ᴑ\":\"o\",\n\t\"ᴓ\":\"o\",\n\t\"ᴝ\":\"u\",\n\t\"ť\":\"t\",\n\t\"ţ\":\"t\",\n\t\"ṱ\":\"t\",\n\t\"ț\":\"t\",\n\t\"ȶ\":\"t\",\n\t\"ẗ\":\"t\",\n\t\"ⱦ\":\"t\",\n\t\"ṫ\":\"t\",\n\t\"ṭ\":\"t\",\n\t\"ƭ\":\"t\",\n\t\"ṯ\":\"t\",\n\t\"ᵵ\":\"t\",\n\t\"ƫ\":\"t\",\n\t\"ʈ\":\"t\",\n\t\"ŧ\":\"t\",\n\t\"ᵺ\":\"th\",\n\t\"ɐ\":\"a\",\n\t\"ᴂ\":\"ae\",\n\t\"ǝ\":\"e\",\n\t\"ᵷ\":\"g\",\n\t\"ɥ\":\"h\",\n\t\"ʮ\":\"h\",\n\t\"ʯ\":\"h\",\n\t\"ᴉ\":\"i\",\n\t\"ʞ\":\"k\",\n\t\"ꞁ\":\"l\",\n\t\"ɯ\":\"m\",\n\t\"ɰ\":\"m\",\n\t\"ᴔ\":\"oe\",\n\t\"ɹ\":\"r\",\n\t\"ɻ\":\"r\",\n\t\"ɺ\":\"r\",\n\t\"ⱹ\":\"r\",\n\t\"ʇ\":\"t\",\n\t\"ʌ\":\"v\",\n\t\"ʍ\":\"w\",\n\t\"ʎ\":\"y\",\n\t\"ꜩ\":\"tz\",\n\t\"ú\":\"u\",\n\t\"ŭ\":\"u\",\n\t\"ǔ\":\"u\",\n\t\"û\":\"u\",\n\t\"ṷ\":\"u\",\n\t\"ü\":\"u\",\n\t\"ǘ\":\"u\",\n\t\"ǚ\":\"u\",\n\t\"ǜ\":\"u\",\n\t\"ǖ\":\"u\",\n\t\"ṳ\":\"u\",\n\t\"ụ\":\"u\",\n\t\"ű\":\"u\",\n\t\"ȕ\":\"u\",\n\t\"ù\":\"u\",\n\t\"ủ\":\"u\",\n\t\"ư\":\"u\",\n\t\"ứ\":\"u\",\n\t\"ự\":\"u\",\n\t\"ừ\":\"u\",\n\t\"ử\":\"u\",\n\t\"ữ\":\"u\",\n\t\"ȗ\":\"u\",\n\t\"ū\":\"u\",\n\t\"ṻ\":\"u\",\n\t\"ų\":\"u\",\n\t\"ᶙ\":\"u\",\n\t\"ů\":\"u\",\n\t\"ũ\":\"u\",\n\t\"ṹ\":\"u\",\n\t\"ṵ\":\"u\",\n\t\"ᵫ\":\"ue\",\n\t\"ꝸ\":\"um\",\n\t\"ⱴ\":\"v\",\n\t\"ꝟ\":\"v\",\n\t\"ṿ\":\"v\",\n\t\"ʋ\":\"v\",\n\t\"ᶌ\":\"v\",\n\t\"ⱱ\":\"v\",\n\t\"ṽ\":\"v\",\n\t\"ꝡ\":\"vy\",\n\t\"ẃ\":\"w\",\n\t\"ŵ\":\"w\",\n\t\"ẅ\":\"w\",\n\t\"ẇ\":\"w\",\n\t\"ẉ\":\"w\",\n\t\"ẁ\":\"w\",\n\t\"ⱳ\":\"w\",\n\t\"ẘ\":\"w\",\n\t\"ẍ\":\"x\",\n\t\"ẋ\":\"x\",\n\t\"ᶍ\":\"x\",\n\t\"ý\":\"y\",\n\t\"ŷ\":\"y\",\n\t\"ÿ\":\"y\",\n\t\"ẏ\":\"y\",\n\t\"ỵ\":\"y\",\n\t\"ỳ\":\"y\",\n\t\"ƴ\":\"y\",\n\t\"ỷ\":\"y\",\n\t\"ỿ\":\"y\",\n\t\"ȳ\":\"y\",\n\t\"ẙ\":\"y\",\n\t\"ɏ\":\"y\",\n\t\"ỹ\":\"y\",\n\t\"ź\":\"z\",\n\t\"ž\":\"z\",\n\t\"ẑ\":\"z\",\n\t\"ʑ\":\"z\",\n\t\"ⱬ\":\"z\",\n\t\"ż\":\"z\",\n\t\"ẓ\":\"z\",\n\t\"ȥ\":\"z\",\n\t\"ẕ\":\"z\",\n\t\"ᵶ\":\"z\",\n\t\"ᶎ\":\"z\",\n\t\"ʐ\":\"z\",\n\t\"ƶ\":\"z\",\n\t\"ɀ\":\"z\",\n\t\"ff\":\"ff\",\n\t\"ffi\":\"ffi\",\n\t\"ffl\":\"ffl\",\n\t\"fi\":\"fi\",\n\t\"fl\":\"fl\",\n\t\"ij\":\"ij\",\n\t\"œ\":\"oe\",\n\t\"st\":\"st\",\n\t\"ₐ\":\"a\",\n\t\"ₑ\":\"e\",\n\t\"ᵢ\":\"i\",\n\t\"ⱼ\":\"j\",\n\t\"ₒ\":\"o\",\n\t\"ᵣ\":\"r\",\n\t\"ᵤ\":\"u\",\n\t\"ᵥ\":\"v\",\n\t\"ₓ\":\"x\",\n\t\"Ё\":\"YO\",\n\t\"Й\":\"I\",\n\t\"Ц\":\"TS\",\n\t\"У\":\"U\",\n\t\"К\":\"K\",\n\t\"Е\":\"E\",\n\t\"Н\":\"N\",\n\t\"Г\":\"G\",\n\t\"Ш\":\"SH\",\n\t\"Щ\":\"SCH\",\n\t\"З\":\"Z\",\n\t\"Х\":\"H\",\n\t\"Ъ\":\"'\",\n\t\"ё\":\"yo\",\n\t\"й\":\"i\",\n\t\"ц\":\"ts\",\n\t\"у\":\"u\",\n\t\"к\":\"k\",\n\t\"е\":\"e\",\n\t\"н\":\"n\",\n\t\"г\":\"g\",\n\t\"ш\":\"sh\",\n\t\"щ\":\"sch\",\n\t\"з\":\"z\",\n\t\"х\":\"h\",\n\t\"ъ\":\"'\",\n\t\"Ф\":\"F\",\n\t\"Ы\":\"I\",\n\t\"В\":\"V\",\n\t\"А\":\"a\",\n\t\"П\":\"P\",\n\t\"Р\":\"R\",\n\t\"О\":\"O\",\n\t\"Л\":\"L\",\n\t\"Д\":\"D\",\n\t\"Ж\":\"ZH\",\n\t\"Э\":\"E\",\n\t\"ф\":\"f\",\n\t\"ы\":\"i\",\n\t\"в\":\"v\",\n\t\"а\":\"a\",\n\t\"п\":\"p\",\n\t\"р\":\"r\",\n\t\"о\":\"o\",\n\t\"л\":\"l\",\n\t\"д\":\"d\",\n\t\"ж\":\"zh\",\n\t\"э\":\"e\",\n\t\"Я\":\"Ya\",\n\t\"Ч\":\"CH\",\n\t\"С\":\"S\",\n\t\"М\":\"M\",\n\t\"И\":\"I\",\n\t\"Т\":\"T\",\n\t\"Ь\":\"'\",\n\t\"Б\":\"B\",\n\t\"Ю\":\"YU\",\n\t\"я\":\"ya\",\n\t\"ч\":\"ch\",\n\t\"с\":\"s\",\n\t\"м\":\"m\",\n\t\"и\":\"i\",\n\t\"т\":\"t\",\n\t\"ь\":\"'\",\n\t\"б\":\"b\",\n\t\"ю\":\"yu\"\n};\n\nexports.transliterate = function(str) {\n\treturn str.replace(/[^A-Za-z0-9\\[\\] ]/g,function(ch) {\n\t\treturn exports.transliterationPairs[ch] || ch\n\t});\n};\n\nexports.transliterateToSafeASCII = function(str) {\n\treturn str.replace(/[^\\x00-\\x7F]/g,function(ch) {\n\t\treturn exports.transliterationPairs[ch] || \"\"\n\t});\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "utils"
        },
        "$:/core/modules/utils/utils.js": {
            "title": "$:/core/modules/utils/utils.js",
            "text": "/*\\\ntitle: $:/core/modules/utils/utils.js\ntype: application/javascript\nmodule-type: utils\n\nVarious static utility functions.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar base64utf8 = require(\"$:/core/modules/utils/base64-utf8/base64-utf8.module.js\");\n\n/*\nDisplay a message, in colour if we're on a terminal\n*/\nexports.log = function(text,colour) {\n\tconsole.log($tw.node ? exports.terminalColour(colour) + text + exports.terminalColour() : text);\n};\n\nexports.terminalColour = function(colour) {\n\tif(!$tw.browser && $tw.node && process.stdout.isTTY) {\n\t\tif(colour) {\n\t\t\tvar code = exports.terminalColourLookup[colour];\n\t\t\tif(code) {\n\t\t\t\treturn \"\\x1b[\" + code + \"m\";\n\t\t\t}\n\t\t} else {\n\t\t\treturn \"\\x1b[0m\"; // Cancel colour\n\t\t}\n\t}\n\treturn \"\";\n};\n\nexports.terminalColourLookup = {\n\t\"black\": \"0;30\",\n\t\"red\": \"0;31\",\n\t\"green\": \"0;32\",\n\t\"brown/orange\": \"0;33\",\n\t\"blue\": \"0;34\",\n\t\"purple\": \"0;35\",\n\t\"cyan\": \"0;36\",\n\t\"light gray\": \"0;37\"\n};\n\n/*\nDisplay a warning, in colour if we're on a terminal\n*/\nexports.warning = function(text) {\n\texports.log(text,\"brown/orange\");\n};\n\n/*\nLog a table of name: value pairs\n*/\nexports.logTable = function(data) {\n\tif(console.table) {\n\t\tconsole.table(data);\n\t} else {\n\t\t$tw.utils.each(data,function(value,name) {\n\t\t\tconsole.log(name + \": \" + value);\n\t\t});\n\t}\n}\n\n/*\nReturn the integer represented by the str (string).\nReturn the dflt (default) parameter if str is not a base-10 number.\n*/\nexports.getInt = function(str,deflt) {\n\tvar i = parseInt(str,10);\n\treturn isNaN(i) ? deflt : i;\n}\n\n/*\nRepeatedly replaces a substring within a string. Like String.prototype.replace, but without any of the default special handling of $ sequences in the replace string\n*/\nexports.replaceString = function(text,search,replace) {\n\treturn text.replace(search,function() {\n\t\treturn replace;\n\t});\n};\n\n/*\nRepeats a string\n*/\nexports.repeat = function(str,count) {\n\tvar result = \"\";\n\tfor(var t=0;t<count;t++) {\n\t\tresult += str;\n\t}\n\treturn result;\n};\n\n/*\nTrim whitespace from the start and end of a string\nThanks to Steven Levithan, http://blog.stevenlevithan.com/archives/faster-trim-javascript\n*/\nexports.trim = function(str) {\n\tif(typeof str === \"string\") {\n\t\treturn str.replace(/^\\s\\s*/, '').replace(/\\s\\s*$/, '');\n\t} else {\n\t\treturn str;\n\t}\n};\n\nexports.trimPrefix = function(str,unwanted) {\n\tif(typeof str === \"string\" && typeof unwanted === \"string\") {\n\t\tif(unwanted === \"\") {\n\t\t\treturn str.replace(/^\\s\\s*/, '');\n\t\t} else {\n\t\t\t// Safely regexp-escape the unwanted text\n\t\t\tunwanted = unwanted.replace(/[\\\\^$*+?.()|[\\]{}]/g, '\\\\$&');\n\t\t\tvar regex = new RegExp('^(' + unwanted + ')+');\n\t\t\treturn str.replace(regex, '');\n\t\t}\n\t} else {\n\t\treturn str;\n\t}\n};\n\nexports.trimSuffix = function(str,unwanted) {\n\tif(typeof str === \"string\" && typeof unwanted === \"string\") {\n\t\tif(unwanted === \"\") {\n\t\t\treturn str.replace(/\\s\\s*$/, '');\n\t\t} else {\n\t\t\t// Safely regexp-escape the unwanted text\n\t\t\tunwanted = unwanted.replace(/[\\\\^$*+?.()|[\\]{}]/g, '\\\\$&');\n\t\t\tvar regex = new RegExp('(' + unwanted + ')+$');\n\t\t\treturn str.replace(regex, '');\n\t\t}\n\t} else {\n\t\treturn str;\n\t}\n};\n\n/*\nConvert a string to sentence case (ie capitalise first letter)\n*/\nexports.toSentenceCase = function(str) {\n\treturn (str || \"\").replace(/^\\S/, function(c) {return c.toUpperCase();});\n}\n\n/*\nConvert a string to title case (ie capitalise each initial letter)\n*/\nexports.toTitleCase = function(str) {\n\treturn (str || \"\").replace(/(^|\\s)\\S/g, function(c) {return c.toUpperCase();});\n}\n\t\n/*\nFind the line break preceding a given position in a string\nReturns position immediately after that line break, or the start of the string\n*/\nexports.findPrecedingLineBreak = function(text,pos) {\n\tvar result = text.lastIndexOf(\"\\n\",pos - 1);\n\tif(result === -1) {\n\t\tresult = 0;\n\t} else {\n\t\tresult++;\n\t\tif(text.charAt(result) === \"\\r\") {\n\t\t\tresult++;\n\t\t}\n\t}\n\treturn result;\n};\n\n/*\nFind the line break following a given position in a string\n*/\nexports.findFollowingLineBreak = function(text,pos) {\n\t// Cut to just past the following line break, or to the end of the text\n\tvar result = text.indexOf(\"\\n\",pos);\n\tif(result === -1) {\n\t\tresult = text.length;\n\t} else {\n\t\tif(text.charAt(result) === \"\\r\") {\n\t\t\tresult++;\n\t\t}\n\t}\n\treturn result;\n};\n\n/*\nReturn the number of keys in an object\n*/\nexports.count = function(object) {\n\treturn Object.keys(object || {}).length;\n};\n\n/*\nDetermine whether an array-item is an object-property\n*/\nexports.hopArray = function(object,array) {\n\tfor(var i=0; i<array.length; i++) {\n\t\tif($tw.utils.hop(object,array[i])) {\n\t\t\treturn true;\n\t\t}\n\t}\n\treturn false;\n};\n\n/*\nRemove entries from an array\n\tarray: array to modify\n\tvalue: a single value to remove, or an array of values to remove\n*/\nexports.removeArrayEntries = function(array,value) {\n\tvar t,p;\n\tif($tw.utils.isArray(value)) {\n\t\tfor(t=0; t<value.length; t++) {\n\t\t\tp = array.indexOf(value[t]);\n\t\t\tif(p !== -1) {\n\t\t\t\tarray.splice(p,1);\n\t\t\t}\n\t\t}\n\t} else {\n\t\tp = array.indexOf(value);\n\t\tif(p !== -1) {\n\t\t\tarray.splice(p,1);\n\t\t}\n\t}\n};\n\n/*\nCheck whether any members of a hashmap are present in another hashmap\n*/\nexports.checkDependencies = function(dependencies,changes) {\n\tvar hit = false;\n\t$tw.utils.each(changes,function(change,title) {\n\t\tif($tw.utils.hop(dependencies,title)) {\n\t\t\thit = true;\n\t\t}\n\t});\n\treturn hit;\n};\n\nexports.extend = function(object /* [, src] */) {\n\t$tw.utils.each(Array.prototype.slice.call(arguments, 1), function(source) {\n\t\tif(source) {\n\t\t\tfor(var property in source) {\n\t\t\t\tobject[property] = source[property];\n\t\t\t}\n\t\t}\n\t});\n\treturn object;\n};\n\nexports.deepCopy = function(object) {\n\tvar result,t;\n\tif($tw.utils.isArray(object)) {\n\t\t// Copy arrays\n\t\tresult = object.slice(0);\n\t} else if(typeof object === \"object\") {\n\t\tresult = {};\n\t\tfor(t in object) {\n\t\t\tif(object[t] !== undefined) {\n\t\t\t\tresult[t] = $tw.utils.deepCopy(object[t]);\n\t\t\t}\n\t\t}\n\t} else {\n\t\tresult = object;\n\t}\n\treturn result;\n};\n\nexports.extendDeepCopy = function(object,extendedProperties) {\n\tvar result = $tw.utils.deepCopy(object),t;\n\tfor(t in extendedProperties) {\n\t\tif(extendedProperties[t] !== undefined) {\n\t\t\tresult[t] = $tw.utils.deepCopy(extendedProperties[t]);\n\t\t}\n\t}\n\treturn result;\n};\n\nexports.deepFreeze = function deepFreeze(object) {\n\tvar property, key;\n\tif(object) {\n\t\tObject.freeze(object);\n\t\tfor(key in object) {\n\t\t\tproperty = object[key];\n\t\t\tif($tw.utils.hop(object,key) && (typeof property === \"object\") && !Object.isFrozen(property)) {\n\t\t\t\tdeepFreeze(property);\n\t\t\t}\n\t\t}\n\t}\n};\n\nexports.slowInSlowOut = function(t) {\n\treturn (1 - ((Math.cos(t * Math.PI) + 1) / 2));\n};\n\nexports.formatDateString = function(date,template) {\n\tvar result = \"\",\n\t\tt = template,\n\t\tmatches = [\n\t\t\t[/^0hh12/, function() {\n\t\t\t\treturn $tw.utils.pad($tw.utils.getHours12(date));\n\t\t\t}],\n\t\t\t[/^wYYYY/, function() {\n\t\t\t\treturn $tw.utils.pad($tw.utils.getYearForWeekNo(date),4);\n\t\t\t}],\n\t\t\t[/^hh12/, function() {\n\t\t\t\treturn $tw.utils.getHours12(date);\n\t\t\t}],\n\t\t\t[/^DDth/, function() {\n\t\t\t\treturn date.getDate() + $tw.utils.getDaySuffix(date);\n\t\t\t}],\n\t\t\t[/^YYYY/, function() {\n\t\t\t\treturn $tw.utils.pad(date.getFullYear(),4);\n\t\t\t}],\n\t\t\t[/^aYYYY/, function() {\n\t\t\t\treturn $tw.utils.pad(Math.abs(date.getFullYear()),4);\n\t\t\t}],\n\t\t\t[/^\\{era:([^,\\|}]*)\\|([^}\\|]*)\\|([^}]*)\\}/, function(match) {\n\t\t\t\tvar year = date.getFullYear();\n\t\t\t\treturn year === 0 ? match[2] : (year < 0 ? match[1] : match[3]);\n\t\t\t}],\n\t\t\t[/^0hh/, function() {\n\t\t\t\treturn $tw.utils.pad(date.getHours());\n\t\t\t}],\n\t\t\t[/^0mm/, function() {\n\t\t\t\treturn $tw.utils.pad(date.getMinutes());\n\t\t\t}],\n\t\t\t[/^0ss/, function() {\n\t\t\t\treturn $tw.utils.pad(date.getSeconds());\n\t\t\t}],\n\t\t\t[/^0XXX/, function() {\n\t\t\t\treturn $tw.utils.pad(date.getMilliseconds(),3);\n\t\t\t}],\n\t\t\t[/^0DD/, function() {\n\t\t\t\treturn $tw.utils.pad(date.getDate());\n\t\t\t}],\n\t\t\t[/^0MM/, function() {\n\t\t\t\treturn $tw.utils.pad(date.getMonth()+1);\n\t\t\t}],\n\t\t\t[/^0WW/, function() {\n\t\t\t\treturn $tw.utils.pad($tw.utils.getWeek(date));\n\t\t\t}],\n\t\t\t[/^ddd/, function() {\n\t\t\t\treturn $tw.language.getString(\"Date/Short/Day/\" + date.getDay());\n\t\t\t}],\n\t\t\t[/^mmm/, function() {\n\t\t\t\treturn $tw.language.getString(\"Date/Short/Month/\" + (date.getMonth() + 1));\n\t\t\t}],\n\t\t\t[/^DDD/, function() {\n\t\t\t\treturn $tw.language.getString(\"Date/Long/Day/\" + date.getDay());\n\t\t\t}],\n\t\t\t[/^MMM/, function() {\n\t\t\t\treturn $tw.language.getString(\"Date/Long/Month/\" + (date.getMonth() + 1));\n\t\t\t}],\n\t\t\t[/^TZD/, function() {\n\t\t\t\tvar tz = date.getTimezoneOffset(),\n\t\t\t\tatz = Math.abs(tz);\n\t\t\t\treturn (tz < 0 ? '+' : '-') + $tw.utils.pad(Math.floor(atz / 60)) + ':' + $tw.utils.pad(atz % 60);\n\t\t\t}],\n\t\t\t[/^wYY/, function() {\n\t\t\t\treturn $tw.utils.pad($tw.utils.getYearForWeekNo(date) - 2000);\n\t\t\t}],\n\t\t\t[/^[ap]m/, function() {\n\t\t\t\treturn $tw.utils.getAmPm(date).toLowerCase();\n\t\t\t}],\n\t\t\t[/^hh/, function() {\n\t\t\t\treturn date.getHours();\n\t\t\t}],\n\t\t\t[/^mm/, function() {\n\t\t\t\treturn date.getMinutes();\n\t\t\t}],\n\t\t\t[/^ss/, function() {\n\t\t\t\treturn date.getSeconds();\n\t\t\t}],\n\t\t\t[/^XXX/, function() {\n\t\t\t\treturn date.getMilliseconds();\n\t\t\t}],\n\t\t\t[/^[AP]M/, function() {\n\t\t\t\treturn $tw.utils.getAmPm(date).toUpperCase();\n\t\t\t}],\n\t\t\t[/^DD/, function() {\n\t\t\t\treturn date.getDate();\n\t\t\t}],\n\t\t\t[/^MM/, function() {\n\t\t\t\treturn date.getMonth() + 1;\n\t\t\t}],\n\t\t\t[/^WW/, function() {\n\t\t\t\treturn $tw.utils.getWeek(date);\n\t\t\t}],\n\t\t\t[/^YY/, function() {\n\t\t\t\treturn $tw.utils.pad(date.getFullYear() - 2000);\n\t\t\t}]\n\t\t];\n\t// If the user wants everything in UTC, shift the datestamp\n\t// Optimize for format string that essentially means\n\t// 'return raw UTC (tiddlywiki style) date string.'\n\tif(t.indexOf(\"[UTC]\") == 0 ) {\n\t\tif(t == \"[UTC]YYYY0MM0DD0hh0mm0ssXXX\")\n\t\t\treturn $tw.utils.stringifyDate(new Date());\n\t\tvar offset = date.getTimezoneOffset() ; // in minutes\n\t\tdate = new Date(date.getTime()+offset*60*1000) ;\n\t\tt = t.substr(5) ;\n\t}\n\twhile(t.length){\n\t\tvar matchString = \"\";\n\t\t$tw.utils.each(matches, function(m) {\n\t\t\tvar match = m[0].exec(t);\n\t\t\tif(match) {\n\t\t\t\tmatchString = m[1].call(null,match);\n\t\t\t\tt = t.substr(match[0].length);\n\t\t\t\treturn false;\n\t\t\t}\n\t\t});\n\t\tif(matchString) {\n\t\t\tresult += matchString;\n\t\t} else {\n\t\t\tresult += t.charAt(0);\n\t\t\tt = t.substr(1);\n\t\t}\n\t}\n\tresult = result.replace(/\\\\(.)/g,\"$1\");\n\treturn result;\n};\n\nexports.getAmPm = function(date) {\n\treturn $tw.language.getString(\"Date/Period/\" + (date.getHours() >= 12 ? \"pm\" : \"am\"));\n};\n\nexports.getDaySuffix = function(date) {\n\treturn $tw.language.getString(\"Date/DaySuffix/\" + date.getDate());\n};\n\nexports.getWeek = function(date) {\n\tvar dt = new Date(date.getTime());\n\tvar d = dt.getDay();\n\tif(d === 0) {\n\t\td = 7; // JavaScript Sun=0, ISO Sun=7\n\t}\n\tdt.setTime(dt.getTime() + (4 - d) * 86400000);// shift day to Thurs of same week to calculate weekNo\n\tvar x = new Date(dt.getFullYear(),0,1);\n\tvar n = Math.floor((dt.getTime() - x.getTime()) / 86400000);\n\treturn Math.floor(n / 7) + 1;\n};\n\nexports.getYearForWeekNo = function(date) {\n\tvar dt = new Date(date.getTime());\n\tvar d = dt.getDay();\n\tif(d === 0) {\n\t\td = 7; // JavaScript Sun=0, ISO Sun=7\n\t}\n\tdt.setTime(dt.getTime() + (4 - d) * 86400000);// shift day to Thurs of same week\n\treturn dt.getFullYear();\n};\n\nexports.getHours12 = function(date) {\n\tvar h = date.getHours();\n\treturn h > 12 ? h-12 : ( h > 0 ? h : 12 );\n};\n\n/*\nConvert a date delta in milliseconds into a string representation of \"23 seconds ago\", \"27 minutes ago\" etc.\n\tdelta: delta in milliseconds\nReturns an object with these members:\n\tdescription: string describing the delta period\n\tupdatePeriod: time in millisecond until the string will be inaccurate\n*/\nexports.getRelativeDate = function(delta) {\n\tvar futurep = false;\n\tif(delta < 0) {\n\t\tdelta = -1 * delta;\n\t\tfuturep = true;\n\t}\n\tvar units = [\n\t\t{name: \"Years\",   duration:      365 * 24 * 60 * 60 * 1000},\n\t\t{name: \"Months\",  duration: (365/12) * 24 * 60 * 60 * 1000},\n\t\t{name: \"Days\",    duration:            24 * 60 * 60 * 1000},\n\t\t{name: \"Hours\",   duration:                 60 * 60 * 1000},\n\t\t{name: \"Minutes\", duration:                      60 * 1000},\n\t\t{name: \"Seconds\", duration:                           1000}\n\t];\n\tfor(var t=0; t<units.length; t++) {\n\t\tvar result = Math.floor(delta / units[t].duration);\n\t\tif(result >= 2) {\n\t\t\treturn {\n\t\t\t\tdelta: delta,\n\t\t\t\tdescription: $tw.language.getString(\n\t\t\t\t\t\"RelativeDate/\" + (futurep ? \"Future\" : \"Past\") + \"/\" + units[t].name,\n\t\t\t\t\t{variables:\n\t\t\t\t\t\t{period: result.toString()}\n\t\t\t\t\t}\n\t\t\t\t),\n\t\t\t\tupdatePeriod: units[t].duration\n\t\t\t};\n\t\t}\n\t}\n\treturn {\n\t\tdelta: delta,\n\t\tdescription: $tw.language.getString(\n\t\t\t\"RelativeDate/\" + (futurep ? \"Future\" : \"Past\") + \"/Second\",\n\t\t\t{variables:\n\t\t\t\t{period: \"1\"}\n\t\t\t}\n\t\t),\n\t\tupdatePeriod: 1000\n\t};\n};\n\n// Convert & to \"&amp;\", < to \"&lt;\", > to \"&gt;\", \" to \"&quot;\"\nexports.htmlEncode = function(s) {\n\tif(s) {\n\t\treturn s.toString().replace(/&/mg,\"&amp;\").replace(/</mg,\"&lt;\").replace(/>/mg,\"&gt;\").replace(/\\\"/mg,\"&quot;\");\n\t} else {\n\t\treturn \"\";\n\t}\n};\n\n// Converts all HTML entities to their character equivalents\nexports.entityDecode = function(s) {\n\tvar converter = String.fromCodePoint || String.fromCharCode,\n\t\te = s.substr(1,s.length-2), // Strip the & and the ;\n\t\tc;\n\tif(e.charAt(0) === \"#\") {\n\t\tif(e.charAt(1) === \"x\" || e.charAt(1) === \"X\") {\n\t\t\tc = parseInt(e.substr(2),16);\n\t\t} else {\n\t\t\tc = parseInt(e.substr(1),10);\n\t\t}\n\t\tif(isNaN(c)) {\n\t\t\treturn s;\n\t\t} else {\n\t\t\treturn converter(c);\n\t\t}\n\t} else {\n\t\tc = $tw.config.htmlEntities[e];\n\t\tif(c) {\n\t\t\treturn converter(c);\n\t\t} else {\n\t\t\treturn s; // Couldn't convert it as an entity, just return it raw\n\t\t}\n\t}\n};\n\nexports.unescapeLineBreaks = function(s) {\n\treturn s.replace(/\\\\n/mg,\"\\n\").replace(/\\\\b/mg,\" \").replace(/\\\\s/mg,\"\\\\\").replace(/\\r/mg,\"\");\n};\n\n/*\n * Returns an escape sequence for given character. Uses \\x for characters <=\n * 0xFF to save space, \\u for the rest.\n *\n * The code needs to be in sync with th code template in the compilation\n * function for \"action\" nodes.\n */\n// Copied from peg.js, thanks to David Majda\nexports.escape = function(ch) {\n\tvar charCode = ch.charCodeAt(0);\n\tif(charCode <= 0xFF) {\n\t\treturn '\\\\x' + $tw.utils.pad(charCode.toString(16).toUpperCase());\n\t} else {\n\t\treturn '\\\\u' + $tw.utils.pad(charCode.toString(16).toUpperCase(),4);\n\t}\n};\n\n// Turns a string into a legal JavaScript string\n// Copied from peg.js, thanks to David Majda\nexports.stringify = function(s, rawUnicode) {\n\t/*\n\t* ECMA-262, 5th ed., 7.8.4: All characters may appear literally in a string\n\t* literal except for the closing quote character, backslash, carriage return,\n\t* line separator, paragraph separator, and line feed. Any character may\n\t* appear in the form of an escape sequence.\n\t*\n\t* For portability, we also escape all non-ASCII characters.\n\t*/\n\tvar regex = rawUnicode ? /[\\x00-\\x1f]/g : /[\\x00-\\x1f\\x80-\\uFFFF]/g;\n\treturn (s || \"\")\n\t\t.replace(/\\\\/g, '\\\\\\\\')            // backslash\n\t\t.replace(/\"/g, '\\\\\"')              // double quote character\n\t\t.replace(/'/g, \"\\\\'\")              // single quote character\n\t\t.replace(/\\r/g, '\\\\r')             // carriage return\n\t\t.replace(/\\n/g, '\\\\n')             // line feed\n\t\t.replace(regex, exports.escape);   // non-ASCII characters\n};\n\n// Turns a string into a legal JSON string\n// Derived from peg.js, thanks to David Majda\nexports.jsonStringify = function(s, rawUnicode) {\n\t// See http://www.json.org/\n\tvar regex = rawUnicode ? /[\\x00-\\x1f]/g : /[\\x00-\\x1f\\x80-\\uFFFF]/g;\n\treturn (s || \"\")\n\t\t.replace(/\\\\/g, '\\\\\\\\')            // backslash\n\t\t.replace(/\"/g, '\\\\\"')              // double quote character\n\t\t.replace(/\\r/g, '\\\\r')             // carriage return\n\t\t.replace(/\\n/g, '\\\\n')             // line feed\n\t\t.replace(/\\x08/g, '\\\\b')           // backspace\n\t\t.replace(/\\x0c/g, '\\\\f')           // formfeed\n\t\t.replace(/\\t/g, '\\\\t')             // tab\n\t\t.replace(regex,function(s) {\n\t\t\treturn '\\\\u' + $tw.utils.pad(s.charCodeAt(0).toString(16).toUpperCase(),4);\n\t\t}); // non-ASCII characters\n};\n\n/*\nEscape the RegExp special characters with a preceding backslash\n*/\nexports.escapeRegExp = function(s) {\n    return s.replace(/[\\-\\/\\\\\\^\\$\\*\\+\\?\\.\\(\\)\\|\\[\\]\\{\\}]/g, '\\\\$&');\n};\n\n// Checks whether a link target is external, i.e. not a tiddler title\nexports.isLinkExternal = function(to) {\n\tvar externalRegExp = /^(?:file|http|https|mailto|ftp|irc|news|data|skype):[^\\s<>{}\\[\\]`|\"\\\\^]+(?:\\/|\\b)/i;\n\treturn externalRegExp.test(to);\n};\n\nexports.nextTick = function(fn) {\n/*global window: false */\n\tif(typeof process === \"undefined\") {\n\t\t// Apparently it would be faster to use postMessage - http://dbaron.org/log/20100309-faster-timeouts\n\t\twindow.setTimeout(fn,4);\n\t} else {\n\t\tprocess.nextTick(fn);\n\t}\n};\n\n/*\nConvert a hyphenated CSS property name into a camel case one\n*/\nexports.unHyphenateCss = function(propName) {\n\treturn propName.replace(/-([a-z])/gi, function(match0,match1) {\n\t\treturn match1.toUpperCase();\n\t});\n};\n\n/*\nConvert a camelcase CSS property name into a dashed one (\"backgroundColor\" --> \"background-color\")\n*/\nexports.hyphenateCss = function(propName) {\n\treturn propName.replace(/([A-Z])/g, function(match0,match1) {\n\t\treturn \"-\" + match1.toLowerCase();\n\t});\n};\n\n/*\nParse a text reference of one of these forms:\n* title\n* !!field\n* title!!field\n* title##index\n* etc\nReturns an object with the following fields, all optional:\n* title: tiddler title\n* field: tiddler field name\n* index: JSON property index\n*/\nexports.parseTextReference = function(textRef) {\n\t// Separate out the title, field name and/or JSON indices\n\tvar reTextRef = /(?:(.*?)!!(.+))|(?:(.*?)##(.+))|(.*)/mg,\n\t\tmatch = reTextRef.exec(textRef),\n\t\tresult = {};\n\tif(match && reTextRef.lastIndex === textRef.length) {\n\t\t// Return the parts\n\t\tif(match[1]) {\n\t\t\tresult.title = match[1];\n\t\t}\n\t\tif(match[2]) {\n\t\t\tresult.field = match[2];\n\t\t}\n\t\tif(match[3]) {\n\t\t\tresult.title = match[3];\n\t\t}\n\t\tif(match[4]) {\n\t\t\tresult.index = match[4];\n\t\t}\n\t\tif(match[5]) {\n\t\t\tresult.title = match[5];\n\t\t}\n\t} else {\n\t\t// If we couldn't parse it\n\t\tresult.title = textRef\n\t}\n\treturn result;\n};\n\n/*\nChecks whether a string is a valid fieldname\n*/\nexports.isValidFieldName = function(name) {\n\tif(!name || typeof name !== \"string\") {\n\t\treturn false;\n\t}\n\tname = name.toLowerCase().trim();\n\tvar fieldValidatorRegEx = /^[a-z0-9\\-\\._]+$/mg;\n\treturn fieldValidatorRegEx.test(name);\n};\n\n/*\nExtract the version number from the meta tag or from the boot file\n*/\n\n// Browser version\nexports.extractVersionInfo = function() {\n\tif($tw.packageInfo) {\n\t\treturn $tw.packageInfo.version;\n\t} else {\n\t\tvar metatags = document.getElementsByTagName(\"meta\");\n\t\tfor(var t=0; t<metatags.length; t++) {\n\t\t\tvar m = metatags[t];\n\t\t\tif(m.name === \"tiddlywiki-version\") {\n\t\t\t\treturn m.content;\n\t\t\t}\n\t\t}\n\t}\n\treturn null;\n};\n\n/*\nGet the animation duration in ms\n*/\nexports.getAnimationDuration = function() {\n\treturn parseInt($tw.wiki.getTiddlerText(\"$:/config/AnimationDuration\",\"400\"),10) || 0;\n};\n\n/*\nHash a string to a number\nDerived from http://stackoverflow.com/a/15710692\n*/\nexports.hashString = function(str) {\n\treturn str.split(\"\").reduce(function(a,b) {\n\t\ta = ((a << 5) - a) + b.charCodeAt(0);\n\t\treturn a & a;\n\t},0);\n};\n\n/*\nDecode a base64 string\n*/\nexports.base64Decode = function(string64) {\n\treturn base64utf8.base64.decode.call(base64utf8,string64);\n};\n\n/*\nEncode a string to base64\n*/\nexports.base64Encode = function(string64) {\n\treturn base64utf8.base64.encode.call(base64utf8,string64);\n};\n\n/*\nConvert a hashmap into a tiddler dictionary format sequence of name:value pairs\n*/\nexports.makeTiddlerDictionary = function(data) {\n\tvar output = [];\n\tfor(var name in data) {\n\t\toutput.push(name + \": \" + data[name]);\n\t}\n\treturn output.join(\"\\n\");\n};\n\n/*\nHigh resolution microsecond timer for profiling\n*/\nexports.timer = function(base) {\n\tvar m;\n\tif($tw.node) {\n\t\tvar r = process.hrtime();\n\t\tm =  r[0] * 1e3 + (r[1] / 1e6);\n\t} else if(window.performance) {\n\t\tm = performance.now();\n\t} else {\n\t\tm = Date.now();\n\t}\n\tif(typeof base !== \"undefined\") {\n\t\tm = m - base;\n\t}\n\treturn m;\n};\n\n/*\nConvert text and content type to a data URI\n*/\nexports.makeDataUri = function(text,type,_canonical_uri) {\n\ttype = type || \"text/vnd.tiddlywiki\";\n\tvar typeInfo = $tw.config.contentTypeInfo[type] || $tw.config.contentTypeInfo[\"text/plain\"],\n\t\tisBase64 = typeInfo.encoding === \"base64\",\n\t\tparts = [];\n\tif(_canonical_uri) {\n\t\tparts.push(_canonical_uri);\n\t} else {\n\t\tparts.push(\"data:\");\n\t\tparts.push(type);\n\t\tparts.push(isBase64 ? \";base64\" : \"\");\n\t\tparts.push(\",\");\n\t\tparts.push(isBase64 ? text : encodeURIComponent(text));\t\t\n\t}\n\treturn parts.join(\"\");\n};\n\n/*\nUseful for finding out the fully escaped CSS selector equivalent to a given tag. For example:\n\n$tw.utils.tagToCssSelector(\"$:/tags/Stylesheet\") --> tc-tagged-\\%24\\%3A\\%2Ftags\\%2FStylesheet\n*/\nexports.tagToCssSelector = function(tagName) {\n\treturn \"tc-tagged-\" + encodeURIComponent(tagName).replace(/[!\"#$%&'()*+,\\-./:;<=>?@[\\\\\\]^`{\\|}~,]/mg,function(c) {\n\t\treturn \"\\\\\" + c;\n\t});\n};\n\n/*\nIE does not have sign function\n*/\nexports.sign = Math.sign || function(x) {\n\tx = +x; // convert to a number\n\tif (x === 0 || isNaN(x)) {\n\t\treturn x;\n\t}\n\treturn x > 0 ? 1 : -1;\n};\n\n/*\nIE does not have an endsWith function\n*/\nexports.strEndsWith = function(str,ending,position) {\n\tif(str.endsWith) {\n\t\treturn str.endsWith(ending,position);\n\t} else {\n\t\tif (typeof position !== 'number' || !isFinite(position) || Math.floor(position) !== position || position > str.length) {\n\t\t\tposition = str.length;\n\t\t}\n\t\tposition -= ending.length;\n\t\tvar lastIndex = str.indexOf(ending, position);\n\t\treturn lastIndex !== -1 && lastIndex === position;\n\t}\n};\n\n/*\nReturn system information useful for debugging\n*/\nexports.getSystemInfo = function(str,ending,position) {\n\tvar results = [],\n\t\tsave = function(desc,value) {\n\t\t\tresults.push(desc + \": \" + value);\n\t\t};\n\tif($tw.browser) {\n\t\tsave(\"User Agent\",navigator.userAgent);\n\t\tsave(\"Online Status\",window.navigator.onLine);\n\t}\n\tif($tw.node) {\n\t\tsave(\"Node Version\",process.version);\n\t}\n\treturn results.join(\"\\n\");\n};\n\nexports.parseNumber = function(str) {\n\treturn parseFloat(str) || 0;\n};\n\nexports.parseInt = function(str) {\n\treturn parseInt(str,10) || 0;\n};\n\nexports.stringifyNumber = function(num) {\n\treturn num + \"\";\n};\n\nexports.makeCompareFunction = function(type,options) {\n\toptions = options || {};\n\tvar gt = options.invert ? -1 : +1,\n\t\tlt = options.invert ? +1 : -1,\n\t\tcompare = function(a,b) {\n\t\t\tif(a > b) {\n\t\t\t\treturn gt ;\n\t\t\t} else if(a < b) {\n\t\t\t\treturn lt;\n\t\t\t} else {\n\t\t\t\treturn 0;\n\t\t\t}\n\t\t},\n\t\ttypes = {\n\t\t\t\"number\": function(a,b) {\n\t\t\t\treturn compare($tw.utils.parseNumber(a),$tw.utils.parseNumber(b));\n\t\t\t},\n\t\t\t\"integer\": function(a,b) {\n\t\t\t\treturn compare($tw.utils.parseInt(a),$tw.utils.parseInt(b));\n\t\t\t},\n\t\t\t\"string\": function(a,b) {\n\t\t\t\treturn compare(\"\" + a,\"\" +b);\n\t\t\t},\n\t\t\t\"date\": function(a,b) {\n\t\t\t\tvar dateA = $tw.utils.parseDate(a),\n\t\t\t\t\tdateB = $tw.utils.parseDate(b);\n\t\t\t\tif(!isFinite(dateA)) {\n\t\t\t\t\tdateA = new Date(0);\n\t\t\t\t}\n\t\t\t\tif(!isFinite(dateB)) {\n\t\t\t\t\tdateB = new Date(0);\n\t\t\t\t}\n\t\t\t\treturn compare(dateA,dateB);\n\t\t\t},\n\t\t\t\"version\": function(a,b) {\n\t\t\t\treturn $tw.utils.compareVersions(a,b);\n\t\t\t}\n\t\t};\n\treturn (types[type] || types[options.defaultType] || types.number);\n};\n\n})();\n",
            "type": "application/javascript",
            "module-type": "utils"
        },
        "$:/core/modules/widgets/action-confirm.js": {
            "title": "$:/core/modules/widgets/action-confirm.js",
            "text": "/*\\\n\ntitle: $:/core/modules/widgets/action-confirm.js\ntype: application/javascript\nmodule-type: widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar ConfirmWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nConfirmWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nConfirmWidget.prototype.render = function(parent,nextSibling) {\n\tthis.computeAttributes();\n\tthis.execute();\n\tthis.parentDomNode = parent;\n\tthis.renderChildren(parent,nextSibling);\n};\n\n/*\nCompute the internal state of the widget\n*/\nConfirmWidget.prototype.execute = function() {\n\tthis.message = this.getAttribute(\"$message\",$tw.language.getString(\"ConfirmAction\"));\n\tthis.prompt = (this.getAttribute(\"$prompt\",\"yes\") == \"no\" ? false : true);\n\tthis.makeChildWidgets();\n};\n\n/*\nRefresh the widget by ensuring our attributes are up to date\n*/\nConfirmWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes[\"$message\"] || changedAttributes[\"$prompt\"]) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t}\n\treturn this.refreshChildren(changedTiddlers);\n};\n\n/*\nInvoke the action associated with this widget\n*/\nConfirmWidget.prototype.invokeAction = function(triggeringWidget,event) {\n\tvar invokeActions = true,\n\t\thandled = true;\n\tif(this.prompt) {\n\t\tinvokeActions = confirm(this.message);\n\t}\n\tif(invokeActions) {\n\t\thandled = this.invokeActions(triggeringWidget,event);\n\t}\n\treturn handled;\n};\n\nConfirmWidget.prototype.allowActionPropagation = function() {\n\treturn false;\n};\n\nexports[\"action-confirm\"] = ConfirmWidget;\n\n})();",
            "type": "application/javascript",
            "module-type": "widget"
        },
        "$:/core/modules/widgets/action-createtiddler.js": {
            "title": "$:/core/modules/widgets/action-createtiddler.js",
            "text": "/*\\\ntitle: $:/core/modules/widgets/action-createtiddler.js\ntype: application/javascript\nmodule-type: widget\n\nAction widget to create a new tiddler with a unique name and specified fields.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw:false, require:false, exports:false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar CreateTiddlerWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nCreateTiddlerWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nCreateTiddlerWidget.prototype.render = function(parent,nextSibling) {\n\tthis.computeAttributes();\n\tthis.execute();\n};\n\n/*\nCompute the internal state of the widget\n*/\nCreateTiddlerWidget.prototype.execute = function() {\n\tthis.actionBaseTitle = this.getAttribute(\"$basetitle\");\n\tthis.hasBase = !!this.actionBaseTitle;\n\tthis.actionSaveTitle = this.getAttribute(\"$savetitle\");\n\tthis.actionSaveDraftTitle = this.getAttribute(\"$savedrafttitle\");\n\tthis.actionTimestamp = this.getAttribute(\"$timestamp\",\"yes\") === \"yes\";\n\t//Following params are new since 5.1.22\n\tthis.actionTemplate = this.getAttribute(\"$template\");\n\tthis.useTemplate = !!this.actionTemplate;\n\tthis.actionOverwrite = this.getAttribute(\"$overwrite\",\"no\");\n\n};\n\n/*\nRefresh the widget by ensuring our attributes are up to date\n*/\nCreateTiddlerWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif($tw.utils.count(changedAttributes) > 0) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t}\n\treturn this.refreshChildren(changedTiddlers);\n};\n\n/*\nInvoke the action associated with this widget\n*/\nCreateTiddlerWidget.prototype.invokeAction = function(triggeringWidget,event) {\n\tvar title = this.wiki.getTiddlerText(\"$:/language/DefaultNewTiddlerTitle\"), // Get the initial new-tiddler title\n\t\tfields = {},\n\t\tcreationFields,\n\t\tmodificationFields;\n\t$tw.utils.each(this.attributes,function(attribute,name) {\n\t\tif(name.charAt(0) !== \"$\") {\n\t\t\tfields[name] = attribute;\n\t\t}\n\t});\n\tif(this.actionTimestamp) {\n\t\tcreationFields = this.wiki.getCreationFields();\n\t\tmodificationFields = this.wiki.getModificationFields();\n\t}\n\tif(this.hasBase && this.actionOverwrite === \"no\") {\n\t\ttitle = this.wiki.generateNewTitle(this.actionBaseTitle);\n\t} else if (this.hasBase && this.actionOverwrite === \"yes\") {\n\t\ttitle = this.actionBaseTitle\n\t}\n\t// NO $basetitle BUT $template parameter is available\n\t// the title MUST be unique, otherwise the template would be overwritten\n\tif (!this.hasBase && this.useTemplate) {\n\t\ttitle = this.wiki.generateNewTitle(this.actionTemplate);\n\t} else if (!this.hasBase && !this.useTemplate) {\n\t\t// If NO $basetitle AND NO $template use initial title\n\t\t// DON'T overwrite any stuff\n\t\ttitle = this.wiki.generateNewTitle(title);\n\t}\n\tvar templateTiddler = this.wiki.getTiddler(this.actionTemplate) || {};\n\tvar tiddler = this.wiki.addTiddler(new $tw.Tiddler(templateTiddler.fields,creationFields,fields,modificationFields,{title: title}));\n\tif(this.actionSaveTitle) {\n\t\tthis.wiki.setTextReference(this.actionSaveTitle,title,this.getVariable(\"currentTiddler\"));\n\t}\n\tif(this.actionSaveDraftTitle) {\n\t\tthis.wiki.setTextReference(this.actionSaveDraftTitle,this.wiki.generateDraftTitle(title),this.getVariable(\"currentTiddler\"));\n\t}\n\treturn true; // Action was invoked\n};\n\nexports[\"action-createtiddler\"] = CreateTiddlerWidget;\n\n})();\n",
            "type": "application/javascript",
            "module-type": "widget"
        },
        "$:/core/modules/widgets/action-deletefield.js": {
            "title": "$:/core/modules/widgets/action-deletefield.js",
            "text": "/*\\\ntitle: $:/core/modules/widgets/action-deletefield.js\ntype: application/javascript\nmodule-type: widget\n\nAction widget to delete fields of a tiddler.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar DeleteFieldWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nDeleteFieldWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nDeleteFieldWidget.prototype.render = function(parent,nextSibling) {\n\tthis.computeAttributes();\n\tthis.execute();\n};\n\n/*\nCompute the internal state of the widget\n*/\nDeleteFieldWidget.prototype.execute = function() {\n\tthis.actionTiddler = this.getAttribute(\"$tiddler\",this.getVariable(\"currentTiddler\"));\n\tthis.actionField = this.getAttribute(\"$field\");\n};\n\n/*\nRefresh the widget by ensuring our attributes are up to date\n*/\nDeleteFieldWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes[\"$tiddler\"]) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t}\n\treturn this.refreshChildren(changedTiddlers);\n};\n\n/*\nInvoke the action associated with this widget\n*/\nDeleteFieldWidget.prototype.invokeAction = function(triggeringWidget,event) {\n\tvar self = this,\n\t\ttiddler = this.wiki.getTiddler(self.actionTiddler),\n\t\tremoveFields = {},\n\t\thasChanged = false;\n\tif(this.actionField && tiddler) {\n\t\tremoveFields[this.actionField] = undefined;\n\t\tif(this.actionField in tiddler.fields) {\n\t\t\thasChanged = true;\n\t\t}\n\t}\n\tif(tiddler) {\n\t\t$tw.utils.each(this.attributes,function(attribute,name) {\n\t\t\tif(name.charAt(0) !== \"$\" && name !== \"title\") {\n\t\t\t\tremoveFields[name] = undefined;\n\t\t\t\thasChanged = true;\n\t\t\t}\n\t\t});\n\t\tif(hasChanged) {\n\t\t\tthis.wiki.addTiddler(new $tw.Tiddler(this.wiki.getCreationFields(),tiddler,removeFields,this.wiki.getModificationFields()));\t\t\t\n\t\t}\n\t}\n\treturn true; // Action was invoked\n};\n\nexports[\"action-deletefield\"] = DeleteFieldWidget;\n\n})();\n",
            "type": "application/javascript",
            "module-type": "widget"
        },
        "$:/core/modules/widgets/action-deletetiddler.js": {
            "title": "$:/core/modules/widgets/action-deletetiddler.js",
            "text": "/*\\\ntitle: $:/core/modules/widgets/action-deletetiddler.js\ntype: application/javascript\nmodule-type: widget\n\nAction widget to delete a tiddler.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar DeleteTiddlerWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nDeleteTiddlerWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nDeleteTiddlerWidget.prototype.render = function(parent,nextSibling) {\n\tthis.computeAttributes();\n\tthis.execute();\n};\n\n/*\nCompute the internal state of the widget\n*/\nDeleteTiddlerWidget.prototype.execute = function() {\n\tthis.actionFilter = this.getAttribute(\"$filter\");\n\tthis.actionTiddler = this.getAttribute(\"$tiddler\");\n};\n\n/*\nRefresh the widget by ensuring our attributes are up to date\n*/\nDeleteTiddlerWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes[\"$filter\"] || changedAttributes[\"$tiddler\"]) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t}\n\treturn this.refreshChildren(changedTiddlers);\n};\n\n/*\nInvoke the action associated with this widget\n*/\nDeleteTiddlerWidget.prototype.invokeAction = function(triggeringWidget,event) {\n\tvar tiddlers = [];\n\tif(this.actionFilter) {\n\t\ttiddlers = this.wiki.filterTiddlers(this.actionFilter,this);\n\t}\n\tif(this.actionTiddler) {\n\t\ttiddlers.push(this.actionTiddler);\n\t}\n\tfor(var t=0; t<tiddlers.length; t++) {\n\t\tthis.wiki.deleteTiddler(tiddlers[t]);\n\t}\n\treturn true; // Action was invoked\n};\n\nexports[\"action-deletetiddler\"] = DeleteTiddlerWidget;\n\n})();\n",
            "type": "application/javascript",
            "module-type": "widget"
        },
        "$:/core/modules/widgets/action-listops.js": {
            "title": "$:/core/modules/widgets/action-listops.js",
            "text": "/*\\\ntitle: $:/core/modules/widgets/action-listops.js\ntype: application/javascript\nmodule-type: widget\n\nAction widget to apply list operations to any tiddler field (defaults to the 'list' field of the current tiddler)\n\n\\*/\n(function() {\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\nvar ActionListopsWidget = function(parseTreeNode, options) {\n\tthis.initialise(parseTreeNode, options);\n};\n/**\n * Inherit from the base widget class\n */\nActionListopsWidget.prototype = new Widget();\n/**\n * Render this widget into the DOM\n */\nActionListopsWidget.prototype.render = function(parent, nextSibling) {\n\tthis.computeAttributes();\n\tthis.execute();\n};\n/**\n * Compute the internal state of the widget\n */\nActionListopsWidget.prototype.execute = function() {\n\t// Get our parameters\n\tthis.target = this.getAttribute(\"$tiddler\", this.getVariable(\n\t\t\"currentTiddler\"));\n\tthis.filter = this.getAttribute(\"$filter\");\n\tthis.subfilter = this.getAttribute(\"$subfilter\");\n\tthis.listField = this.getAttribute(\"$field\", \"list\");\n\tthis.listIndex = this.getAttribute(\"$index\");\n\tthis.filtertags = this.getAttribute(\"$tags\");\n};\n/**\n * \tRefresh the widget by ensuring our attributes are up to date\n */\nActionListopsWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.$tiddler || changedAttributes.$filter ||\n\t\tchangedAttributes.$subfilter || changedAttributes.$field ||\n\t\tchangedAttributes.$index || changedAttributes.$tags) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t}\n\treturn this.refreshChildren(changedTiddlers);\n};\n/**\n * \tInvoke the action associated with this widget\n */\nActionListopsWidget.prototype.invokeAction = function(triggeringWidget,\n\tevent) {\n\t//Apply the specified filters to the lists\n\tvar field = this.listField,\n\t\tindex,\n\t\ttype = \"!!\",\n\t\tlist = this.listField;\n\tif(this.listIndex) {\n\t\tfield = undefined;\n\t\tindex = this.listIndex;\n\t\ttype = \"##\";\n\t\tlist = this.listIndex;\n\t}\n\tif(this.filter) {\n\t\tthis.wiki.setText(this.target, field, index, $tw.utils.stringifyList(\n\t\t\tthis.wiki\n\t\t\t.filterTiddlers(this.filter, this)));\n\t}\n\tif(this.subfilter) {\n\t\tvar subfilter = \"[list[\" + this.target + type + list + \"]] \" + this.subfilter;\n\t\tthis.wiki.setText(this.target, field, index, $tw.utils.stringifyList(\n\t\t\tthis.wiki\n\t\t\t.filterTiddlers(subfilter, this)));\n\t}\n\tif(this.filtertags) {\n\t\tvar tiddler = this.wiki.getTiddler(this.target),\n\t\t\toldtags = tiddler ? (tiddler.fields.tags || []).slice(0) : [],\n\t\t\ttagfilter = \"[list[\" + this.target + \"!!tags]] \" + this.filtertags,\n\t\t\tnewtags = this.wiki.filterTiddlers(tagfilter,this);\n\t\tif($tw.utils.stringifyList(oldtags.sort()) !== $tw.utils.stringifyList(newtags.sort())) {\n\t\t\tthis.wiki.setText(this.target,\"tags\",undefined,$tw.utils.stringifyList(newtags));\t\t\t\n\t\t}\n\t}\n\treturn true; // Action was invoked\n};\n\nexports[\"action-listops\"] = ActionListopsWidget;\n\n})();\n",
            "type": "application/javascript",
            "module-type": "widget"
        },
        "$:/core/modules/widgets/action-log.js": {
            "title": "$:/core/modules/widgets/action-log.js",
            "text": "/*\\\ntitle: $:/core/modules/widgets/action-log.js\ntype: application/javascript\nmodule-type: widget\n\nAction widget to log debug messages\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar LogWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nLogWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nLogWidget.prototype.render = function(parent,nextSibling) {\n\tthis.computeAttributes();\n\tthis.execute();\n};\n\nLogWidget.prototype.execute = function(){\n\tthis.message = this.getAttribute(\"$$message\",\"debug\");\n\tthis.logAll = this.getAttribute(\"$$all\",\"no\") === \"yes\" ? true : false;\n\tthis.filter = this.getAttribute(\"$$filter\");\n}\n\n/*\nRefresh the widget by ensuring our attributes are up to date\n*/\nLogWidget.prototype.refresh = function(changedTiddlers) {\n\tthis.refreshSelf();\n\treturn true;\n};\n\n/*\nInvoke the action associated with this widget\n*/\nLogWidget.prototype.invokeAction = function(triggeringWidget,event) {\n\tthis.log();\n\treturn true; // Action was invoked\n};\n\nLogWidget.prototype.log = function() {\n\tvar data = {},\n\t\tdataCount,\n\t\tallVars = {},\n\t\tfilteredVars;\n\n\t$tw.utils.each(this.attributes,function(attribute,name) {\n\t\tif(name.substring(0,2) !== \"$$\") {\n\t\t\tdata[name] = attribute;\n\t\t}\t\t\n\t});\n\n\tfor(var v in this.variables) {\n\t\tallVars[v] = this.getVariable(v,{defaultValue:\"\"});\n\t}\t\n\tif(this.filter) {\n\t\tfilteredVars = this.wiki.compileFilter(this.filter).call(this.wiki,this.wiki.makeTiddlerIterator(allVars));\n\t\t$tw.utils.each(filteredVars,function(name) {\n\t\t\tdata[name] = allVars[name];\n\t\t});\t\t\n\t}\n\tdataCount = $tw.utils.count(data);\n\n\tconsole.group(this.message);\n\tif(dataCount > 0) {\n\t\t$tw.utils.logTable(data);\n\t}\n\tif(this.logAll || !dataCount) {\n\t\tconsole.groupCollapsed(\"All variables\");\n\t\t$tw.utils.logTable(allVars);\n\t\tconsole.groupEnd();\n\t}\n\tconsole.groupEnd();\n}\n\nexports[\"action-log\"] = LogWidget;\n\n})();\n",
            "type": "application/javascript",
            "module-type": "widget"
        },
        "$:/core/modules/widgets/action-navigate.js": {
            "title": "$:/core/modules/widgets/action-navigate.js",
            "text": "/*\\\ntitle: $:/core/modules/widgets/action-navigate.js\ntype: application/javascript\nmodule-type: widget\n\nAction widget to navigate to a tiddler\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar NavigateWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nNavigateWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nNavigateWidget.prototype.render = function(parent,nextSibling) {\n\tthis.computeAttributes();\n\tthis.execute();\n};\n\n/*\nCompute the internal state of the widget\n*/\nNavigateWidget.prototype.execute = function() {\n\tthis.actionTo = this.getAttribute(\"$to\");\n\tthis.actionScroll = this.getAttribute(\"$scroll\");\n};\n\n/*\nRefresh the widget by ensuring our attributes are up to date\n*/\nNavigateWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes[\"$to\"] || changedAttributes[\"$scroll\"]) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t}\n\treturn this.refreshChildren(changedTiddlers);\n};\n\n/*\nInvoke the action associated with this widget\n*/\nNavigateWidget.prototype.invokeAction = function(triggeringWidget,event) {\n\tevent = event || {};\n\tvar bounds = triggeringWidget && triggeringWidget.getBoundingClientRect && triggeringWidget.getBoundingClientRect(),\n\t\tsuppressNavigation = event.metaKey || event.ctrlKey || (event.button === 1);\n\tif(this.actionScroll === \"yes\") {\n\t\tsuppressNavigation = false;\n\t} else if(this.actionScroll === \"no\") {\n\t\tsuppressNavigation = true;\n\t}\n\tthis.dispatchEvent({\n\t\ttype: \"tm-navigate\",\n\t\tnavigateTo: this.actionTo === undefined ? this.getVariable(\"currentTiddler\") : this.actionTo,\n\t\tnavigateFromTitle: this.getVariable(\"storyTiddler\"),\n\t\tnavigateFromNode: triggeringWidget,\n\t\tnavigateFromClientRect: bounds && { top: bounds.top, left: bounds.left, width: bounds.width, right: bounds.right, bottom: bounds.bottom, height: bounds.height\n\t\t},\n\t\tnavigateSuppressNavigation: suppressNavigation\n\t});\n\treturn true; // Action was invoked\n};\n\nexports[\"action-navigate\"] = NavigateWidget;\n\n})();\n",
            "type": "application/javascript",
            "module-type": "widget"
        },
        "$:/core/modules/widgets/action-popup.js": {
            "title": "$:/core/modules/widgets/action-popup.js",
            "text": "/*\\\ntitle: $:/core/modules/widgets/action-popup.js\ntype: application/javascript\nmodule-type: widget\n\nAction widget to trigger a popup.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar ActionPopupWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nActionPopupWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nActionPopupWidget.prototype.render = function(parent,nextSibling) {\n\tthis.computeAttributes();\n\tthis.execute();\n};\n\n/*\nCompute the internal state of the widget\n*/\nActionPopupWidget.prototype.execute = function() {\n\tthis.actionState = this.getAttribute(\"$state\");\n\tthis.actionCoords = this.getAttribute(\"$coords\");\n};\n\n/*\nRefresh the widget by ensuring our attributes are up to date\n*/\nActionPopupWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes[\"$state\"] || changedAttributes[\"$coords\"]) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t}\n\treturn this.refreshChildren(changedTiddlers);\n};\n\n/*\nInvoke the action associated with this widget\n*/\nActionPopupWidget.prototype.invokeAction = function(triggeringWidget,event) {\n\t// Trigger the popup\n\tvar popupLocationRegExp = /^\\((-?[0-9\\.E]+),(-?[0-9\\.E]+),(-?[0-9\\.E]+),(-?[0-9\\.E]+)\\)$/,\n\t\tmatch = popupLocationRegExp.exec(this.actionCoords || \"\");\n\tif(match) {\n\t\t$tw.popup.triggerPopup({\n\t\t\tdomNode: null,\n\t\t\tdomNodeRect: {\n\t\t\t\tleft: parseFloat(match[1]),\n\t\t\t\ttop: parseFloat(match[2]),\n\t\t\t\twidth: parseFloat(match[3]),\n\t\t\t\theight: parseFloat(match[4])\n\t\t\t},\n\t\t\ttitle: this.actionState,\n\t\t\twiki: this.wiki\n\t\t});\n\t} else {\n\t\t$tw.popup.cancel(0);\n\t}\n\treturn true; // Action was invoked\n};\n\nexports[\"action-popup\"] = ActionPopupWidget;\n\n})();\n",
            "type": "application/javascript",
            "module-type": "widget"
        },
        "$:/core/modules/widgets/action-sendmessage.js": {
            "title": "$:/core/modules/widgets/action-sendmessage.js",
            "text": "/*\\\ntitle: $:/core/modules/widgets/action-sendmessage.js\ntype: application/javascript\nmodule-type: widget\n\nAction widget to send a message\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar SendMessageWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nSendMessageWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nSendMessageWidget.prototype.render = function(parent,nextSibling) {\n\tthis.computeAttributes();\n\tthis.execute();\n};\n\n/*\nCompute the internal state of the widget\n*/\nSendMessageWidget.prototype.execute = function() {\n\tthis.actionMessage = this.getAttribute(\"$message\");\n\tthis.actionParam = this.getAttribute(\"$param\");\n\tthis.actionName = this.getAttribute(\"$name\");\n\tthis.actionValue = this.getAttribute(\"$value\",\"\");\n};\n\n/*\nRefresh the widget by ensuring our attributes are up to date\n*/\nSendMessageWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(Object.keys(changedAttributes).length) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t}\n\treturn this.refreshChildren(changedTiddlers);\n};\n\n/*\nInvoke the action associated with this widget\n*/\nSendMessageWidget.prototype.invokeAction = function(triggeringWidget,event) {\n\t// Get the string parameter\n\tvar param = this.actionParam;\n\t// Assemble the attributes as a hashmap\n\tvar paramObject = Object.create(null);\n\tvar count = 0;\n\t$tw.utils.each(this.attributes,function(attribute,name) {\n\t\tif(name.charAt(0) !== \"$\") {\n\t\t\tparamObject[name] = attribute;\n\t\t\tcount++;\n\t\t}\n\t});\n\t// Add name/value pair if present\n\tif(this.actionName) {\n\t\tparamObject[this.actionName] = this.actionValue;\n\t}\n\t// Dispatch the message\n\tthis.dispatchEvent({\n\t\ttype: this.actionMessage,\n\t\tparam: param,\n\t\tparamObject: paramObject,\n\t\ttiddlerTitle: this.getVariable(\"currentTiddler\"),\n\t\tnavigateFromTitle: this.getVariable(\"storyTiddler\"),\n\t\tevent: event\n\t});\n\treturn true; // Action was invoked\n};\n\nexports[\"action-sendmessage\"] = SendMessageWidget;\n\n})();\n",
            "type": "application/javascript",
            "module-type": "widget"
        },
        "$:/core/modules/widgets/action-setfield.js": {
            "title": "$:/core/modules/widgets/action-setfield.js",
            "text": "/*\\\ntitle: $:/core/modules/widgets/action-setfield.js\ntype: application/javascript\nmodule-type: widget\n\nAction widget to set a single field or index on a tiddler.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar SetFieldWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nSetFieldWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nSetFieldWidget.prototype.render = function(parent,nextSibling) {\n\tthis.computeAttributes();\n\tthis.execute();\n};\n\n/*\nCompute the internal state of the widget\n*/\nSetFieldWidget.prototype.execute = function() {\n\tthis.actionTiddler = this.getAttribute(\"$tiddler\",this.getVariable(\"currentTiddler\"));\n\tthis.actionField = this.getAttribute(\"$field\");\n\tthis.actionIndex = this.getAttribute(\"$index\");\n\tthis.actionValue = this.getAttribute(\"$value\");\n\tthis.actionTimestamp = this.getAttribute(\"$timestamp\",\"yes\") === \"yes\";\n};\n\n/*\nRefresh the widget by ensuring our attributes are up to date\n*/\nSetFieldWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes[\"$tiddler\"] || changedAttributes[\"$field\"] || changedAttributes[\"$index\"] || changedAttributes[\"$value\"]) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t}\n\treturn this.refreshChildren(changedTiddlers);\n};\n\n/*\nInvoke the action associated with this widget\n*/\nSetFieldWidget.prototype.invokeAction = function(triggeringWidget,event) {\n\tvar self = this,\n\t\toptions = {};\n\toptions.suppressTimestamp = !this.actionTimestamp;\n\tif((typeof this.actionField == \"string\") || (typeof this.actionIndex == \"string\")  || (typeof this.actionValue == \"string\")) {\n\t\tthis.wiki.setText(this.actionTiddler,this.actionField,this.actionIndex,this.actionValue,options);\n\t}\n\t$tw.utils.each(this.attributes,function(attribute,name) {\n\t\tif(name.charAt(0) !== \"$\") {\n\t\t\tself.wiki.setText(self.actionTiddler,name,undefined,attribute,options);\n\t\t}\n\t});\n\treturn true; // Action was invoked\n};\n\nexports[\"action-setfield\"] = SetFieldWidget;\n\n})();\n",
            "type": "application/javascript",
            "module-type": "widget"
        },
        "$:/core/modules/widgets/browse.js": {
            "title": "$:/core/modules/widgets/browse.js",
            "text": "/*\\\ntitle: $:/core/modules/widgets/browse.js\ntype: application/javascript\nmodule-type: widget\n\nBrowse widget for browsing for files to import\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar BrowseWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nBrowseWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nBrowseWidget.prototype.render = function(parent,nextSibling) {\n\tvar self = this;\n\t// Remember parent\n\tthis.parentDomNode = parent;\n\t// Compute attributes and execute state\n\tthis.computeAttributes();\n\tthis.execute();\n\t// Create element\n\tvar domNode = this.document.createElement(\"input\");\n\tdomNode.setAttribute(\"type\",\"file\");\n\tif(this.browseMultiple) {\n\t\tdomNode.setAttribute(\"multiple\",\"multiple\");\n\t}\n\tif(this.tooltip) {\n\t\tdomNode.setAttribute(\"title\",this.tooltip);\n\t}\n\t// Nw.js supports \"nwsaveas\" to force a \"save as\" dialogue that allows a new or existing file to be selected\n\tif(this.nwsaveas) {\n\t\tdomNode.setAttribute(\"nwsaveas\",this.nwsaveas);\n\t}\n\tif(this.accept) {\n\t\tdomNode.setAttribute(\"accept\",this.accept);\n\t}\n\t// Nw.js supports \"webkitdirectory\" and \"nwdirectory\" to allow a directory to be selected\n\tif(this.webkitdirectory) {\n\t\tdomNode.setAttribute(\"webkitdirectory\",this.webkitdirectory);\n\t}\n\tif(this.nwdirectory) {\n\t\tdomNode.setAttribute(\"nwdirectory\",this.nwdirectory);\n\t}\n\t// Add a click event handler\n\tdomNode.addEventListener(\"change\",function (event) {\n\t\tif(self.message) {\n\t\t\tself.dispatchEvent({type: self.message, param: self.param, files: event.target.files});\n\t\t} else {\n\t\t\tself.wiki.readFiles(event.target.files,{\n\t\t\t\tcallback: function(tiddlerFieldsArray) {\n\t\t\t\t\tself.dispatchEvent({type: \"tm-import-tiddlers\", param: JSON.stringify(tiddlerFieldsArray)});\n\t\t\t\t},\n\t\t\t\tdeserializer: self.deserializer\n\t\t\t});\n\t\t}\n\t\treturn false;\n\t},false);\n\t// Insert element\n\tparent.insertBefore(domNode,nextSibling);\n\tthis.renderChildren(domNode,null);\n\tthis.domNodes.push(domNode);\n};\n\n/*\nCompute the internal state of the widget\n*/\nBrowseWidget.prototype.execute = function() {\n\tthis.browseMultiple = this.getAttribute(\"multiple\");\n\tthis.deserializer = this.getAttribute(\"deserializer\");\n\tthis.message = this.getAttribute(\"message\");\n\tthis.param = this.getAttribute(\"param\");\n\tthis.tooltip = this.getAttribute(\"tooltip\");\n\tthis.nwsaveas = this.getAttribute(\"nwsaveas\");\n\tthis.accept = this.getAttribute(\"accept\");\n\tthis.webkitdirectory = this.getAttribute(\"webkitdirectory\");\n\tthis.nwdirectory = this.getAttribute(\"nwdirectory\");\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nBrowseWidget.prototype.refresh = function(changedTiddlers) {\n\treturn false;\n};\n\nexports.browse = BrowseWidget;\n\n})();\n",
            "type": "application/javascript",
            "module-type": "widget"
        },
        "$:/core/modules/widgets/button.js": {
            "title": "$:/core/modules/widgets/button.js",
            "text": "/*\\\ntitle: $:/core/modules/widgets/button.js\ntype: application/javascript\nmodule-type: widget\n\nButton widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar ButtonWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nButtonWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nButtonWidget.prototype.render = function(parent,nextSibling) {\n\tvar self = this,\n\t\ttag = \"button\",\n\t\tdomNode;\n\t// Remember parent\n\tthis.parentDomNode = parent;\n\t// Compute attributes and execute state\n\tthis.computeAttributes();\n\tthis.execute();\n\t// Create element\n\tif(this.buttonTag && $tw.config.htmlUnsafeElements.indexOf(this.buttonTag) === -1) {\n\t\ttag = this.buttonTag;\n\t}\n\tdomNode = this.document.createElement(tag);\n\tthis.domNode = domNode;\n\t// Assign classes\n\tvar classes = this[\"class\"].split(\" \") || [],\n\t\tisPoppedUp = (this.popup || this.popupTitle) && this.isPoppedUp();\n\tif(this.selectedClass) {\n\t\tif((this.set || this.setTitle) && this.setTo && this.isSelected()) {\n\t\t\t$tw.utils.pushTop(classes,this.selectedClass.split(\" \"));\n\t\t}\n\t\tif(isPoppedUp) {\n\t\t\t$tw.utils.pushTop(classes,this.selectedClass.split(\" \"));\n\t\t}\n\t}\n\tif(isPoppedUp) {\n\t\t$tw.utils.pushTop(classes,\"tc-popup-handle\");\n\t}\n\tdomNode.className = classes.join(\" \");\n\t// Assign other attributes\n\tif(this.style) {\n\t\tdomNode.setAttribute(\"style\",this.style);\n\t}\n\tif(this.tooltip) {\n\t\tdomNode.setAttribute(\"title\",this.tooltip);\n\t}\n\tif(this[\"aria-label\"]) {\n\t\tdomNode.setAttribute(\"aria-label\",this[\"aria-label\"]);\n\t}\n\t// Set the tabindex\n\tif(this.tabIndex) {\n\t\tdomNode.setAttribute(\"tabindex\",this.tabIndex);\n\t}\n\tif(this.isDisabled === \"yes\") {\n\t\tdomNode.setAttribute(\"disabled\",true);\n\t}\n\t// Add a click event handler\n\tdomNode.addEventListener(\"click\",function (event) {\n\t\tvar handled = false;\n\t\tif(self.invokeActions(self,event)) {\n\t\t\thandled = true;\n\t\t}\n\t\tif(self.to) {\n\t\t\tself.navigateTo(event);\n\t\t\thandled = true;\n\t\t}\n\t\tif(self.message) {\n\t\t\tself.dispatchMessage(event);\n\t\t\thandled = true;\n\t\t}\n\t\tif(self.popup || self.popupTitle) {\n\t\t\tself.triggerPopup(event);\n\t\t\thandled = true;\n\t\t}\n\t\tif(self.set || self.setTitle) {\n\t\t\tself.setTiddler();\n\t\t\thandled = true;\n\t\t}\n\t\tif(self.actions) {\n\t\t\tvar modifierKey = $tw.keyboardManager.getEventModifierKeyDescriptor(event);\n\t\t\tself.invokeActionString(self.actions,self,event,{modifier: modifierKey});\n\t\t}\n\t\tif(handled) {\n\t\t\tevent.preventDefault();\n\t\t\tevent.stopPropagation();\n\t\t}\n\t\treturn handled;\n\t},false);\n\t// Make it draggable if required\n\tif(this.dragTiddler || this.dragFilter) {\n\t\t$tw.utils.makeDraggable({\n\t\t\tdomNode: domNode,\n\t\t\tdragTiddlerFn: function() {return self.dragTiddler;},\n\t\t\tdragFilterFn: function() {return self.dragFilter;},\n\t\t\twidget: this\n\t\t});\n\t}\n\t// Insert element\n\tparent.insertBefore(domNode,nextSibling);\n\tthis.renderChildren(domNode,null);\n\tthis.domNodes.push(domNode);\n};\n\n/*\nWe don't allow actions to propagate because we trigger actions ourselves\n*/\nButtonWidget.prototype.allowActionPropagation = function() {\n\treturn false;\n};\n\nButtonWidget.prototype.getBoundingClientRect = function() {\n\treturn this.domNodes[0].getBoundingClientRect();\n};\n\nButtonWidget.prototype.isSelected = function() {\n    return this.setTitle ? (this.setField ? this.wiki.getTiddler(this.setTitle).getFieldString(this.setField) === this.setTo :\n\t\t(this.setIndex ? this.wiki.extractTiddlerDataItem(this.setTitle,this.setIndex) === this.setTo :\n\t\t\tthis.wiki.getTiddlerText(this.setTitle))) || this.defaultSetValue || this.getVariable(\"currentTiddler\") :\n\t\tthis.wiki.getTextReference(this.set,this.defaultSetValue,this.getVariable(\"currentTiddler\")) === this.setTo;\n};\n\nButtonWidget.prototype.isPoppedUp = function() {\n\tvar tiddler = this.popupTitle ? this.wiki.getTiddler(this.popupTitle) : this.wiki.getTiddler(this.popup);\n\tvar result = tiddler && tiddler.fields.text ? $tw.popup.readPopupState(tiddler.fields.text) : false;\n\treturn result;\n};\n\nButtonWidget.prototype.navigateTo = function(event) {\n\tvar bounds = this.getBoundingClientRect();\n\tthis.dispatchEvent({\n\t\ttype: \"tm-navigate\",\n\t\tnavigateTo: this.to,\n\t\tnavigateFromTitle: this.getVariable(\"storyTiddler\"),\n\t\tnavigateFromNode: this,\n\t\tnavigateFromClientRect: { top: bounds.top, left: bounds.left, width: bounds.width, right: bounds.right, bottom: bounds.bottom, height: bounds.height\n\t\t},\n\t\tnavigateSuppressNavigation: event.metaKey || event.ctrlKey || (event.button === 1),\n\t\tevent: event\n\t});\n};\n\nButtonWidget.prototype.dispatchMessage = function(event) {\n\tthis.dispatchEvent({type: this.message, param: this.param, tiddlerTitle: this.getVariable(\"currentTiddler\"), event: event});\n};\n\nButtonWidget.prototype.triggerPopup = function(event) {\n\tif(this.popupTitle) {\n\t\t$tw.popup.triggerPopup({\n\t\t\tdomNode: this.domNodes[0],\n\t\t\ttitle: this.popupTitle,\n\t\t\twiki: this.wiki,\n\t\t\tnoStateReference: true\n\t\t});\n\t} else {\n\t\t$tw.popup.triggerPopup({\n\t\t\tdomNode: this.domNodes[0],\n\t\t\ttitle: this.popup,\n\t\t\twiki: this.wiki\n\t\t});\n\t}\n};\n\nButtonWidget.prototype.setTiddler = function() {\n\tif(this.setTitle) {\n\t\tthis.setField ? this.wiki.setText(this.setTitle,this.setField,undefined,this.setTo) :\n\t\t\t\t(this.setIndex ? this.wiki.setText(this.setTitle,undefined,this.setIndex,this.setTo) :\n\t\t\t\tthis.wiki.setText(this.setTitle,\"text\",undefined,this.setTo));\n\t} else {\n\t\tthis.wiki.setTextReference(this.set,this.setTo,this.getVariable(\"currentTiddler\"));\n\t}\n};\n\n/*\nCompute the internal state of the widget\n*/\nButtonWidget.prototype.execute = function() {\n\t// Get attributes\n\tthis.actions = this.getAttribute(\"actions\");\n\tthis.to = this.getAttribute(\"to\");\n\tthis.message = this.getAttribute(\"message\");\n\tthis.param = this.getAttribute(\"param\");\n\tthis.set = this.getAttribute(\"set\");\n\tthis.setTo = this.getAttribute(\"setTo\");\n\tthis.popup = this.getAttribute(\"popup\");\n\tthis.hover = this.getAttribute(\"hover\");\n\tthis[\"aria-label\"] = this.getAttribute(\"aria-label\");\n\tthis.tooltip = this.getAttribute(\"tooltip\");\n\tthis.style = this.getAttribute(\"style\");\n\tthis[\"class\"] = this.getAttribute(\"class\",\"\");\n\tthis.selectedClass = this.getAttribute(\"selectedClass\");\n\tthis.defaultSetValue = this.getAttribute(\"default\",\"\");\n\tthis.buttonTag = this.getAttribute(\"tag\");\n\tthis.dragTiddler = this.getAttribute(\"dragTiddler\");\n\tthis.dragFilter = this.getAttribute(\"dragFilter\");\n\tthis.setTitle = this.getAttribute(\"setTitle\");\n\tthis.setField = this.getAttribute(\"setField\");\n\tthis.setIndex = this.getAttribute(\"setIndex\");\n\tthis.popupTitle = this.getAttribute(\"popupTitle\");\n\tthis.tabIndex = this.getAttribute(\"tabindex\");\n\tthis.isDisabled = this.getAttribute(\"disabled\",\"no\");\n\t// Make child widgets\n\tthis.makeChildWidgets();\n};\n\nButtonWidget.prototype.updateDomNodeClasses = function() {\n\tvar domNodeClasses = this.domNode.className.split(\" \"),\n\t\toldClasses = this.class.split(\" \"),\n\t\tnewClasses;\t\n\tthis[\"class\"] = this.getAttribute(\"class\",\"\");\n\tnewClasses = this.class.split(\" \");\n\t//Remove classes assigned from the old value of class attribute\n\t$tw.utils.each(oldClasses,function(oldClass){\n\t\tvar i = domNodeClasses.indexOf(oldClass);\n\t\tif(i !== -1) {\n\t\t\tdomNodeClasses.splice(i,1);\n\t\t}\n\t});\n\t//Add new classes from updated class attribute.\n\t$tw.utils.pushTop(domNodeClasses,newClasses);\n\tthis.domNode.className = domNodeClasses.join(\" \");\n}\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nButtonWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.actions || changedAttributes.to || changedAttributes.message || changedAttributes.param || changedAttributes.set || changedAttributes.setTo || changedAttributes.popup || changedAttributes.hover || changedAttributes.selectedClass || changedAttributes.style || changedAttributes.dragFilter || changedAttributes.dragTiddler || (this.set && changedTiddlers[this.set]) || (this.popup && changedTiddlers[this.popup]) || (this.popupTitle && changedTiddlers[this.popupTitle]) || changedAttributes.setTitle || changedAttributes.setField || changedAttributes.setIndex || changedAttributes.popupTitle || changedAttributes.disabled) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else if(changedAttributes[\"class\"]) {\n\t\tthis.updateDomNodeClasses();\n\t}\n\treturn this.refreshChildren(changedTiddlers);\n};\n\nexports.button = ButtonWidget;\n\n})();\n",
            "type": "application/javascript",
            "module-type": "widget"
        },
        "$:/core/modules/widgets/checkbox.js": {
            "title": "$:/core/modules/widgets/checkbox.js",
            "text": "/*\\\ntitle: $:/core/modules/widgets/checkbox.js\ntype: application/javascript\nmodule-type: widget\n\nCheckbox widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar CheckboxWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nCheckboxWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nCheckboxWidget.prototype.render = function(parent,nextSibling) {\n\t// Save the parent dom node\n\tthis.parentDomNode = parent;\n\t// Compute our attributes\n\tthis.computeAttributes();\n\t// Execute our logic\n\tthis.execute();\n\t// Create our elements\n\tthis.labelDomNode = this.document.createElement(\"label\");\n\tthis.labelDomNode.setAttribute(\"class\",this.checkboxClass);\n\tthis.inputDomNode = this.document.createElement(\"input\");\n\tthis.inputDomNode.setAttribute(\"type\",\"checkbox\");\n\tif(this.getValue()) {\n\t\tthis.inputDomNode.setAttribute(\"checked\",\"true\");\n\t}\n\tif(this.isDisabled === \"yes\") {\n\t\tthis.inputDomNode.setAttribute(\"disabled\",true);\n\t}\n\tthis.labelDomNode.appendChild(this.inputDomNode);\n\tthis.spanDomNode = this.document.createElement(\"span\");\n\tthis.labelDomNode.appendChild(this.spanDomNode);\n\t// Add a click event handler\n\t$tw.utils.addEventListeners(this.inputDomNode,[\n\t\t{name: \"change\", handlerObject: this, handlerMethod: \"handleChangeEvent\"}\n\t]);\n\t// Insert the label into the DOM and render any children\n\tparent.insertBefore(this.labelDomNode,nextSibling);\n\tthis.renderChildren(this.spanDomNode,null);\n\tthis.domNodes.push(this.labelDomNode);\n};\n\nCheckboxWidget.prototype.getValue = function() {\n\tvar tiddler = this.wiki.getTiddler(this.checkboxTitle);\n\tif(tiddler) {\n\t\tif(this.checkboxTag) {\n\t\t\tif(this.checkboxInvertTag) {\n\t\t\t\treturn !tiddler.hasTag(this.checkboxTag);\n\t\t\t} else {\n\t\t\t\treturn tiddler.hasTag(this.checkboxTag);\n\t\t\t}\n\t\t}\n\t\tif(this.checkboxField) {\n\t\t\tvar value;\n\t\t\tif($tw.utils.hop(tiddler.fields,this.checkboxField)) {\n\t\t\t\tvalue = tiddler.fields[this.checkboxField] || \"\";\n\t\t\t} else {\n\t\t\t\tvalue = this.checkboxDefault || \"\";\n\t\t\t}\n\t\t\tif(value === this.checkboxChecked) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t\tif(value === this.checkboxUnchecked) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\t\tif(this.checkboxIndex) {\n\t\t\tvar value = this.wiki.extractTiddlerDataItem(tiddler,this.checkboxIndex,this.checkboxDefault || \"\");\n\t\t\tif(value === this.checkboxChecked) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t\tif(value === this.checkboxUnchecked) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\t} else {\n\t\tif(this.checkboxTag) {\n\t\t\treturn false;\n\t\t}\n\t\tif(this.checkboxField) {\n\t\t\tif(this.checkboxDefault === this.checkboxChecked) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t\tif(this.checkboxDefault === this.checkboxUnchecked) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\t}\n\treturn false;\n};\n\nCheckboxWidget.prototype.handleChangeEvent = function(event) {\n\tvar checked = this.inputDomNode.checked,\n\t\ttiddler = this.wiki.getTiddler(this.checkboxTitle),\n\t\tfallbackFields = {text: \"\"},\n\t\tnewFields = {title: this.checkboxTitle},\n\t\thasChanged = false,\n\t\ttagCheck = false,\n\t\thasTag = tiddler && tiddler.hasTag(this.checkboxTag),\n\t\tvalue = checked ? this.checkboxChecked : this.checkboxUnchecked;\n\tif(this.checkboxTag && this.checkboxInvertTag === \"yes\") {\n\t\ttagCheck = hasTag === checked;\n\t} else {\n\t\ttagCheck = hasTag !== checked;\n\t}\n\t// Set the tag if specified\n\tif(this.checkboxTag && (!tiddler || tagCheck)) {\n\t\tnewFields.tags = tiddler ? (tiddler.fields.tags || []).slice(0) : [];\n\t\tvar pos = newFields.tags.indexOf(this.checkboxTag);\n\t\tif(pos !== -1) {\n\t\t\tnewFields.tags.splice(pos,1);\n\t\t}\n\t\tif(this.checkboxInvertTag === \"yes\" && !checked) {\n\t\t\tnewFields.tags.push(this.checkboxTag);\n\t\t} else if(this.checkboxInvertTag !== \"yes\" && checked) {\n\t\t\tnewFields.tags.push(this.checkboxTag);\n\t\t}\n\t\thasChanged = true;\n\t}\n\t// Set the field if specified\n\tif(this.checkboxField) {\n\t\tif(!tiddler || tiddler.fields[this.checkboxField] !== value) {\n\t\t\tnewFields[this.checkboxField] = value;\n\t\t\thasChanged = true;\n\t\t}\n\t}\n\t// Set the index if specified\n\tif(this.checkboxIndex) {\n\t\tvar indexValue = this.wiki.extractTiddlerDataItem(this.checkboxTitle,this.checkboxIndex);\n\t\tif(!tiddler || indexValue !== value) {\n\t\t\thasChanged = true;\n\t\t}\n\t}\n\tif(hasChanged) {\n\t\tif(this.checkboxIndex) {\n\t\t\tthis.wiki.setText(this.checkboxTitle,\"\",this.checkboxIndex,value);\n\t\t} else {\n\t\t\tthis.wiki.addTiddler(new $tw.Tiddler(this.wiki.getCreationFields(),fallbackFields,tiddler,newFields,this.wiki.getModificationFields()));\n\t\t}\n\t}\n\t// Trigger actions\n\tif(this.checkboxActions) {\n\t\tthis.invokeActionString(this.checkboxActions,this,event);\n\t}\n\tif(this.checkboxCheckActions && checked) {\n\t\tthis.invokeActionString(this.checkboxCheckActions,this,event);\n\t}\n\tif(this.checkboxUncheckActions && !checked) {\n\t\tthis.invokeActionString(this.checkboxUncheckActions,this,event);\n\t}\n};\n\n/*\nCompute the internal state of the widget\n*/\nCheckboxWidget.prototype.execute = function() {\n\t// Get the parameters from the attributes\n\tthis.checkboxActions = this.getAttribute(\"actions\");\n\tthis.checkboxCheckActions = this.getAttribute(\"checkactions\");\n\tthis.checkboxUncheckActions = this.getAttribute(\"uncheckactions\");\n\tthis.checkboxTitle = this.getAttribute(\"tiddler\",this.getVariable(\"currentTiddler\"));\n\tthis.checkboxTag = this.getAttribute(\"tag\");\n\tthis.checkboxField = this.getAttribute(\"field\");\n\tthis.checkboxIndex = this.getAttribute(\"index\");\n\tthis.checkboxChecked = this.getAttribute(\"checked\");\n\tthis.checkboxUnchecked = this.getAttribute(\"unchecked\");\n\tthis.checkboxDefault = this.getAttribute(\"default\");\n\tthis.checkboxClass = this.getAttribute(\"class\",\"\");\n\tthis.checkboxInvertTag = this.getAttribute(\"invertTag\",\"\");\n\tthis.isDisabled = this.getAttribute(\"disabled\",\"no\");\n\t// Make the child widgets\n\tthis.makeChildWidgets();\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nCheckboxWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.tiddler || changedAttributes.tag || changedAttributes.invertTag || changedAttributes.field || changedAttributes.index || changedAttributes.checked || changedAttributes.unchecked || changedAttributes[\"default\"] || changedAttributes[\"class\"] || changedAttributes.disabled) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else {\n\t\tvar refreshed = false;\n\t\tif(changedTiddlers[this.checkboxTitle]) {\n\t\t\tthis.inputDomNode.checked = this.getValue();\n\t\t\trefreshed = true;\n\t\t}\n\t\treturn this.refreshChildren(changedTiddlers) || refreshed;\n\t}\n};\n\nexports.checkbox = CheckboxWidget;\n\n})();\n",
            "type": "application/javascript",
            "module-type": "widget"
        },
        "$:/core/modules/widgets/codeblock.js": {
            "title": "$:/core/modules/widgets/codeblock.js",
            "text": "/*\\\ntitle: $:/core/modules/widgets/codeblock.js\ntype: application/javascript\nmodule-type: widget\n\nCode block node widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar CodeBlockWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nCodeBlockWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nCodeBlockWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tvar codeNode = this.document.createElement(\"code\"),\n\t\tdomNode = this.document.createElement(\"pre\");\n\tcodeNode.appendChild(this.document.createTextNode(this.getAttribute(\"code\")));\n\tdomNode.appendChild(codeNode);\n\tparent.insertBefore(domNode,nextSibling);\n\tthis.domNodes.push(domNode);\n\tif(this.postRender) {\n\t\tthis.postRender();\n\t}\n};\n\n/*\nCompute the internal state of the widget\n*/\nCodeBlockWidget.prototype.execute = function() {\n\tthis.language = this.getAttribute(\"language\");\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nCodeBlockWidget.prototype.refresh = function(changedTiddlers) {\n\treturn false;\n};\n\nexports.codeblock = CodeBlockWidget;\n\n})();\n",
            "type": "application/javascript",
            "module-type": "widget"
        },
        "$:/core/modules/widgets/count.js": {
            "title": "$:/core/modules/widgets/count.js",
            "text": "/*\\\ntitle: $:/core/modules/widgets/count.js\ntype: application/javascript\nmodule-type: widget\n\nCount widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar CountWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nCountWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nCountWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tvar textNode = this.document.createTextNode(this.currentCount);\n\tparent.insertBefore(textNode,nextSibling);\n\tthis.domNodes.push(textNode);\n};\n\n/*\nCompute the internal state of the widget\n*/\nCountWidget.prototype.execute = function() {\n\t// Get parameters from our attributes\n\tthis.filter = this.getAttribute(\"filter\");\n\t// Execute the filter\n\tif(this.filter) {\n\t\tthis.currentCount = this.wiki.filterTiddlers(this.filter,this).length;\n\t} else {\n\t\tthis.currentCount = \"0\";\n\t}\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nCountWidget.prototype.refresh = function(changedTiddlers) {\n\t// Re-execute the filter to get the count\n\tthis.computeAttributes();\n\tvar oldCount = this.currentCount;\n\tthis.execute();\n\tif(this.currentCount !== oldCount) {\n\t\t// Regenerate and rerender the widget and replace the existing DOM node\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else {\n\t\treturn false;\n\t}\n\n};\n\nexports.count = CountWidget;\n\n})();\n",
            "type": "application/javascript",
            "module-type": "widget"
        },
        "$:/core/modules/widgets/diff-text.js": {
            "title": "$:/core/modules/widgets/diff-text.js",
            "text": "/*\\\ntitle: $:/core/modules/widgets/diff-text.js\ntype: application/javascript\nmodule-type: widget\n\nWidget to display a diff between two texts\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget,\n\tdmp = require(\"$:/core/modules/utils/diff-match-patch/diff_match_patch.js\");\n\nvar DiffTextWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nDiffTextWidget.prototype = new Widget();\n\nDiffTextWidget.prototype.invisibleCharacters = {\n\t\"\\n\": \"↩︎\\n\",\n\t\"\\r\": \"⇠\",\n\t\"\\t\": \"⇥\\t\"\n};\n\n/*\nRender this widget into the DOM\n*/\nDiffTextWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\t// Create the diff\n\tvar dmpObject = new dmp.diff_match_patch(),\n\t\tdiffs = dmpObject.diff_main(this.getAttribute(\"source\"),this.getAttribute(\"dest\"));\n\t// Apply required cleanup\n\tswitch(this.getAttribute(\"cleanup\",\"semantic\")) {\n\t\tcase \"none\":\n\t\t\t// No cleanup\n\t\t\tbreak;\n\t\tcase \"efficiency\":\n\t\t\tdmpObject.diff_cleanupEfficiency(diffs);\n\t\t\tbreak;\n\t\tdefault: // case \"semantic\"\n\t\t\tdmpObject.diff_cleanupSemantic(diffs);\n\t\t\tbreak;\n\t}\n\t// Create the elements\n\tvar domContainer = this.document.createElement(\"div\"), \n\t\tdomDiff = this.createDiffDom(diffs);\n\tparent.insertBefore(domContainer,nextSibling);\n\t// Set variables\n\tthis.setVariable(\"diff-count\",diffs.reduce(function(acc,diff) {\n\t\tif(diff[0] !== dmp.DIFF_EQUAL) {\n\t\t\tacc++;\n\t\t}\n\t\treturn acc;\n\t},0).toString());\n\t// Render child widgets\n\tthis.renderChildren(domContainer,null);\n\t// Render the diff\n\tdomContainer.appendChild(domDiff);\n\t// Save our container\n\tthis.domNodes.push(domContainer);\n};\n\n/*\nCreate DOM elements representing a list of diffs\n*/\nDiffTextWidget.prototype.createDiffDom = function(diffs) {\n\tvar self = this;\n\t// Create the element and assign the attributes\n\tvar domPre = this.document.createElement(\"pre\"),\n\t\tdomCode = this.document.createElement(\"code\");\n\t$tw.utils.each(diffs,function(diff) {\n\t\tvar tag = diff[0] === dmp.DIFF_INSERT ? \"ins\" : (diff[0] === dmp.DIFF_DELETE ? \"del\" : \"span\"),\n\t\t\tclassName = diff[0] === dmp.DIFF_INSERT ? \"tc-diff-insert\" : (diff[0] === dmp.DIFF_DELETE ? \"tc-diff-delete\" : \"tc-diff-equal\"),\n\t\t\tdom = self.document.createElement(tag),\n\t\t\ttext = diff[1],\n\t\t\tcurrPos = 0,\n\t\t\tre = /([\\x00-\\x1F])/mg,\n\t\t\tmatch = re.exec(text),\n\t\t\tspan,\n\t\t\tprintable;\n\t\tdom.className = className;\n\t\twhile(match) {\n\t\t\tif(currPos < match.index) {\n\t\t\t\tdom.appendChild(self.document.createTextNode(text.slice(currPos,match.index)));\n\t\t\t}\n\t\t\tspan = self.document.createElement(\"span\");\n\t\t\tspan.className = \"tc-diff-invisible\";\n\t\t\tprintable = self.invisibleCharacters[match[0]] || (\"[0x\" + match[0].charCodeAt(0).toString(16) + \"]\");\n\t\t\tspan.appendChild(self.document.createTextNode(printable));\n\t\t\tdom.appendChild(span);\n\t\t\tcurrPos = match.index + match[0].length;\n\t\t\tmatch = re.exec(text);\n\t\t}\n\t\tif(currPos < text.length) {\n\t\t\tdom.appendChild(self.document.createTextNode(text.slice(currPos)));\n\t\t}\n\t\tdomCode.appendChild(dom);\n\t});\n\tdomPre.appendChild(domCode);\n\treturn domPre;\n};\n\n/*\nCompute the internal state of the widget\n*/\nDiffTextWidget.prototype.execute = function() {\n\t// Make child widgets\n\tvar parseTreeNodes;\n\tif(this.parseTreeNode && this.parseTreeNode.children && this.parseTreeNode.children.length > 0) {\n\t\tparseTreeNodes = this.parseTreeNode.children;\n\t} else {\n\t\tparseTreeNodes = [{\n\t\t\ttype: \"transclude\",\n\t\t\tattributes: {\n\t\t\t\ttiddler: {type: \"string\", value: \"$:/language/Diffs/CountMessage\"}\n\t\t\t}\n\t\t}];\n\t}\n\tthis.makeChildWidgets(parseTreeNodes);\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nDiffTextWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.source || changedAttributes.dest || changedAttributes.cleanup) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else {\n\t\treturn this.refreshChildren(changedTiddlers);\n\t}\n};\n\nexports[\"diff-text\"] = DiffTextWidget;\n\n})();\n",
            "type": "application/javascript",
            "module-type": "widget"
        },
        "$:/core/modules/widgets/draggable.js": {
            "title": "$:/core/modules/widgets/draggable.js",
            "text": "/*\\\ntitle: $:/core/modules/widgets/draggable.js\ntype: application/javascript\nmodule-type: widget\n\nDraggable widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar DraggableWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nDraggableWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nDraggableWidget.prototype.render = function(parent,nextSibling) {\n\tvar self = this;\n\t// Save the parent dom node\n\tthis.parentDomNode = parent;\n\t// Compute our attributes\n\tthis.computeAttributes();\n\t// Execute our logic\n\tthis.execute();\n\t// Sanitise the specified tag\n\tvar tag = this.draggableTag;\n\tif($tw.config.htmlUnsafeElements.indexOf(tag) !== -1) {\n\t\ttag = \"div\";\n\t}\n\t// Create our element\n\tvar domNode = this.document.createElement(tag);\n\t// Assign classes\n\tvar classes = [\"tc-draggable\"];\n\tif(this.draggableClasses) {\n\t\tclasses.push(this.draggableClasses);\n\t}\n\tdomNode.setAttribute(\"class\",classes.join(\" \"));\n\t// Add event handlers\n\t$tw.utils.makeDraggable({\n\t\tdomNode: domNode,\n\t\tdragTiddlerFn: function() {return self.getAttribute(\"tiddler\");},\n\t\tdragFilterFn: function() {return self.getAttribute(\"filter\");},\n\t\tstartActions: self.startActions,\n\t\tendActions: self.endActions,\n\t\twidget: this\n\t});\n\t// Insert the link into the DOM and render any children\n\tparent.insertBefore(domNode,nextSibling);\n\tthis.renderChildren(domNode,null);\n\tthis.domNodes.push(domNode);\n};\n\n/*\nCompute the internal state of the widget\n*/\nDraggableWidget.prototype.execute = function() {\n\t// Pick up our attributes\n\tthis.draggableTag = this.getAttribute(\"tag\",\"div\");\n\tthis.draggableClasses = this.getAttribute(\"class\");\n\tthis.startActions = this.getAttribute(\"startactions\");\n\tthis.endActions = this.getAttribute(\"endactions\");\n\t// Make the child widgets\n\tthis.makeChildWidgets();\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nDraggableWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.tag || changedAttributes[\"class\"]) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t}\n\treturn this.refreshChildren(changedTiddlers);\n};\n\nexports.draggable = DraggableWidget;\n\n})();\n",
            "type": "application/javascript",
            "module-type": "widget"
        },
        "$:/core/modules/widgets/droppable.js": {
            "title": "$:/core/modules/widgets/droppable.js",
            "text": "/*\\\ntitle: $:/core/modules/widgets/droppable.js\ntype: application/javascript\nmodule-type: widget\n\nDroppable widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar DroppableWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nDroppableWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nDroppableWidget.prototype.render = function(parent,nextSibling) {\n\tvar self = this,\n\t\ttag = this.parseTreeNode.isBlock ? \"div\" : \"span\",\n\t\tdomNode;\n\t// Remember parent\n\tthis.parentDomNode = parent;\n\t// Compute attributes and execute state\n\tthis.computeAttributes();\n\tthis.execute();\n\tif(this.droppableTag && $tw.config.htmlUnsafeElements.indexOf(this.droppableTag) === -1) {\n\t\ttag = this.droppableTag;\n\t}\n\t// Create element and assign classes\n\tdomNode = this.document.createElement(tag);\n\tthis.domNode = domNode;\n\tthis.assignDomNodeClasses();\n\t// Add event handlers\n\tif(this.droppableEnable) {\n\t\t$tw.utils.addEventListeners(domNode,[\n\t\t\t{name: \"dragenter\", handlerObject: this, handlerMethod: \"handleDragEnterEvent\"},\n\t\t\t{name: \"dragover\", handlerObject: this, handlerMethod: \"handleDragOverEvent\"},\n\t\t\t{name: \"dragleave\", handlerObject: this, handlerMethod: \"handleDragLeaveEvent\"},\n\t\t\t{name: \"drop\", handlerObject: this, handlerMethod: \"handleDropEvent\"}\n\t\t]);\t\t\n\t} else {\n\t\t$tw.utils.addClass(this.domNode,this.disabledClass);\n\t}\n\t// Insert element\n\tparent.insertBefore(domNode,nextSibling);\n\tthis.renderChildren(domNode,null);\n\tthis.domNodes.push(domNode);\n\t// Stack of outstanding enter/leave events\n\tthis.currentlyEntered = [];\n};\n\nDroppableWidget.prototype.enterDrag = function(event) {\n\tif(this.currentlyEntered.indexOf(event.target) === -1) {\n\t\tthis.currentlyEntered.push(event.target);\n\t}\n\t// If we're entering for the first time we need to apply highlighting\n\t$tw.utils.addClass(this.domNodes[0],\"tc-dragover\");\n};\n\nDroppableWidget.prototype.leaveDrag = function(event) {\n\tvar pos = this.currentlyEntered.indexOf(event.target);\n\tif(pos !== -1) {\n\t\tthis.currentlyEntered.splice(pos,1);\n\t}\n\t// Remove highlighting if we're leaving externally. The hacky second condition is to resolve a problem with Firefox whereby there is an erroneous dragenter event if the node being dragged is within the dropzone\n\tif(this.currentlyEntered.length === 0 || (this.currentlyEntered.length === 1 && this.currentlyEntered[0] === $tw.dragInProgress)) {\n\t\tthis.currentlyEntered = [];\n\t\tif(this.domNodes[0]) {\n\t\t\t$tw.utils.removeClass(this.domNodes[0],\"tc-dragover\");\n\t\t}\n\t}\n};\n\nDroppableWidget.prototype.handleDragEnterEvent  = function(event) {\n\tthis.enterDrag(event);\n\t// Tell the browser that we're ready to handle the drop\n\tevent.preventDefault();\n\t// Tell the browser not to ripple the drag up to any parent drop handlers\n\tevent.stopPropagation();\n\treturn false;\n};\n\nDroppableWidget.prototype.handleDragOverEvent  = function(event) {\n\t// Check for being over a TEXTAREA or INPUT\n\tif([\"TEXTAREA\",\"INPUT\"].indexOf(event.target.tagName) !== -1) {\n\t\treturn false;\n\t}\n\t// Tell the browser that we're still interested in the drop\n\tevent.preventDefault();\n\t// Set the drop effect\n\tevent.dataTransfer.dropEffect = this.droppableEffect;\n\treturn false;\n};\n\nDroppableWidget.prototype.handleDragLeaveEvent  = function(event) {\n\tthis.leaveDrag(event);\n\treturn false;\n};\n\nDroppableWidget.prototype.handleDropEvent  = function(event) {\n\tvar self = this;\n\tthis.leaveDrag(event);\n\t// Check for being over a TEXTAREA or INPUT\n\tif([\"TEXTAREA\",\"INPUT\"].indexOf(event.target.tagName) !== -1) {\n\t\treturn false;\n\t}\n\tvar dataTransfer = event.dataTransfer;\n\t// Remove highlighting\n\t$tw.utils.removeClass(this.domNodes[0],\"tc-dragover\");\n\t// Try to import the various data types we understand\n\t$tw.utils.importDataTransfer(dataTransfer,null,function(fieldsArray) {\n\t\tfieldsArray.forEach(function(fields) {\n\t\t\tself.performActions(fields.title || fields.text,event);\n\t\t});\n\t});\n\t// Tell the browser that we handled the drop\n\tevent.preventDefault();\n\t// Stop the drop ripple up to any parent handlers\n\tevent.stopPropagation();\n\treturn false;\n};\n\nDroppableWidget.prototype.performActions = function(title,event) {\n\tif(this.droppableActions) {\n\t\tvar modifierKey = $tw.keyboardManager.getEventModifierKeyDescriptor(event);\n\t\tthis.invokeActionString(this.droppableActions,this,event,{actionTiddler: title, modifier: modifierKey});\n\t}\n};\n\n/*\nCompute the internal state of the widget\n*/\nDroppableWidget.prototype.execute = function() {\n\tthis.droppableActions = this.getAttribute(\"actions\");\n\tthis.droppableEffect = this.getAttribute(\"effect\",\"copy\");\n\tthis.droppableTag = this.getAttribute(\"tag\");\n\tthis.droppableEnable = (this.getAttribute(\"enable\") || \"yes\") === \"yes\";\n\tthis.disabledClass = this.getAttribute(\"disabledClass\",\"\");\n\t// Make child widgets\n\tthis.makeChildWidgets();\n};\n\nDroppableWidget.prototype.assignDomNodeClasses = function() {\n\tvar classes = this.getAttribute(\"class\",\"\").split(\" \");\n\tclasses.push(\"tc-droppable\");\n\tthis.domNode.className = classes.join(\" \");\t\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nDroppableWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.tag || changedAttributes.enable || changedAttributes.disabledClass || changedAttributes.actions || changedAttributes.effect) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else if(changedAttributes[\"class\"]) {\n\t\tthis.assignDomNodeClasses();\n\t}\n\treturn this.refreshChildren(changedTiddlers);\n};\n\nexports.droppable = DroppableWidget;\n\n})();",
            "type": "application/javascript",
            "module-type": "widget"
        },
        "$:/core/modules/widgets/dropzone.js": {
            "title": "$:/core/modules/widgets/dropzone.js",
            "text": "/*\\\ntitle: $:/core/modules/widgets/dropzone.js\ntype: application/javascript\nmodule-type: widget\n\nDropzone widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar DropZoneWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nDropZoneWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nDropZoneWidget.prototype.render = function(parent,nextSibling) {\n\tvar self = this;\n\t// Remember parent\n\tthis.parentDomNode = parent;\n\t// Compute attributes and execute state\n\tthis.computeAttributes();\n\tthis.execute();\n\t// Create element\n\tvar domNode = this.document.createElement(\"div\");\n\tdomNode.className = this.dropzoneClass || \"tc-dropzone\";\n\t// Add event handlers\n\tif(this.dropzoneEnable) {\n\t\t$tw.utils.addEventListeners(domNode,[\n\t\t\t{name: \"dragenter\", handlerObject: this, handlerMethod: \"handleDragEnterEvent\"},\n\t\t\t{name: \"dragover\", handlerObject: this, handlerMethod: \"handleDragOverEvent\"},\n\t\t\t{name: \"dragleave\", handlerObject: this, handlerMethod: \"handleDragLeaveEvent\"},\n\t\t\t{name: \"drop\", handlerObject: this, handlerMethod: \"handleDropEvent\"},\n\t\t\t{name: \"paste\", handlerObject: this, handlerMethod: \"handlePasteEvent\"},\n\t\t\t{name: \"dragend\", handlerObject: this, handlerMethod: \"handleDragEndEvent\"}\n\t\t]);\t\t\n\t}\n\tdomNode.addEventListener(\"click\",function (event) {\n\t},false);\n\t// Insert element\n\tparent.insertBefore(domNode,nextSibling);\n\tthis.renderChildren(domNode,null);\n\tthis.domNodes.push(domNode);\n\t// Stack of outstanding enter/leave events\n\tthis.currentlyEntered = [];\n};\n\nDropZoneWidget.prototype.enterDrag = function(event) {\n\tif(this.currentlyEntered.indexOf(event.target) === -1) {\n\t\tthis.currentlyEntered.push(event.target);\n\t}\n\t// If we're entering for the first time we need to apply highlighting\n\t$tw.utils.addClass(this.domNodes[0],\"tc-dragover\");\n};\n\nDropZoneWidget.prototype.leaveDrag = function(event) {\n\tvar pos = this.currentlyEntered.indexOf(event.target);\n\tif(pos !== -1) {\n\t\tthis.currentlyEntered.splice(pos,1);\n\t}\n\t// Remove highlighting if we're leaving externally\n\tif(this.currentlyEntered.length === 0) {\n\t\t$tw.utils.removeClass(this.domNodes[0],\"tc-dragover\");\n\t}\n};\n\nDropZoneWidget.prototype.handleDragEnterEvent  = function(event) {\n\t// Check for this window being the source of the drag\n\tif($tw.dragInProgress) {\n\t\treturn false;\n\t}\n\tthis.enterDrag(event);\n\t// Tell the browser that we're ready to handle the drop\n\tevent.preventDefault();\n\t// Tell the browser not to ripple the drag up to any parent drop handlers\n\tevent.stopPropagation();\n};\n\nDropZoneWidget.prototype.handleDragOverEvent  = function(event) {\n\t// Check for being over a TEXTAREA or INPUT\n\tif([\"TEXTAREA\",\"INPUT\"].indexOf(event.target.tagName) !== -1) {\n\t\treturn false;\n\t}\n\t// Check for this window being the source of the drag\n\tif($tw.dragInProgress) {\n\t\treturn false;\n\t}\n\t// Tell the browser that we're still interested in the drop\n\tevent.preventDefault();\n\tevent.dataTransfer.dropEffect = \"copy\"; // Explicitly show this is a copy\n};\n\nDropZoneWidget.prototype.handleDragLeaveEvent  = function(event) {\n\tthis.leaveDrag(event);\n};\n\nDropZoneWidget.prototype.handleDragEndEvent = function(event) {\n\t$tw.utils.removeClass(this.domNodes[0],\"tc-dragover\");\n};\n\nDropZoneWidget.prototype.handleDropEvent  = function(event) {\n\tvar self = this,\n\t\treadFileCallback = function(tiddlerFieldsArray) {\n\t\t\tself.dispatchEvent({type: \"tm-import-tiddlers\", param: JSON.stringify(tiddlerFieldsArray), autoOpenOnImport: self.autoOpenOnImport, importTitle: self.importTitle});\n\t\t};\n\tthis.leaveDrag(event);\n\t// Check for being over a TEXTAREA or INPUT\n\tif([\"TEXTAREA\",\"INPUT\"].indexOf(event.target.tagName) !== -1) {\n\t\treturn false;\n\t}\n\t// Check for this window being the source of the drag\n\tif($tw.dragInProgress) {\n\t\treturn false;\n\t}\n\tvar self = this,\n\t\tdataTransfer = event.dataTransfer;\n\t// Remove highlighting\n\t$tw.utils.removeClass(this.domNodes[0],\"tc-dragover\");\n\t// Import any files in the drop\n\tvar numFiles = 0;\n\tif(dataTransfer.files) {\n\t\tnumFiles = this.wiki.readFiles(dataTransfer.files,{\n\t\t\tcallback: readFileCallback,\n\t\t\tdeserializer: this.dropzoneDeserializer\n\t\t});\n\t}\n\t// Try to import the various data types we understand\n\tif(numFiles === 0) {\n\t\t$tw.utils.importDataTransfer(dataTransfer,this.wiki.generateNewTitle(\"Untitled\"),readFileCallback);\n\t}\n\t// Tell the browser that we handled the drop\n\tevent.preventDefault();\n\t// Stop the drop ripple up to any parent handlers\n\tevent.stopPropagation();\n};\n\nDropZoneWidget.prototype.handlePasteEvent  = function(event) {\n\tvar self = this,\n\t\treadFileCallback = function(tiddlerFieldsArray) {\n\t\t\tself.dispatchEvent({type: \"tm-import-tiddlers\", param: JSON.stringify(tiddlerFieldsArray), autoOpenOnImport: self.autoOpenOnImport, importTitle: self.importTitle});\n\t\t};\n\t// Let the browser handle it if we're in a textarea or input box\n\tif([\"TEXTAREA\",\"INPUT\"].indexOf(event.target.tagName) == -1 && !event.target.isContentEditable) {\n\t\tvar self = this,\n\t\t\titems = event.clipboardData.items;\n\t\t// Enumerate the clipboard items\n\t\tfor(var t = 0; t<items.length; t++) {\n\t\t\tvar item = items[t];\n\t\t\tif(item.kind === \"file\") {\n\t\t\t\t// Import any files\n\t\t\t\tthis.wiki.readFile(item.getAsFile(),{\n\t\t\t\t\tcallback: readFileCallback,\n\t\t\t\t\tdeserializer: this.dropzoneDeserializer\n\t\t\t\t});\n\t\t\t} else if(item.kind === \"string\") {\n\t\t\t\t// Create tiddlers from string items\n\t\t\t\tvar type = item.type;\n\t\t\t\titem.getAsString(function(str) {\n\t\t\t\t\tvar tiddlerFields = {\n\t\t\t\t\t\ttitle: self.wiki.generateNewTitle(\"Untitled\"),\n\t\t\t\t\t\ttext: str,\n\t\t\t\t\t\ttype: type\n\t\t\t\t\t};\n\t\t\t\t\tif($tw.log.IMPORT) {\n\t\t\t\t\t\tconsole.log(\"Importing string '\" + str + \"', type: '\" + type + \"'\");\n\t\t\t\t\t}\n\t\t\t\t\tself.dispatchEvent({type: \"tm-import-tiddlers\", param: JSON.stringify([tiddlerFields]), autoOpenOnImport: self.autoOpenOnImport, importTitle: self.importTitle});\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t\t// Tell the browser that we've handled the paste\n\t\tevent.stopPropagation();\n\t\tevent.preventDefault();\n\t}\n};\n\n/*\nCompute the internal state of the widget\n*/\nDropZoneWidget.prototype.execute = function() {\n\tthis.dropzoneClass = this.getAttribute(\"class\");\n\tthis.dropzoneDeserializer = this.getAttribute(\"deserializer\");\n\tthis.dropzoneEnable = (this.getAttribute(\"enable\") || \"yes\") === \"yes\";\n\tthis.autoOpenOnImport = this.getAttribute(\"autoOpenOnImport\");\n\tthis.importTitle = this.getAttribute(\"importTitle\");\n\t// Make child widgets\n\tthis.makeChildWidgets();\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nDropZoneWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.enable || changedAttributes.autoOpenOnImport || changedAttributes.importTitle || changedAttributes.deserializer || changedAttributes.class) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t}\n\treturn this.refreshChildren(changedTiddlers);\n};\n\nexports.dropzone = DropZoneWidget;\n\n})();\n",
            "type": "application/javascript",
            "module-type": "widget"
        },
        "$:/core/modules/widgets/edit-binary.js": {
            "title": "$:/core/modules/widgets/edit-binary.js",
            "text": "/*\\\ntitle: $:/core/modules/widgets/edit-binary.js\ntype: application/javascript\nmodule-type: widget\n\nEdit-binary widget; placeholder for editing binary tiddlers\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar BINARY_WARNING_MESSAGE = \"$:/core/ui/BinaryWarning\";\nvar EXPORT_BUTTON_IMAGE = \"$:/core/images/export-button\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar EditBinaryWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nEditBinaryWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nEditBinaryWidget.prototype.render = function(parent,nextSibling) {\n\tvar self = this;\n\t// Save the parent dom node\n\tthis.parentDomNode = parent;\n\t// Compute our attributes\n\tthis.computeAttributes();\n\t// Execute our logic\n\tthis.execute();\n\tthis.renderChildren(parent,nextSibling);\n};\n\n/*\nCompute the internal state of the widget\n*/\nEditBinaryWidget.prototype.execute = function() {\n\t// Get our parameters\n\tvar editTitle = this.getAttribute(\"tiddler\",this.getVariable(\"currentTiddler\"));\n\tvar tiddler = this.wiki.getTiddler(editTitle);\n\tvar type = tiddler.fields.type;\n\tvar text = tiddler.fields.text;\n\t// Transclude the binary data tiddler warning message\n\tvar warn = {\n\t\ttype: \"element\",\n\t\ttag: \"p\",\n\t\tchildren: [{\n\t\t\ttype: \"transclude\",\n\t\t\tattributes: {\n\t\t\t\ttiddler: {type: \"string\", value: BINARY_WARNING_MESSAGE}\n\t\t\t}\n\t\t}]\n\t};\n\t// Create download link based on draft tiddler title\n\tvar link = {\n\t\ttype: \"element\",\n\t\ttag: \"a\",\n\t\tattributes: {\n\t\t\ttitle: {type: \"indirect\", textReference: \"!!draft.title\"},\n\t\t\tdownload: {type: \"indirect\", textReference: \"!!draft.title\"}\n\t\t},\n\t\tchildren: [{\n\t\ttype: \"transclude\",\n\t\t\tattributes: {\n\t\t\t\ttiddler: {type: \"string\", value: EXPORT_BUTTON_IMAGE}\n\t\t\t}\n\t\t}]\n\t};\n\t// Set the link href to internal data URI (no external)\n\tif(text) {\n\t\tlink.attributes.href = {\n\t\t\ttype: \"string\", \n\t\t\tvalue: \"data:\" + type + \";base64,\" + text\n\t\t};\n\t}\n\t// Combine warning message and download link in a div\n\tvar element = {\n\t\ttype: \"element\",\n\t\ttag: \"div\",\n\t\tattributes: {\n\t\t\tclass: {type: \"string\", value: \"tc-binary-warning\"}\n\t\t},\n\t\tchildren: [warn, link]\n\t}\n\t// Construct the child widgets\n\tthis.makeChildWidgets([element]);\n};\n\n/*\nRefresh by refreshing our child widget\n*/\nEditBinaryWidget.prototype.refresh = function(changedTiddlers) {\n\treturn this.refreshChildren(changedTiddlers);\n};\n\nexports[\"edit-binary\"] = EditBinaryWidget;\n\n})();\n",
            "type": "application/javascript",
            "module-type": "widget"
        },
        "$:/core/modules/widgets/edit-bitmap.js": {
            "title": "$:/core/modules/widgets/edit-bitmap.js",
            "text": "/*\\\ntitle: $:/core/modules/widgets/edit-bitmap.js\ntype: application/javascript\nmodule-type: widget\n\nEdit-bitmap widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n// Default image sizes\nvar DEFAULT_IMAGE_WIDTH = 600,\n\tDEFAULT_IMAGE_HEIGHT = 370,\n\tDEFAULT_IMAGE_TYPE = \"image/png\";\n\n// Configuration tiddlers\nvar LINE_WIDTH_TITLE = \"$:/config/BitmapEditor/LineWidth\",\n\tLINE_COLOUR_TITLE = \"$:/config/BitmapEditor/Colour\",\n\tLINE_OPACITY_TITLE = \"$:/config/BitmapEditor/Opacity\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar EditBitmapWidget = function(parseTreeNode,options) {\n\t// Initialise the editor operations if they've not been done already\n\tif(!this.editorOperations) {\n\t\tEditBitmapWidget.prototype.editorOperations = {};\n\t\t$tw.modules.applyMethods(\"bitmapeditoroperation\",this.editorOperations);\n\t}\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nEditBitmapWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nEditBitmapWidget.prototype.render = function(parent,nextSibling) {\n\tvar self = this;\n\t// Save the parent dom node\n\tthis.parentDomNode = parent;\n\t// Compute our attributes\n\tthis.computeAttributes();\n\t// Execute our logic\n\tthis.execute();\n\t// Create the wrapper for the toolbar and render its content\n\tthis.toolbarNode = this.document.createElement(\"div\");\n\tthis.toolbarNode.className = \"tc-editor-toolbar\";\n\tparent.insertBefore(this.toolbarNode,nextSibling);\n\tthis.domNodes.push(this.toolbarNode);\n\t// Create the on-screen canvas\n\tthis.canvasDomNode = $tw.utils.domMaker(\"canvas\",{\n\t\tdocument: this.document,\n\t\t\"class\":\"tc-edit-bitmapeditor\",\n\t\teventListeners: [{\n\t\t\tname: \"touchstart\", handlerObject: this, handlerMethod: \"handleTouchStartEvent\"\n\t\t},{\n\t\t\tname: \"touchmove\", handlerObject: this, handlerMethod: \"handleTouchMoveEvent\"\n\t\t},{\n\t\t\tname: \"touchend\", handlerObject: this, handlerMethod: \"handleTouchEndEvent\"\n\t\t},{\n\t\t\tname: \"mousedown\", handlerObject: this, handlerMethod: \"handleMouseDownEvent\"\n\t\t},{\n\t\t\tname: \"mousemove\", handlerObject: this, handlerMethod: \"handleMouseMoveEvent\"\n\t\t},{\n\t\t\tname: \"mouseup\", handlerObject: this, handlerMethod: \"handleMouseUpEvent\"\n\t\t}]\n\t});\n\t// Set the width and height variables\n\tthis.setVariable(\"tv-bitmap-editor-width\",this.canvasDomNode.width + \"px\");\n\tthis.setVariable(\"tv-bitmap-editor-height\",this.canvasDomNode.height + \"px\");\n\t// Render toolbar child widgets\n\tthis.renderChildren(this.toolbarNode,null);\n\t// // Insert the elements into the DOM\n\tparent.insertBefore(this.canvasDomNode,nextSibling);\n\tthis.domNodes.push(this.canvasDomNode);\n\t// Load the image into the canvas\n\tif($tw.browser) {\n\t\tthis.loadCanvas();\n\t}\n\t// Add widget message listeners\n\tthis.addEventListeners([\n\t\t{type: \"tm-edit-bitmap-operation\", handler: \"handleEditBitmapOperationMessage\"}\n\t]);\n};\n\n/*\nHandle an edit bitmap operation message from the toolbar\n*/\nEditBitmapWidget.prototype.handleEditBitmapOperationMessage = function(event) {\n\t// Invoke the handler\n\tvar handler = this.editorOperations[event.param];\n\tif(handler) {\n\t\thandler.call(this,event);\n\t}\n};\n\n/*\nCompute the internal state of the widget\n*/\nEditBitmapWidget.prototype.execute = function() {\n\t// Get our parameters\n\tthis.editTitle = this.getAttribute(\"tiddler\",this.getVariable(\"currentTiddler\"));\n\t// Make the child widgets\n\tthis.makeChildWidgets();\n};\n\n/*\nJust refresh the toolbar\n*/\nEditBitmapWidget.prototype.refresh = function(changedTiddlers) {\n\treturn this.refreshChildren(changedTiddlers);\n};\n\n/*\nSet the bitmap size variables and refresh the toolbar\n*/\nEditBitmapWidget.prototype.refreshToolbar = function() {\n\t// Set the width and height variables\n\tthis.setVariable(\"tv-bitmap-editor-width\",this.canvasDomNode.width + \"px\");\n\tthis.setVariable(\"tv-bitmap-editor-height\",this.canvasDomNode.height + \"px\");\n\t// Refresh each of our child widgets\n\t$tw.utils.each(this.children,function(childWidget) {\n\t\tchildWidget.refreshSelf();\n\t});\n};\n\nEditBitmapWidget.prototype.loadCanvas = function() {\n\tvar tiddler = this.wiki.getTiddler(this.editTitle),\n\t\tcurrImage = new Image();\n\t// Set up event handlers for loading the image\n\tvar self = this;\n\tcurrImage.onload = function() {\n\t\t// Copy the image to the on-screen canvas\n\t\tself.initCanvas(self.canvasDomNode,currImage.width,currImage.height,currImage);\n\t\t// And also copy the current bitmap to the off-screen canvas\n\t\tself.currCanvas = self.document.createElement(\"canvas\");\n\t\tself.initCanvas(self.currCanvas,currImage.width,currImage.height,currImage);\n\t\t// Set the width and height input boxes\n\t\tself.refreshToolbar();\n\t};\n\tcurrImage.onerror = function() {\n\t\t// Set the on-screen canvas size and clear it\n\t\tself.initCanvas(self.canvasDomNode,DEFAULT_IMAGE_WIDTH,DEFAULT_IMAGE_HEIGHT);\n\t\t// Set the off-screen canvas size and clear it\n\t\tself.currCanvas = self.document.createElement(\"canvas\");\n\t\tself.initCanvas(self.currCanvas,DEFAULT_IMAGE_WIDTH,DEFAULT_IMAGE_HEIGHT);\n\t\t// Set the width and height input boxes\n\t\tself.refreshToolbar();\n\t};\n\t// Get the current bitmap into an image object\n\tif(tiddler && tiddler.fields.type && tiddler.fields.text) {\n\t\tcurrImage.src = \"data:\" + tiddler.fields.type + \";base64,\" + tiddler.fields.text;\t\t\n\t} else {\n\t\tcurrImage.width = DEFAULT_IMAGE_WIDTH;\n\t\tcurrImage.height = DEFAULT_IMAGE_HEIGHT;\n\t\tcurrImage.onerror();\n\t}\n};\n\nEditBitmapWidget.prototype.initCanvas = function(canvas,width,height,image) {\n\tcanvas.width = width;\n\tcanvas.height = height;\n\tvar ctx = canvas.getContext(\"2d\");\n\tif(image) {\n\t\tctx.drawImage(image,0,0);\n\t} else {\n\t\tctx.fillStyle = \"#fff\";\n\t\tctx.fillRect(0,0,canvas.width,canvas.height);\n\t}\n};\n\n/*\n** Change the size of the canvas, preserving the current image\n*/\nEditBitmapWidget.prototype.changeCanvasSize = function(newWidth,newHeight) {\n\t// Create and size a new canvas\n\tvar newCanvas = this.document.createElement(\"canvas\");\n\tthis.initCanvas(newCanvas,newWidth,newHeight);\n\t// Copy the old image\n\tvar ctx = newCanvas.getContext(\"2d\");\n\tctx.drawImage(this.currCanvas,0,0);\n\t// Set the new canvas as the current one\n\tthis.currCanvas = newCanvas;\n\t// Set the size of the onscreen canvas\n\tthis.canvasDomNode.width = newWidth;\n\tthis.canvasDomNode.height = newHeight;\n\t// Paint the onscreen canvas with the offscreen canvas\n\tctx = this.canvasDomNode.getContext(\"2d\");\n\tctx.drawImage(this.currCanvas,0,0);\n};\n\n/*\n** Rotate the canvas left by 90 degrees\n*/\nEditBitmapWidget.prototype.rotateCanvasLeft = function() {\n\t// Get the current size of the image\n\tvar origWidth = this.currCanvas.width,\n\t\torigHeight = this.currCanvas.height;\n\t// Create and size a new canvas\n\tvar newCanvas = this.document.createElement(\"canvas\"),\n\t\tnewWidth = origHeight,\n\t\tnewHeight = origWidth;\n\tthis.initCanvas(newCanvas,newWidth,newHeight);\n\t// Copy the old image\n\tvar ctx = newCanvas.getContext(\"2d\");\n\tctx.save();\n\tctx.translate(newWidth / 2,newHeight / 2);\n\tctx.rotate(-Math.PI / 2);\n\tctx.drawImage(this.currCanvas,-origWidth / 2,-origHeight / 2);\n\tctx.restore();\n\t// Set the new canvas as the current one\n\tthis.currCanvas = newCanvas;\n\t// Set the size of the onscreen canvas\n\tthis.canvasDomNode.width = newWidth;\n\tthis.canvasDomNode.height = newHeight;\n\t// Paint the onscreen canvas with the offscreen canvas\n\tctx = this.canvasDomNode.getContext(\"2d\");\n\tctx.drawImage(this.currCanvas,0,0);\n};\n\nEditBitmapWidget.prototype.handleTouchStartEvent = function(event) {\n\tthis.brushDown = true;\n\tthis.strokeStart(event.touches[0].clientX,event.touches[0].clientY);\n\tevent.preventDefault();\n\tevent.stopPropagation();\n\treturn false;\n};\n\nEditBitmapWidget.prototype.handleTouchMoveEvent = function(event) {\n\tif(this.brushDown) {\n\t\tthis.strokeMove(event.touches[0].clientX,event.touches[0].clientY);\n\t}\n\tevent.preventDefault();\n\tevent.stopPropagation();\n\treturn false;\n};\n\nEditBitmapWidget.prototype.handleTouchEndEvent = function(event) {\n\tif(this.brushDown) {\n\t\tthis.brushDown = false;\n\t\tthis.strokeEnd();\n\t}\n\tevent.preventDefault();\n\tevent.stopPropagation();\n\treturn false;\n};\n\nEditBitmapWidget.prototype.handleMouseDownEvent = function(event) {\n\tthis.strokeStart(event.clientX,event.clientY);\n\tthis.brushDown = true;\n\tevent.preventDefault();\n\tevent.stopPropagation();\n\treturn false;\n};\n\nEditBitmapWidget.prototype.handleMouseMoveEvent = function(event) {\n\tif(this.brushDown) {\n\t\tthis.strokeMove(event.clientX,event.clientY);\n\t\tevent.preventDefault();\n\t\tevent.stopPropagation();\n\t\treturn false;\n\t}\n\treturn true;\n};\n\nEditBitmapWidget.prototype.handleMouseUpEvent = function(event) {\n\tif(this.brushDown) {\n\t\tthis.brushDown = false;\n\t\tthis.strokeEnd();\n\t\tevent.preventDefault();\n\t\tevent.stopPropagation();\n\t\treturn false;\n\t}\n\treturn true;\n};\n\nEditBitmapWidget.prototype.adjustCoordinates = function(x,y) {\n\tvar canvasRect = this.canvasDomNode.getBoundingClientRect(),\n\t\tscale = this.canvasDomNode.width/canvasRect.width;\n\treturn {x: (x - canvasRect.left) * scale, y: (y - canvasRect.top) * scale};\n};\n\nEditBitmapWidget.prototype.strokeStart = function(x,y) {\n\t// Start off a new stroke\n\tthis.stroke = [this.adjustCoordinates(x,y)];\n};\n\nEditBitmapWidget.prototype.strokeMove = function(x,y) {\n\tvar ctx = this.canvasDomNode.getContext(\"2d\"),\n\t\tt;\n\t// Add the new position to the end of the stroke\n\tthis.stroke.push(this.adjustCoordinates(x,y));\n\t// Redraw the previous image\n\tctx.drawImage(this.currCanvas,0,0);\n\t// Render the stroke\n\tctx.globalAlpha = parseFloat(this.wiki.getTiddlerText(LINE_OPACITY_TITLE,\"1.0\"));\n\tctx.strokeStyle = this.wiki.getTiddlerText(LINE_COLOUR_TITLE,\"#ff0\");\n\tctx.lineWidth = parseFloat(this.wiki.getTiddlerText(LINE_WIDTH_TITLE,\"3\"));\n\tctx.lineCap = \"round\";\n\tctx.lineJoin = \"round\";\n\tctx.beginPath();\n\tctx.moveTo(this.stroke[0].x,this.stroke[0].y);\n\tfor(t=1; t<this.stroke.length-1; t++) {\n\t\tvar s1 = this.stroke[t],\n\t\t\ts2 = this.stroke[t-1],\n\t\t\ttx = (s1.x + s2.x)/2,\n\t\t\tty = (s1.y + s2.y)/2;\n\t\tctx.quadraticCurveTo(s2.x,s2.y,tx,ty);\n\t}\n\tctx.stroke();\n};\n\nEditBitmapWidget.prototype.strokeEnd = function() {\n\t// Copy the bitmap to the off-screen canvas\n\tvar ctx = this.currCanvas.getContext(\"2d\");\n\tctx.drawImage(this.canvasDomNode,0,0);\n\t// Save the image into the tiddler\n\tthis.saveChanges();\n};\n\nEditBitmapWidget.prototype.saveChanges = function() {\n\tvar tiddler = this.wiki.getTiddler(this.editTitle) || new $tw.Tiddler({title: this.editTitle,type: DEFAULT_IMAGE_TYPE});\n\t// data URIs look like \"data:<type>;base64,<text>\"\n\tvar dataURL = this.canvasDomNode.toDataURL(tiddler.fields.type),\n\t\tposColon = dataURL.indexOf(\":\"),\n\t\tposSemiColon = dataURL.indexOf(\";\"),\n\t\tposComma = dataURL.indexOf(\",\"),\n\t\ttype = dataURL.substring(posColon+1,posSemiColon),\n\t\ttext = dataURL.substring(posComma+1);\n\tvar update = {type: type, text: text};\n\tthis.wiki.addTiddler(new $tw.Tiddler(this.wiki.getModificationFields(),tiddler,update,this.wiki.getCreationFields()));\n};\n\nexports[\"edit-bitmap\"] = EditBitmapWidget;\n\n})();\n",
            "type": "application/javascript",
            "module-type": "widget"
        },
        "$:/core/modules/widgets/edit-shortcut.js": {
            "title": "$:/core/modules/widgets/edit-shortcut.js",
            "text": "/*\\\ntitle: $:/core/modules/widgets/edit-shortcut.js\ntype: application/javascript\nmodule-type: widget\n\nWidget to display an editable keyboard shortcut\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar EditShortcutWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nEditShortcutWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nEditShortcutWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tthis.inputNode = this.document.createElement(\"input\");\n\t// Assign classes\n\tif(this.shortcutClass) {\n\t\tthis.inputNode.className = this.shortcutClass;\t\t\n\t}\n\t// Assign other attributes\n\tif(this.shortcutStyle) {\n\t\tthis.inputNode.setAttribute(\"style\",this.shortcutStyle);\n\t}\n\tif(this.shortcutTooltip) {\n\t\tthis.inputNode.setAttribute(\"title\",this.shortcutTooltip);\n\t}\n\tif(this.shortcutPlaceholder) {\n\t\tthis.inputNode.setAttribute(\"placeholder\",this.shortcutPlaceholder);\n\t}\n\tif(this.shortcutAriaLabel) {\n\t\tthis.inputNode.setAttribute(\"aria-label\",this.shortcutAriaLabel);\n\t}\n\t// Assign the current shortcut\n\tthis.updateInputNode();\n\t// Add event handlers\n\t$tw.utils.addEventListeners(this.inputNode,[\n\t\t{name: \"keydown\", handlerObject: this, handlerMethod: \"handleKeydownEvent\"}\n\t]);\n\t// Link into the DOM\n\tparent.insertBefore(this.inputNode,nextSibling);\n\tthis.domNodes.push(this.inputNode);\n\t// Focus the input Node if focus === \"yes\" or focus === \"true\"\n\tif(this.shortcutFocus === \"yes\" || this.shortcutFocus === \"true\") {\n\t\tthis.focus();\n\t}\n};\n\n/*\nCompute the internal state of the widget\n*/\nEditShortcutWidget.prototype.execute = function() {\n\tthis.shortcutTiddler = this.getAttribute(\"tiddler\");\n\tthis.shortcutField = this.getAttribute(\"field\");\n\tthis.shortcutIndex = this.getAttribute(\"index\");\n\tthis.shortcutPlaceholder = this.getAttribute(\"placeholder\");\n\tthis.shortcutDefault = this.getAttribute(\"default\",\"\");\n\tthis.shortcutClass = this.getAttribute(\"class\");\n\tthis.shortcutStyle = this.getAttribute(\"style\");\n\tthis.shortcutTooltip = this.getAttribute(\"tooltip\");\n\tthis.shortcutAriaLabel = this.getAttribute(\"aria-label\");\n\tthis.shortcutFocus = this.getAttribute(\"focus\");\n};\n\n/*\nUpdate the value of the input node\n*/\nEditShortcutWidget.prototype.updateInputNode = function() {\n\tif(this.shortcutField) {\n\t\tvar tiddler = this.wiki.getTiddler(this.shortcutTiddler);\n\t\tif(tiddler && $tw.utils.hop(tiddler.fields,this.shortcutField)) {\n\t\t\tthis.inputNode.value = tiddler.getFieldString(this.shortcutField);\n\t\t} else {\n\t\t\tthis.inputNode.value = this.shortcutDefault;\n\t\t}\n\t} else if(this.shortcutIndex) {\n\t\tthis.inputNode.value = this.wiki.extractTiddlerDataItem(this.shortcutTiddler,this.shortcutIndex,this.shortcutDefault);\n\t} else {\n\t\tthis.inputNode.value = this.wiki.getTiddlerText(this.shortcutTiddler,this.shortcutDefault);\n\t}\n};\n\n/*\nHandle a dom \"keydown\" event\n*/\nEditShortcutWidget.prototype.handleKeydownEvent = function(event) {\n\t// Ignore shift, ctrl, meta, alt\n\tif(event.keyCode && $tw.keyboardManager.getModifierKeys().indexOf(event.keyCode) === -1) {\n\t\t// Get the shortcut text representation\n\t\tvar value = $tw.keyboardManager.getPrintableShortcuts([{\n\t\t\tctrlKey: event.ctrlKey,\n\t\t\tshiftKey: event.shiftKey,\n\t\t\taltKey: event.altKey,\n\t\t\tmetaKey: event.metaKey,\n\t\t\tkeyCode: event.keyCode\n\t\t}]);\n\t\tif(value.length > 0) {\n\t\t\tthis.wiki.setText(this.shortcutTiddler,this.shortcutField,this.shortcutIndex,value[0]);\n\t\t}\n\t\t// Ignore the keydown if it was already handled\n\t\tevent.preventDefault();\n\t\tevent.stopPropagation();\n\t\treturn true;\t\t\n\t} else {\n\t\treturn false;\n\t}\n};\n\n/*\nfocus the input node\n*/\nEditShortcutWidget.prototype.focus = function() {\n\tif(this.inputNode.focus && this.inputNode.select) {\n\t\tthis.inputNode.focus();\n\t\tthis.inputNode.select();\n\t}\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget needed re-rendering\n*/\nEditShortcutWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.tiddler || changedAttributes.field || changedAttributes.index || changedAttributes.placeholder || changedAttributes[\"default\"] || changedAttributes[\"class\"] || changedAttributes.style || changedAttributes.tooltip || changedAttributes[\"aria-label\"] || changedAttributes.focus) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else if(changedTiddlers[this.shortcutTiddler]) {\n\t\tthis.updateInputNode();\n\t\treturn true;\n\t} else {\n\t\treturn false;\t\n\t}\n};\n\nexports[\"edit-shortcut\"] = EditShortcutWidget;\n\n})();\n",
            "type": "application/javascript",
            "module-type": "widget"
        },
        "$:/core/modules/widgets/edit-text.js": {
            "title": "$:/core/modules/widgets/edit-text.js",
            "text": "/*\\\ntitle: $:/core/modules/widgets/edit-text.js\ntype: application/javascript\nmodule-type: widget\n\nEdit-text widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar editTextWidgetFactory = require(\"$:/core/modules/editor/factory.js\").editTextWidgetFactory,\n\tFramedEngine = require(\"$:/core/modules/editor/engines/framed.js\").FramedEngine,\n\tSimpleEngine = require(\"$:/core/modules/editor/engines/simple.js\").SimpleEngine;\n\nexports[\"edit-text\"] = editTextWidgetFactory(FramedEngine,SimpleEngine);\n\n})();\n",
            "type": "application/javascript",
            "module-type": "widget"
        },
        "$:/core/modules/widgets/edit.js": {
            "title": "$:/core/modules/widgets/edit.js",
            "text": "/*\\\ntitle: $:/core/modules/widgets/edit.js\ntype: application/javascript\nmodule-type: widget\n\nEdit widget is a meta-widget chooses the appropriate actual editting widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar EditWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nEditWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nEditWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tthis.renderChildren(parent,nextSibling);\n};\n\n// Mappings from content type to editor type are stored in tiddlers with this prefix\nvar EDITOR_MAPPING_PREFIX = \"$:/config/EditorTypeMappings/\";\n\n/*\nCompute the internal state of the widget\n*/\nEditWidget.prototype.execute = function() {\n\t// Get our parameters\n\tthis.editTitle = this.getAttribute(\"tiddler\",this.getVariable(\"currentTiddler\"));\n\tthis.editField = this.getAttribute(\"field\",\"text\");\n\tthis.editIndex = this.getAttribute(\"index\");\n\tthis.editClass = this.getAttribute(\"class\");\n\tthis.editPlaceholder = this.getAttribute(\"placeholder\");\n\tthis.editTabIndex = this.getAttribute(\"tabindex\");\n\tthis.editFocus = this.getAttribute(\"focus\",\"\");\n\tthis.editCancelPopups = this.getAttribute(\"cancelPopups\",\"\");\n\tthis.editInputActions = this.getAttribute(\"inputActions\");\n\tthis.editRefreshTitle = this.getAttribute(\"refreshTitle\");\n\tthis.editAutoComplete = this.getAttribute(\"autocomplete\");\n\t// Choose the appropriate edit widget\n\tthis.editorType = this.getEditorType();\n\t// Make the child widgets\n\tthis.makeChildWidgets([{\n\t\ttype: \"edit-\" + this.editorType,\n\t\tattributes: this.parseTreeNode.attributes,\n\t\tchildren: this.parseTreeNode.children\n\t}]);\n};\n\nEditWidget.prototype.getEditorType = function() {\n\t// Get the content type of the thing we're editing\n\tvar type;\n\tif(this.editField === \"text\") {\n\t\tvar tiddler = this.wiki.getTiddler(this.editTitle);\n\t\tif(tiddler) {\n\t\t\ttype = tiddler.fields.type;\n\t\t}\n\t}\n\ttype = type || \"text/vnd.tiddlywiki\";\n\tvar editorType = this.wiki.getTiddlerText(EDITOR_MAPPING_PREFIX + type);\n\tif(!editorType) {\n\t\tvar typeInfo = $tw.config.contentTypeInfo[type];\n\t\tif(typeInfo && typeInfo.encoding === \"base64\") {\n\t\t\teditorType = \"binary\";\n\t\t} else {\n\t\t\teditorType = \"text\";\n\t\t}\n\t}\n\treturn editorType;\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nEditWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\t// Refresh if an attribute has changed, or the type associated with the target tiddler has changed\n\tif(changedAttributes.tiddler || changedAttributes.field || changedAttributes.index || changedAttributes.tabindex || changedAttributes.cancelPopups || changedAttributes.inputActions || changedAttributes.refreshTitle || changedAttributes.autocomplete || (changedTiddlers[this.editTitle] && this.getEditorType() !== this.editorType)) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else {\n\t\treturn this.refreshChildren(changedTiddlers);\n\t}\n};\n\nexports.edit = EditWidget;\n\n})();\n",
            "type": "application/javascript",
            "module-type": "widget"
        },
        "$:/core/modules/widgets/element.js": {
            "title": "$:/core/modules/widgets/element.js",
            "text": "/*\\\ntitle: $:/core/modules/widgets/element.js\ntype: application/javascript\nmodule-type: widget\n\nElement widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar ElementWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nElementWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nElementWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\t// Neuter blacklisted elements\n\tthis.tag = this.parseTreeNode.tag;\n\tif($tw.config.htmlUnsafeElements.indexOf(this.tag) !== -1) {\n\t\tthis.tag = \"safe-\" + this.tag;\n\t}\n\t// Adjust headings by the current base level\n\tvar headingLevel = [\"h1\",\"h2\",\"h3\",\"h4\",\"h5\",\"h6\"].indexOf(this.tag);\n\tif(headingLevel !== -1) {\n\t\tvar baseLevel = parseInt(this.getVariable(\"tv-adjust-heading-level\",\"0\"),10) || 0;\n\t\theadingLevel = Math.min(Math.max(headingLevel + 1 + baseLevel,1),6);\n\t\tthis.tag = \"h\" + headingLevel;\n\t}\n\t// Select the namespace for the tag\n\tvar tagNamespaces = {\n\t\t\tsvg: \"http://www.w3.org/2000/svg\",\n\t\t\tmath: \"http://www.w3.org/1998/Math/MathML\",\n\t\t\tbody: \"http://www.w3.org/1999/xhtml\"\n\t\t};\n\tthis.namespace = tagNamespaces[this.tag];\n\tif(this.namespace) {\n\t\tthis.setVariable(\"namespace\",this.namespace);\n\t} else {\n\t\tthis.namespace = this.getVariable(\"namespace\",{defaultValue: \"http://www.w3.org/1999/xhtml\"});\n\t}\n\t// Invoke the th-rendering-element hook\n\tvar parseTreeNodes = $tw.hooks.invokeHook(\"th-rendering-element\",null,this);\n\tthis.isReplaced = !!parseTreeNodes;\n\tif(parseTreeNodes) {\n\t\t// Use the parse tree nodes provided by the hook\n\t\tthis.makeChildWidgets(parseTreeNodes);\n\t\tthis.renderChildren(this.parentDomNode,null);\n\t\treturn;\n\t}\n\t// Make the child widgets\n\tthis.makeChildWidgets();\n\t// Create the DOM node and render children\n\tvar domNode = this.document.createElementNS(this.namespace,this.tag);\n\tthis.assignAttributes(domNode,{excludeEventAttributes: true});\n\tparent.insertBefore(domNode,nextSibling);\n\tthis.renderChildren(domNode,null);\n\tthis.domNodes.push(domNode);\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nElementWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes(),\n\t\thasChangedAttributes = $tw.utils.count(changedAttributes) > 0;\n\tif(hasChangedAttributes) {\n\t\tif(!this.isReplaced) {\n\t\t\t// Update our attributes\n\t\t\tthis.assignAttributes(this.domNodes[0],{excludeEventAttributes: true});\t\t\t\n\t\t} else {\n\t\t\t// If we were replaced then completely refresh ourselves\n\t\t\treturn this.refreshSelf();\n\t\t}\n\t}\n\treturn this.refreshChildren(changedTiddlers) || hasChangedAttributes;\n};\n\nexports.element = ElementWidget;\n\n})();\n",
            "type": "application/javascript",
            "module-type": "widget"
        },
        "$:/core/modules/widgets/encrypt.js": {
            "title": "$:/core/modules/widgets/encrypt.js",
            "text": "/*\\\ntitle: $:/core/modules/widgets/encrypt.js\ntype: application/javascript\nmodule-type: widget\n\nEncrypt widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar EncryptWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nEncryptWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nEncryptWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tvar textNode = this.document.createTextNode(this.encryptedText);\n\tparent.insertBefore(textNode,nextSibling);\n\tthis.domNodes.push(textNode);\n};\n\n/*\nCompute the internal state of the widget\n*/\nEncryptWidget.prototype.execute = function() {\n\t// Get parameters from our attributes\n\tthis.filter = this.getAttribute(\"filter\",\"[!is[system]]\");\n\t// Encrypt the filtered tiddlers\n\tvar tiddlers = this.wiki.filterTiddlers(this.filter),\n\t\tjson = {},\n\t\tself = this;\n\t$tw.utils.each(tiddlers,function(title) {\n\t\tvar tiddler = self.wiki.getTiddler(title),\n\t\t\tjsonTiddler = {};\n\t\tfor(var f in tiddler.fields) {\n\t\t\tjsonTiddler[f] = tiddler.getFieldString(f);\n\t\t}\n\t\tjson[title] = jsonTiddler;\n\t});\n\tthis.encryptedText = $tw.utils.htmlEncode($tw.crypto.encrypt(JSON.stringify(json)));\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nEncryptWidget.prototype.refresh = function(changedTiddlers) {\n\t// We don't need to worry about refreshing because the encrypt widget isn't for interactive use\n\treturn false;\n};\n\nexports.encrypt = EncryptWidget;\n\n})();\n",
            "type": "application/javascript",
            "module-type": "widget"
        },
        "$:/core/modules/widgets/entity.js": {
            "title": "$:/core/modules/widgets/entity.js",
            "text": "/*\\\ntitle: $:/core/modules/widgets/entity.js\ntype: application/javascript\nmodule-type: widget\n\nHTML entity widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar EntityWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nEntityWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nEntityWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tvar entityString = this.getAttribute(\"entity\",this.parseTreeNode.entity || \"\"),\n\t\ttextNode = this.document.createTextNode($tw.utils.entityDecode(entityString));\n\tparent.insertBefore(textNode,nextSibling);\n\tthis.domNodes.push(textNode);\n};\n\n/*\nCompute the internal state of the widget\n*/\nEntityWidget.prototype.execute = function() {\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nEntityWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.entity) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else {\n\t\treturn false;\t\n\t}\n};\n\nexports.entity = EntityWidget;\n\n})();\n",
            "type": "application/javascript",
            "module-type": "widget"
        },
        "$:/core/modules/widgets/eventcatcher.js": {
            "title": "$:/core/modules/widgets/eventcatcher.js",
            "text": "/*\\\ntitle: $:/core/modules/widgets/eventcatcher.js\ntype: application/javascript\nmodule-type: widget\n\nEvent handler widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar EventWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nEventWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nEventWidget.prototype.render = function(parent,nextSibling) {\n\tvar self = this;\n\t// Remember parent\n\tthis.parentDomNode = parent;\n\t// Compute attributes and execute state\n\tthis.computeAttributes();\n\tthis.execute();\n\t// Create element\n\tvar tag = this.parseTreeNode.isBlock ? \"div\" : \"span\";\n\tif(this.elementTag && $tw.config.htmlUnsafeElements.indexOf(this.elementTag) === -1) {\n\t\ttag = this.elementTag;\n\t}\t\n\tvar domNode = this.document.createElement(tag);\n\tthis.domNode = domNode;\n\t// Assign classes\n\tthis.assignDomNodeClasses();\t\n\t// Add our event handler\n\t$tw.utils.each(this.types,function(type) {\n\t\tdomNode.addEventListener(type,function(event) {\n\t\t\tvar selector = self.getAttribute(\"selector\"),\n\t\t\t\tactions = self.getAttribute(\"actions-\"+type),\n\t\t\t\tselectedNode = event.target,\n\t\t\t\tselectedNodeRect,\n\t\t\t\tcatcherNodeRect,\n\t\t\t\tvariables = {};\n\t\t\tif(selector) {\n\t\t\t\t// Search ancestors for a node that matches the selector\n\t\t\t\twhile(!selectedNode.matches(selector) && selectedNode !== domNode) {\n\t\t\t\t\tselectedNode = selectedNode.parentNode;\n\t\t\t\t}\n\t\t\t\t// If we found one, copy the attributes as variables, otherwise exit\n\t\t\t\tif(selectedNode.matches(selector)) {\n\t\t\t\t\t$tw.utils.each(selectedNode.attributes,function(attribute) {\n\t\t\t\t\t\tvariables[\"dom-\" + attribute.name] = attribute.value.toString();\n\t\t\t\t\t});\n\t\t\t\t\t//Add a variable with a popup coordinate string for the selected node\n\t\t\t\t\tvariables[\"tv-popup-coords\"] = \"(\" + selectedNode.offsetLeft + \",\" + selectedNode.offsetTop +\",\" + selectedNode.offsetWidth + \",\" + selectedNode.offsetHeight + \")\";\n\t\t\t\t\t\n\t\t\t\t\t//Add variables for offset of selected node\n\t\t\t\t\tvariables[\"tv-selectednode-posx\"] = selectedNode.offsetLeft.toString();\n\t\t\t\t\tvariables[\"tv-selectednode-posy\"] = selectedNode.offsetTop.toString();\n\t\t\t\t\tvariables[\"tv-selectednode-width\"] = selectedNode.offsetWidth.toString();\n\t\t\t\t\tvariables[\"tv-selectednode-height\"] = selectedNode.offsetHeight.toString();\n\n\t\t\t\t\t//Add variables for event X and Y position relative to selected node\n\t\t\t\t\tselectedNodeRect = selectedNode.getBoundingClientRect();\t\t\t\t\n\t\t\t\t\tvariables[\"event-fromselected-posx\"] = (event.clientX - selectedNodeRect.left).toString();\n\t\t\t\t\tvariables[\"event-fromselected-posy\"] = (event.clientY - selectedNodeRect.top).toString();\n\n\t\t\t\t\t//Add variables for event X and Y position relative to event catcher node\n\t\t\t\t\tcatcherNodeRect = self.domNode.getBoundingClientRect();\n\t\t\t\t\tvariables[\"event-fromcatcher-posx\"] = (event.clientX - catcherNodeRect.left).toString();\n\t\t\t\t\tvariables[\"event-fromcatcher-posy\"] = (event.clientY - catcherNodeRect.top).toString();\n\t\t\t\t} else {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t}\n\t\t\t// Execute our actions with the variables\n\t\t\tif(actions) {\n\t\t\t\t// Add a variable for the modifier key\n\t\t\t\tvariables.modifier = $tw.keyboardManager.getEventModifierKeyDescriptor(event);\n\t\t\t\t// Add a variable for the mouse button\n\t\t\t\tif(\"button\" in event) {\n\t\t\t\t\tif(event.button === 0) {\n\t\t\t\t\t\tvariables[\"event-mousebutton\"] = \"left\";\n\t\t\t\t\t} else if(event.button === 1) {\n\t\t\t\t\t\tvariables[\"event-mousebutton\"] = \"middle\";\n\t\t\t\t\t} else if(event.button === 2) {\n\t\t\t\t\t\tvariables[\"event-mousebutton\"] = \"right\";\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tvariables[\"event-type\"] = event.type.toString();\n\t\t\t\tif(typeof event.detail === \"object\" && !!event.detail) {\n\t\t\t\t\t$tw.utils.each(event.detail,function(detailValue,detail) {\n\t\t\t\t\t\tvariables[\"event-detail-\" + detail] = detailValue.toString();\n\t\t\t\t\t});\n\t\t\t\t} else if(!!event.detail) {\n\t\t\t\t\tvariables[\"event-detail\"] = event.detail.toString();\n\t\t\t\t}\n\t\t\t\tself.invokeActionString(actions,self,event,variables);\n\t\t\t\tevent.preventDefault();\n\t\t\t\tevent.stopPropagation();\n\t\t\t\treturn true;\n\t\t\t}\n\t\t\treturn false;\n\t\t},false);\n\t});\n\t// Insert element\n\tparent.insertBefore(domNode,nextSibling);\n\tthis.renderChildren(domNode,null);\n\tthis.domNodes.push(domNode);\n};\n\n/*\nCompute the internal state of the widget\n*/\nEventWidget.prototype.execute = function() {\n\tvar self = this;\n\t// Get attributes that require a refresh on change\n\tthis.types = this.getAttribute(\"events\",\"\").split(\" \");\n\tthis.elementTag = this.getAttribute(\"tag\");\n\t// Make child widgets\n\tthis.makeChildWidgets();\n};\n\nEventWidget.prototype.assignDomNodeClasses = function() {\n\tvar classes = this.getAttribute(\"class\",\"\").split(\" \");\n\tclasses.push(\"tc-eventcatcher\");\n\tthis.domNode.className = classes.join(\" \");\t\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nEventWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes[\"events\"] || changedAttributes[\"tag\"]) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else if(changedAttributes[\"class\"]) {\n\t\tthis.assignDomNodeClasses();\n\t}\n\treturn this.refreshChildren(changedTiddlers);\n};\n\nexports.eventcatcher = EventWidget;\n\n})();\n",
            "type": "application/javascript",
            "module-type": "widget"
        },
        "$:/core/modules/widgets/fieldmangler.js": {
            "title": "$:/core/modules/widgets/fieldmangler.js",
            "text": "/*\\\ntitle: $:/core/modules/widgets/fieldmangler.js\ntype: application/javascript\nmodule-type: widget\n\nField mangler widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar FieldManglerWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n\tthis.addEventListeners([\n\t\t{type: \"tm-remove-field\", handler: \"handleRemoveFieldEvent\"},\n\t\t{type: \"tm-add-field\", handler: \"handleAddFieldEvent\"},\n\t\t{type: \"tm-remove-tag\", handler: \"handleRemoveTagEvent\"},\n\t\t{type: \"tm-add-tag\", handler: \"handleAddTagEvent\"}\n\t]);\n};\n\n/*\nInherit from the base widget class\n*/\nFieldManglerWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nFieldManglerWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tthis.renderChildren(parent,nextSibling);\n};\n\n/*\nCompute the internal state of the widget\n*/\nFieldManglerWidget.prototype.execute = function() {\n\t// Get our parameters\n\tthis.mangleTitle = this.getAttribute(\"tiddler\",this.getVariable(\"currentTiddler\"));\n\t// Construct the child widgets\n\tthis.makeChildWidgets();\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nFieldManglerWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.tiddler) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else {\n\t\treturn this.refreshChildren(changedTiddlers);\t\t\n\t}\n};\n\nFieldManglerWidget.prototype.handleRemoveFieldEvent = function(event) {\n\tvar tiddler = this.wiki.getTiddler(this.mangleTitle),\n\t\tdeletion = {};\n\tdeletion[event.param] = undefined;\n\tthis.wiki.addTiddler(new $tw.Tiddler(tiddler,deletion));\n\treturn true;\n};\n\nFieldManglerWidget.prototype.handleAddFieldEvent = function(event) {\n\tvar tiddler = this.wiki.getTiddler(this.mangleTitle),\n\t\taddition = this.wiki.getModificationFields(),\n\t\thadInvalidFieldName = false,\n\t\taddField = function(name,value) {\n\t\t\tvar trimmedName = name.toLowerCase().trim();\n\t\t\tif(!$tw.utils.isValidFieldName(trimmedName)) {\n\t\t\t\tif(!hadInvalidFieldName) {\n\t\t\t\t\talert($tw.language.getString(\n\t\t\t\t\t\t\"InvalidFieldName\",\n\t\t\t\t\t\t{variables:\n\t\t\t\t\t\t\t{fieldName: trimmedName}\n\t\t\t\t\t\t}\n\t\t\t\t\t));\n\t\t\t\t\thadInvalidFieldName = true;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif(!value && tiddler) {\n\t\t\t\t\tvalue = tiddler.fields[trimmedName];\n\t\t\t\t}\n\t\t\t\taddition[trimmedName] = value || \"\";\n\t\t\t}\n\t\t\treturn;\n\t\t};\n\taddition.title = this.mangleTitle;\n\tif(typeof event.param === \"string\") {\n\t\taddField(event.param,\"\");\n\t}\n\tif(typeof event.paramObject === \"object\") {\n\t\tfor(var name in event.paramObject) {\n\t\t\taddField(name,event.paramObject[name]);\n\t\t}\n\t}\n\tthis.wiki.addTiddler(new $tw.Tiddler(tiddler,addition));\n\treturn true;\n};\n\nFieldManglerWidget.prototype.handleRemoveTagEvent = function(event) {\n\tvar tiddler = this.wiki.getTiddler(this.mangleTitle),\n\t\tmodification = this.wiki.getModificationFields();\n\tif(tiddler && tiddler.fields.tags) {\n\t\tvar p = tiddler.fields.tags.indexOf(event.param);\n\t\tif(p !== -1) {\n\t\t\tmodification.tags = (tiddler.fields.tags || []).slice(0);\n\t\t\tmodification.tags.splice(p,1);\n\t\t\tif(modification.tags.length === 0) {\n\t\t\t\tmodification.tags = undefined;\n\t\t\t}\n\t\t\tthis.wiki.addTiddler(new $tw.Tiddler(tiddler,modification));\n\t\t}\n\t}\n\treturn true;\n};\n\nFieldManglerWidget.prototype.handleAddTagEvent = function(event) {\n\tvar tiddler = this.wiki.getTiddler(this.mangleTitle),\n\t\tmodification = this.wiki.getModificationFields();\n\tif(tiddler && typeof event.param === \"string\") {\n\t\tvar tag = event.param.trim();\n\t\tif(tag !== \"\") {\n\t\t\tmodification.tags = (tiddler.fields.tags || []).slice(0);\n\t\t\t$tw.utils.pushTop(modification.tags,tag);\n\t\t\tthis.wiki.addTiddler(new $tw.Tiddler(tiddler,modification));\t\t\t\n\t\t}\n\t} else if(typeof event.param === \"string\" && event.param.trim() !== \"\" && this.mangleTitle.trim() !== \"\") {\n\t\tvar tag = [];\n\t\ttag.push(event.param.trim());\n\t\tthis.wiki.addTiddler(new $tw.Tiddler({title: this.mangleTitle, tags: tag},modification));\n\t}\n\treturn true;\n};\n\nexports.fieldmangler = FieldManglerWidget;\n\n})();\n",
            "type": "application/javascript",
            "module-type": "widget"
        },
        "$:/core/modules/widgets/fields.js": {
            "title": "$:/core/modules/widgets/fields.js",
            "text": "/*\\\ntitle: $:/core/modules/widgets/fields.js\ntype: application/javascript\nmodule-type: widget\n\nFields widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar FieldsWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nFieldsWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nFieldsWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tvar textNode = this.document.createTextNode(this.text);\n\tparent.insertBefore(textNode,nextSibling);\n\tthis.domNodes.push(textNode);\n};\n\n/*\nCompute the internal state of the widget\n*/\nFieldsWidget.prototype.execute = function() {\n\t// Get parameters from our attributes\n\tthis.tiddlerTitle = this.getAttribute(\"tiddler\",this.getVariable(\"currentTiddler\"));\n\tthis.template = this.getAttribute(\"template\");\n\tthis.sort = this.getAttribute(\"sort\",\"yes\") === \"yes\";\n\tthis.sortReverse = this.getAttribute(\"sortReverse\",\"no\") === \"yes\";\n\tthis.exclude = this.getAttribute(\"exclude\");\n\tthis.include = this.getAttribute(\"include\",null);\n\tthis.stripTitlePrefix = this.getAttribute(\"stripTitlePrefix\",\"no\") === \"yes\";\n\t// Get the value to display\n\tvar tiddler = this.wiki.getTiddler(this.tiddlerTitle);\n\n\t// Get the inclusion and exclusion list\n\tvar excludeArr = (this.exclude) ? this.exclude.split(\" \") : [\"text\"];\n\t// Include takes precedence\n\tvar includeArr = (this.include) ? this.include.split(\" \") : null;\n\n\t// Compose the template\n\tvar text = [];\n\tif(this.template && tiddler) {\n\t\tvar fields = [];\n\t\tif (includeArr) { // Include takes precedence\n\t\t\tfor(var i=0; i<includeArr.length; i++) {\n\t\t\t\tif(tiddler.fields[includeArr[i]]) {\n\t\t\t\t\tfields.push(includeArr[i]);\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tfor(var fieldName in tiddler.fields) {\n\t\t\t\tif(excludeArr.indexOf(fieldName) === -1) {\n\t\t\t\t\tfields.push(fieldName);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tif (this.sort) fields.sort();\n\t\tif (this.sortReverse) fields.reverse();\n\t\tfor(var f=0, fmax=fields.length; f<fmax; f++) {\n\t\t\tfieldName = fields[f];\n\t\t\tvar row = this.template,\n\t\t\t\tvalue = tiddler.getFieldString(fieldName);\n\t\t\tif(this.stripTitlePrefix && fieldName === \"title\") {\n\t\t\t\tvar reStrip = /^\\{[^\\}]+\\}(.+)/mg,\n\t\t\t\t\treMatch = reStrip.exec(value);\n\t\t\t\tif(reMatch) {\n\t\t\t\t\tvalue = reMatch[1];\n\t\t\t\t}\n\t\t\t}\n\t\t\trow = $tw.utils.replaceString(row,\"$name$\",fieldName);\n\t\t\trow = $tw.utils.replaceString(row,\"$value$\",value);\n\t\t\trow = $tw.utils.replaceString(row,\"$encoded_value$\",$tw.utils.htmlEncode(value));\n\t\t\ttext.push(row);\n\t\t}\n\t}\n\tthis.text = text.join(\"\");\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nFieldsWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif( changedAttributes.tiddler || changedAttributes.template || changedAttributes.exclude ||\n\t\tchangedAttributes.include || changedAttributes.sort || changedAttributes.sortReverse ||\n\t\tchangedTiddlers[this.tiddlerTitle] || changedAttributes.stripTitlePrefix) {\n\t\t\tthis.refreshSelf();\n\t\t\treturn true;\n\t} else {\n\t\treturn false;\n\t}\n};\n\nexports.fields = FieldsWidget;\n\n})();\n",
            "type": "application/javascript",
            "module-type": "widget"
        },
        "$:/core/modules/widgets/image.js": {
            "title": "$:/core/modules/widgets/image.js",
            "text": "/*\\\ntitle: $:/core/modules/widgets/image.js\ntype: application/javascript\nmodule-type: widget\n\nThe image widget displays an image referenced with an external URI or with a local tiddler title.\n\n```\n<$image src=\"TiddlerTitle\" width=\"320\" height=\"400\" class=\"classnames\">\n```\n\nThe image source can be the title of an existing tiddler or the URL of an external image.\n\nExternal images always generate an HTML `<img>` tag.\n\nTiddlers that have a _canonical_uri field generate an HTML `<img>` tag with the src attribute containing the URI.\n\nTiddlers that contain image data generate an HTML `<img>` tag with the src attribute containing a base64 representation of the image.\n\nTiddlers that contain wikitext could be rendered to a DIV of the usual size of a tiddler, and then transformed to the size requested.\n\nThe width and height attributes are interpreted as a number of pixels, and do not need to include the \"px\" suffix.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar ImageWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nImageWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nImageWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\t// Create element\n\t// Determine what type of image it is\n\tvar tag = \"img\", src = \"\",\n\t\ttiddler = this.wiki.getTiddler(this.imageSource);\n\tif(!tiddler) {\n\t\t// The source isn't the title of a tiddler, so we'll assume it's a URL\n\t\tsrc = this.getVariable(\"tv-get-export-image-link\",{params: [{name: \"src\",value: this.imageSource}],defaultValue: this.imageSource});\n\t} else {\n\t\t// Check if it is an image tiddler\n\t\tif(this.wiki.isImageTiddler(this.imageSource)) {\n\t\t\tvar type = tiddler.fields.type,\n\t\t\t\ttext = tiddler.fields.text,\n\t\t\t\t_canonical_uri = tiddler.fields._canonical_uri;\n\t\t\t// If the tiddler has body text then it doesn't need to be lazily loaded\n\t\t\tif(text) {\n\t\t\t\t// Render the appropriate element for the image type\n\t\t\t\tswitch(type) {\n\t\t\t\t\tcase \"application/pdf\":\n\t\t\t\t\t\ttag = \"embed\";\n\t\t\t\t\t\tsrc = \"data:application/pdf;base64,\" + text;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"image/svg+xml\":\n\t\t\t\t\t\tsrc = \"data:image/svg+xml,\" + encodeURIComponent(text);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tsrc = \"data:\" + type + \";base64,\" + text;\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t} else if(_canonical_uri) {\n\t\t\t\tswitch(type) {\n\t\t\t\t\tcase \"application/pdf\":\n\t\t\t\t\t\ttag = \"embed\";\n\t\t\t\t\t\tsrc = _canonical_uri;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"image/svg+xml\":\n\t\t\t\t\t\tsrc = _canonical_uri;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tsrc = _canonical_uri;\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\t\n\t\t\t} else {\n\t\t\t\t// Just trigger loading of the tiddler\n\t\t\t\tthis.wiki.getTiddlerText(this.imageSource);\n\t\t\t}\n\t\t}\n\t}\n\t// Create the element and assign the attributes\n\tvar domNode = this.document.createElement(tag);\n\tdomNode.setAttribute(\"src\",src);\n\tif(this.imageClass) {\n\t\tdomNode.setAttribute(\"class\",this.imageClass);\t\t\n\t}\n\tif(this.imageWidth) {\n\t\tdomNode.setAttribute(\"width\",this.imageWidth);\n\t}\n\tif(this.imageHeight) {\n\t\tdomNode.setAttribute(\"height\",this.imageHeight);\n\t}\n\tif(this.imageTooltip) {\n\t\tdomNode.setAttribute(\"title\",this.imageTooltip);\t\t\n\t}\n\tif(this.imageAlt) {\n\t\tdomNode.setAttribute(\"alt\",this.imageAlt);\t\t\n\t}\n\t// Insert element\n\tparent.insertBefore(domNode,nextSibling);\n\tthis.domNodes.push(domNode);\n};\n\n/*\nCompute the internal state of the widget\n*/\nImageWidget.prototype.execute = function() {\n\t// Get our parameters\n\tthis.imageSource = this.getAttribute(\"source\");\n\tthis.imageWidth = this.getAttribute(\"width\");\n\tthis.imageHeight = this.getAttribute(\"height\");\n\tthis.imageClass = this.getAttribute(\"class\");\n\tthis.imageTooltip = this.getAttribute(\"tooltip\");\n\tthis.imageAlt = this.getAttribute(\"alt\");\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nImageWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.source || changedAttributes.width || changedAttributes.height || changedAttributes[\"class\"] || changedAttributes.tooltip || changedTiddlers[this.imageSource]) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else {\n\t\treturn false;\t\t\n\t}\n};\n\nexports.image = ImageWidget;\n\n})();\n",
            "type": "application/javascript",
            "module-type": "widget"
        },
        "$:/core/modules/widgets/importvariables.js": {
            "title": "$:/core/modules/widgets/importvariables.js",
            "text": "/*\\\ntitle: $:/core/modules/widgets/importvariables.js\ntype: application/javascript\nmodule-type: widget\n\nImport variable definitions from other tiddlers\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar ImportVariablesWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nImportVariablesWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nImportVariablesWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tthis.renderChildren(parent,nextSibling);\n};\n\n/*\nCompute the internal state of the widget\n*/\nImportVariablesWidget.prototype.execute = function(tiddlerList) {\n\tvar widgetPointer = this;\n\t// Got to flush all the accumulated variables\n\tthis.variables = new this.variablesConstructor();\n\t// Get our parameters\n\tthis.filter = this.getAttribute(\"filter\");\n\t// Compute the filter\n\tthis.tiddlerList = tiddlerList || this.wiki.filterTiddlers(this.filter,this);\n\t// Accumulate the <$set> widgets from each tiddler\n\t$tw.utils.each(this.tiddlerList,function(title) {\n\t\tvar parser = widgetPointer.wiki.parseTiddler(title);\n\t\tif(parser) {\n\t\t\tvar parseTreeNode = parser.tree[0];\n\t\t\twhile(parseTreeNode && parseTreeNode.type === \"set\") {\n\t\t\t\tvar node = {\n\t\t\t\t\ttype: \"set\",\n\t\t\t\t\tattributes: parseTreeNode.attributes,\n\t\t\t\t\tparams: parseTreeNode.params,\n\t\t\t\t\tisMacroDefinition: parseTreeNode.isMacroDefinition\n\t\t\t\t};\n\t\t\t\tif (parseTreeNode.isMacroDefinition) {\n\t\t\t\t\t// Macro definitions can be folded into\n\t\t\t\t\t// current widget instead of adding\n\t\t\t\t\t// another link to the chain.\n\t\t\t\t\tvar widget = widgetPointer.makeChildWidget(node);\n\t\t\t\t\twidget.computeAttributes();\n\t\t\t\t\twidget.execute();\n\t\t\t\t\t// We SHALLOW copy over all variables\n\t\t\t\t\t// in widget. We can't use\n\t\t\t\t\t// $tw.utils.assign, because that copies\n\t\t\t\t\t// up the prototype chain, which we\n\t\t\t\t\t// don't want.\n\t\t\t\t\t$tw.utils.each(Object.keys(widget.variables), function(key) {\n\t\t\t\t\t\twidgetPointer.variables[key] = widget.variables[key];\n\t\t\t\t\t});\n\t\t\t\t} else {\n\t\t\t\t\twidgetPointer.children = [widgetPointer.makeChildWidget(node)];\n\t\t\t\t\t// No more regenerating children for\n\t\t\t\t\t// this widget. If it needs to refresh,\n\t\t\t\t\t// it'll do so along with the the whole\n\t\t\t\t\t// importvariable tree.\n\t\t\t\t\tif (widgetPointer != this) {\n\t\t\t\t\t\twidgetPointer.makeChildWidgets = function(){};\n\t\t\t\t\t}\n\t\t\t\t\twidgetPointer = widgetPointer.children[0];\n\t\t\t\t}\n\t\t\t\tparseTreeNode = parseTreeNode.children && parseTreeNode.children[0];\n\t\t\t}\n\t\t} \n\t});\n\n\tif (widgetPointer != this) {\n\t\twidgetPointer.parseTreeNode.children = this.parseTreeNode.children;\n\t} else {\n\t\twidgetPointer.makeChildWidgets();\n\t}\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nImportVariablesWidget.prototype.refresh = function(changedTiddlers) {\n\t// Recompute our attributes and the filter list\n\tvar changedAttributes = this.computeAttributes(),\n\t\ttiddlerList = this.wiki.filterTiddlers(this.getAttribute(\"filter\"),this);\n\t// Refresh if the filter has changed, or the list of tiddlers has changed, or any of the tiddlers in the list has changed\n\tfunction haveListedTiddlersChanged() {\n\t\tvar changed = false;\n\t\ttiddlerList.forEach(function(title) {\n\t\t\tif(changedTiddlers[title]) {\n\t\t\t\tchanged = true;\n\t\t\t}\n\t\t});\n\t\treturn changed;\n\t}\n\tif(changedAttributes.filter || !$tw.utils.isArrayEqual(this.tiddlerList,tiddlerList) || haveListedTiddlersChanged()) {\n\t\t// Compute the filter\n\t\tthis.removeChildDomNodes();\n\t\tthis.execute(tiddlerList);\n\t\tthis.renderChildren(this.parentDomNode,this.findNextSiblingDomNode());\n\t\treturn true;\n\t} else {\n\t\treturn this.refreshChildren(changedTiddlers);\t\t\n\t}\n};\n\nexports.importvariables = ImportVariablesWidget;\n\n})();\n",
            "type": "application/javascript",
            "module-type": "widget"
        },
        "$:/core/modules/widgets/keyboard.js": {
            "title": "$:/core/modules/widgets/keyboard.js",
            "text": "/*\\\ntitle: $:/core/modules/widgets/keyboard.js\ntype: application/javascript\nmodule-type: widget\n\nKeyboard shortcut widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar KeyboardWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nKeyboardWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nKeyboardWidget.prototype.render = function(parent,nextSibling) {\n\tvar self = this;\n\t// Remember parent\n\tthis.parentDomNode = parent;\n\t// Compute attributes and execute state\n\tthis.computeAttributes();\n\tthis.execute();\n\tvar tag = this.parseTreeNode.isBlock ? \"div\" : \"span\";\n\tif(this.tag && $tw.config.htmlUnsafeElements.indexOf(this.tag) === -1) {\n\t\ttag = this.tag;\n\t}\n\t// Create element\n\tvar domNode = this.document.createElement(tag);\n\t// Assign classes\n\tvar classes = (this[\"class\"] || \"\").split(\" \");\n\tclasses.push(\"tc-keyboard\");\n\tdomNode.className = classes.join(\" \");\n\t// Add a keyboard event handler\n\tdomNode.addEventListener(\"keydown\",function (event) {\n\t\tif($tw.keyboardManager.checkKeyDescriptors(event,self.keyInfoArray)) {\n\t\t\tvar handled = self.invokeActions(self,event);\n\t\t\tif(self.actions) {\n\t\t\t\tself.invokeActionString(self.actions,self,event);\n\t\t\t}\n\t\t\tself.dispatchMessage(event);\n\t\t\tif(handled || self.actions || self.message) {\n\t\t\t\tevent.preventDefault();\n\t\t\t\tevent.stopPropagation();\n\t\t\t}\n\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t},false);\n\t// Insert element\n\tparent.insertBefore(domNode,nextSibling);\n\tthis.renderChildren(domNode,null);\n\tthis.domNodes.push(domNode);\n};\n\nKeyboardWidget.prototype.dispatchMessage = function(event) {\n\tthis.dispatchEvent({type: this.message, param: this.param, tiddlerTitle: this.getVariable(\"currentTiddler\")});\n};\n\n/*\nCompute the internal state of the widget\n*/\nKeyboardWidget.prototype.execute = function() {\n\tvar self = this;\n\t// Get attributes\n\tthis.actions = this.getAttribute(\"actions\",\"\");\n\tthis.message = this.getAttribute(\"message\",\"\");\n\tthis.param = this.getAttribute(\"param\",\"\");\n\tthis.key = this.getAttribute(\"key\",\"\");\n\tthis.tag = this.getAttribute(\"tag\",\"\");\n\tthis.keyInfoArray = $tw.keyboardManager.parseKeyDescriptors(this.key);\n\tthis[\"class\"] = this.getAttribute(\"class\",\"\");\n\tif(this.key.substr(0,2) === \"((\" && this.key.substr(-2,2) === \"))\") {\n\t\tthis.shortcutTiddlers = [];\n\t\tvar name = this.key.substring(2,this.key.length -2);\n\t\t$tw.utils.each($tw.keyboardManager.lookupNames,function(platformDescriptor) {\n\t\t\tself.shortcutTiddlers.push(\"$:/config/\" + platformDescriptor + \"/\" + name);\n\t\t});\n\t}\n\t// Make child widgets\n\tthis.makeChildWidgets();\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nKeyboardWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.message || changedAttributes.param || changedAttributes.key || changedAttributes[\"class\"] || changedAttributes.tag) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t}\n\t// Update the keyInfoArray if one of its shortcut-config-tiddlers has changed\n\tif(this.shortcutTiddlers && $tw.utils.hopArray(changedTiddlers,this.shortcutTiddlers)) {\n\t\tthis.keyInfoArray = $tw.keyboardManager.parseKeyDescriptors(this.key);\n\t}\n\treturn this.refreshChildren(changedTiddlers);\n};\n\nexports.keyboard = KeyboardWidget;\n\n})();\n",
            "type": "application/javascript",
            "module-type": "widget"
        },
        "$:/core/modules/widgets/link.js": {
            "title": "$:/core/modules/widgets/link.js",
            "text": "/*\\\ntitle: $:/core/modules/widgets/link.js\ntype: application/javascript\nmodule-type: widget\n\nLink widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar LinkWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nLinkWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nLinkWidget.prototype.render = function(parent,nextSibling) {\n\t// Save the parent dom node\n\tthis.parentDomNode = parent;\n\t// Compute our attributes\n\tthis.computeAttributes();\n\t// Execute our logic\n\tthis.execute();\n\t// Get the value of the tv-wikilinks configuration macro\n\tvar wikiLinksMacro = this.getVariable(\"tv-wikilinks\"),\n\t\tuseWikiLinks = wikiLinksMacro ? (wikiLinksMacro.trim() !== \"no\") : true,\n\t\tmissingLinksEnabled = !(this.hideMissingLinks && this.isMissing && !this.isShadow);\n\t// Render the link if required\n\tif(useWikiLinks && missingLinksEnabled) {\n\t\tthis.renderLink(parent,nextSibling);\n\t} else {\n\t\t// Just insert the link text\n\t\tvar domNode = this.document.createElement(\"span\");\n\t\tparent.insertBefore(domNode,nextSibling);\n\t\tthis.renderChildren(domNode,null);\n\t\tthis.domNodes.push(domNode);\n\t}\n};\n\n/*\nRender this widget into the DOM\n*/\nLinkWidget.prototype.renderLink = function(parent,nextSibling) {\n\tvar self = this;\n\t// Sanitise the specified tag\n\tvar tag = this.linkTag;\n\tif($tw.config.htmlUnsafeElements.indexOf(tag) !== -1) {\n\t\ttag = \"a\";\n\t}\n\t// Create our element\n\tvar namespace = this.getVariable(\"namespace\",{defaultValue: \"http://www.w3.org/1999/xhtml\"}),\n\t\tdomNode = this.document.createElementNS(namespace,tag);\n\t// Assign classes\n\tvar classes = [];\n\tif(this.overrideClasses === undefined) {\n\t\tclasses.push(\"tc-tiddlylink\");\n\t\tif(this.isShadow) {\n\t\t\tclasses.push(\"tc-tiddlylink-shadow\");\n\t\t}\n\t\tif(this.isMissing && !this.isShadow) {\n\t\t\tclasses.push(\"tc-tiddlylink-missing\");\n\t\t} else {\n\t\t\tif(!this.isMissing) {\n\t\t\t\tclasses.push(\"tc-tiddlylink-resolves\");\n\t\t\t}\n\t\t}\n\t\tif(this.linkClasses) {\n\t\t\tclasses.push(this.linkClasses);\t\t\t\n\t\t}\n\t} else if(this.overrideClasses !== \"\") {\n\t\tclasses.push(this.overrideClasses)\n\t}\n\tif(classes.length > 0) {\n\t\tdomNode.setAttribute(\"class\",classes.join(\" \"));\n\t}\n\t// Set an href\n\tvar wikilinkTransformFilter = this.getVariable(\"tv-filter-export-link\"),\n\t\twikiLinkText;\n\tif(wikilinkTransformFilter) {\n\t\t// Use the filter to construct the href\n\t\twikiLinkText = this.wiki.filterTiddlers(wikilinkTransformFilter,this,function(iterator) {\n\t\t\titerator(self.wiki.getTiddler(self.to),self.to)\n\t\t})[0];\n\t} else {\n\t\t// Expand the tv-wikilink-template variable to construct the href\n\t\tvar wikiLinkTemplateMacro = this.getVariable(\"tv-wikilink-template\"),\n\t\t\twikiLinkTemplate = wikiLinkTemplateMacro ? wikiLinkTemplateMacro.trim() : \"#$uri_encoded$\";\n\t\twikiLinkText = $tw.utils.replaceString(wikiLinkTemplate,\"$uri_encoded$\",encodeURIComponent(this.to));\n\t\twikiLinkText = $tw.utils.replaceString(wikiLinkText,\"$uri_doubleencoded$\",encodeURIComponent(encodeURIComponent(this.to)));\n\t}\n\t// Override with the value of tv-get-export-link if defined\n\twikiLinkText = this.getVariable(\"tv-get-export-link\",{params: [{name: \"to\",value: this.to}],defaultValue: wikiLinkText});\n\tif(tag === \"a\") {\n\t\tvar namespaceHref = (namespace === \"http://www.w3.org/2000/svg\") ? \"http://www.w3.org/1999/xlink\" : undefined;\n\t\tdomNode.setAttributeNS(namespaceHref,\"href\",wikiLinkText);\n\t}\n\t// Set the tabindex\n\tif(this.tabIndex) {\n\t\tdomNode.setAttribute(\"tabindex\",this.tabIndex);\n\t}\n\t// Set the tooltip\n\t// HACK: Performance issues with re-parsing the tooltip prevent us defaulting the tooltip to \"<$transclude field='tooltip'><$transclude field='title'/></$transclude>\"\n\tvar tooltipWikiText = this.tooltip || this.getVariable(\"tv-wikilink-tooltip\");\n\tif(tooltipWikiText) {\n\t\tvar tooltipText = this.wiki.renderText(\"text/plain\",\"text/vnd.tiddlywiki\",tooltipWikiText,{\n\t\t\t\tparseAsInline: true,\n\t\t\t\tvariables: {\n\t\t\t\t\tcurrentTiddler: this.to\n\t\t\t\t},\n\t\t\t\tparentWidget: this\n\t\t\t});\n\t\tdomNode.setAttribute(\"title\",tooltipText);\n\t}\n\tif(this[\"aria-label\"]) {\n\t\tdomNode.setAttribute(\"aria-label\",this[\"aria-label\"]);\n\t}\n\t// Add a click event handler\n\t$tw.utils.addEventListeners(domNode,[\n\t\t{name: \"click\", handlerObject: this, handlerMethod: \"handleClickEvent\"},\n\t]);\n\t// Make the link draggable if required\n\tif(this.draggable === \"yes\") {\n\t\t$tw.utils.makeDraggable({\n\t\t\tdomNode: domNode,\n\t\t\tdragTiddlerFn: function() {return self.to;},\n\t\t\twidget: this\n\t\t});\n\t}\n\t// Insert the link into the DOM and render any children\n\tparent.insertBefore(domNode,nextSibling);\n\tthis.renderChildren(domNode,null);\n\tthis.domNodes.push(domNode);\n};\n\nLinkWidget.prototype.handleClickEvent = function(event) {\n\t// Send the click on its way as a navigate event\n\tvar bounds = this.domNodes[0].getBoundingClientRect();\n\tthis.dispatchEvent({\n\t\ttype: \"tm-navigate\",\n\t\tnavigateTo: this.to,\n\t\tnavigateFromTitle: this.getVariable(\"storyTiddler\"),\n\t\tnavigateFromNode: this,\n\t\tnavigateFromClientRect: { top: bounds.top, left: bounds.left, width: bounds.width, right: bounds.right, bottom: bounds.bottom, height: bounds.height\n\t\t},\n\t\tnavigateSuppressNavigation: event.metaKey || event.ctrlKey || (event.button === 1),\n\t\tmetaKey: event.metaKey,\n\t\tctrlKey: event.ctrlKey,\n\t\taltKey: event.altKey,\n\t\tshiftKey: event.shiftKey,\n\t\tevent: event\n\t});\n\tif(this.domNodes[0].hasAttribute(\"href\")) {\n\t\tevent.preventDefault();\n\t}\n\tevent.stopPropagation();\n\treturn false;\n};\n\n/*\nCompute the internal state of the widget\n*/\nLinkWidget.prototype.execute = function() {\n\t// Pick up our attributes\n\tthis.to = this.getAttribute(\"to\",this.getVariable(\"currentTiddler\"));\n\tthis.tooltip = this.getAttribute(\"tooltip\");\n\tthis[\"aria-label\"] = this.getAttribute(\"aria-label\");\n\tthis.linkClasses = this.getAttribute(\"class\");\n\tthis.overrideClasses = this.getAttribute(\"overrideClass\");\n\tthis.tabIndex = this.getAttribute(\"tabindex\");\n\tthis.draggable = this.getAttribute(\"draggable\",\"yes\");\n\tthis.linkTag = this.getAttribute(\"tag\",\"a\");\n\t// Determine the link characteristics\n\tthis.isMissing = !this.wiki.tiddlerExists(this.to);\n\tthis.isShadow = this.wiki.isShadowTiddler(this.to);\n\tthis.hideMissingLinks = (this.getVariable(\"tv-show-missing-links\") || \"yes\") === \"no\";\n\t// Make the child widgets\n\tvar templateTree;\n\tif(this.parseTreeNode.children && this.parseTreeNode.children.length > 0) {\n\t\ttemplateTree = this.parseTreeNode.children;\n\t} else {\n\t\t// Default template is a link to the title\n\t\ttemplateTree = [{type: \"text\", text: this.to}];\n\t}\n\tthis.makeChildWidgets(templateTree);\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nLinkWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.to || changedTiddlers[this.to] || changedAttributes[\"aria-label\"] || changedAttributes.tooltip) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t}\n\treturn this.refreshChildren(changedTiddlers);\n};\n\nexports.link = LinkWidget;\n\n})();\n",
            "type": "application/javascript",
            "module-type": "widget"
        },
        "$:/core/modules/widgets/linkcatcher.js": {
            "title": "$:/core/modules/widgets/linkcatcher.js",
            "text": "/*\\\ntitle: $:/core/modules/widgets/linkcatcher.js\ntype: application/javascript\nmodule-type: widget\n\nLinkcatcher widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar LinkCatcherWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n\tthis.addEventListeners([\n\t\t{type: \"tm-navigate\", handler: \"handleNavigateEvent\"}\n\t]);\n};\n\n/*\nInherit from the base widget class\n*/\nLinkCatcherWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nLinkCatcherWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tthis.renderChildren(parent,nextSibling);\n};\n\n/*\nCompute the internal state of the widget\n*/\nLinkCatcherWidget.prototype.execute = function() {\n\t// Get our parameters\n\tthis.catchTo = this.getAttribute(\"to\");\n\tthis.catchMessage = this.getAttribute(\"message\");\n\tthis.catchSet = this.getAttribute(\"set\");\n\tthis.catchSetTo = this.getAttribute(\"setTo\");\n\tthis.catchActions = this.getAttribute(\"actions\");\n\t// Construct the child widgets\n\tthis.makeChildWidgets();\n\t// When executing actions we avoid trapping navigate events, so that we don't trigger ourselves recursively\n\tthis.executingActions = false;\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nLinkCatcherWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.to || changedAttributes.message || changedAttributes.set || changedAttributes.setTo) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else {\n\t\treturn this.refreshChildren(changedTiddlers);\t\t\n\t}\n};\n\n/*\nHandle a tm-navigate event\n*/\nLinkCatcherWidget.prototype.handleNavigateEvent = function(event) {\n\tif(!this.executingActions) {\n\t\t// Execute the actions\n\t\tif(this.catchTo) {\n\t\t\tthis.wiki.setTextReference(this.catchTo,event.navigateTo,this.getVariable(\"currentTiddler\"));\n\t\t}\n\t\tif(this.catchMessage && this.parentWidget) {\n\t\t\tthis.parentWidget.dispatchEvent({\n\t\t\t\ttype: this.catchMessage,\n\t\t\t\tparam: event.navigateTo,\n\t\t\t\tnavigateTo: event.navigateTo\n\t\t\t});\n\t\t}\n\t\tif(this.catchSet) {\n\t\t\tvar tiddler = this.wiki.getTiddler(this.catchSet);\n\t\t\tthis.wiki.addTiddler(new $tw.Tiddler(tiddler,{title: this.catchSet, text: this.catchSetTo}));\n\t\t}\n\t\tif(this.catchActions) {\n\t\t\tthis.executingActions = true;\n\t\t\tvar modifierKey = $tw.keyboardManager.getEventModifierKeyDescriptor(event);\n\t\t\tthis.invokeActionString(this.catchActions,this,event,{navigateTo: event.navigateTo, modifier: modifierKey});\n\t\t\tthis.executingActions = false;\n\t\t}\n\t} else {\n\t\t// This is a navigate event generated by the actions of this linkcatcher, so we don't trap it again, but just pass it to the parent\n\t\tthis.parentWidget.dispatchEvent({\n\t\t\ttype: \"tm-navigate\",\n\t\t\tparam: event.navigateTo,\n\t\t\tnavigateTo: event.navigateTo\n\t\t});\n\t}\n\treturn false;\n};\n\nexports.linkcatcher = LinkCatcherWidget;\n\n})();\n",
            "type": "application/javascript",
            "module-type": "widget"
        },
        "$:/core/modules/widgets/list.js": {
            "title": "$:/core/modules/widgets/list.js",
            "text": "/*\\\ntitle: $:/core/modules/widgets/list.js\ntype: application/javascript\nmodule-type: widget\n\nList and list item widgets\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\n/*\nThe list widget creates list element sub-widgets that reach back into the list widget for their configuration\n*/\n\nvar ListWidget = function(parseTreeNode,options) {\n\t// Initialise the storyviews if they've not been done already\n\tif(!this.storyViews) {\n\t\tListWidget.prototype.storyViews = {};\n\t\t$tw.modules.applyMethods(\"storyview\",this.storyViews);\n\t}\n\t// Main initialisation inherited from widget.js\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nListWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nListWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tthis.renderChildren(parent,nextSibling);\n\t// Construct the storyview\n\tvar StoryView = this.storyViews[this.storyViewName];\n\tif(this.storyViewName && !StoryView) {\n\t\tStoryView = this.storyViews[\"classic\"];\n\t}\n\tif(StoryView && !this.document.isTiddlyWikiFakeDom) {\n\t\tthis.storyview = new StoryView(this);\n\t} else {\n\t\tthis.storyview = null;\n\t}\n};\n\n/*\nCompute the internal state of the widget\n*/\nListWidget.prototype.execute = function() {\n\t// Get our attributes\n\tthis.template = this.getAttribute(\"template\");\n\tthis.editTemplate = this.getAttribute(\"editTemplate\");\n\tthis.variableName = this.getAttribute(\"variable\",\"currentTiddler\");\n\tthis.storyViewName = this.getAttribute(\"storyview\");\n\tthis.historyTitle = this.getAttribute(\"history\");\n\t// Compose the list elements\n\tthis.list = this.getTiddlerList();\n\tvar members = [],\n\t\tself = this;\n\t// Check for an empty list\n\tif(this.list.length === 0) {\n\t\tmembers = this.getEmptyMessage();\n\t} else {\n\t\t$tw.utils.each(this.list,function(title,index) {\n\t\t\tmembers.push(self.makeItemTemplate(title));\n\t\t});\n\t}\n\t// Construct the child widgets\n\tthis.makeChildWidgets(members);\n\t// Clear the last history\n\tthis.history = [];\n};\n\nListWidget.prototype.getTiddlerList = function() {\n\tvar defaultFilter = \"[!is[system]sort[title]]\";\n\treturn this.wiki.filterTiddlers(this.getAttribute(\"filter\",defaultFilter),this);\n};\n\nListWidget.prototype.getEmptyMessage = function() {\n\tvar parser,\n\t\temptyMessage = this.getAttribute(\"emptyMessage\",\"\");\n\t// this.wiki.parseText() calls \n\t// new Parser(..), which should only be done, if needed, because it's heavy!\n\tif (emptyMessage === \"\") {\n\t\treturn [];\n\t}\n\tparser = this.wiki.parseText(\"text/vnd.tiddlywiki\",emptyMessage,{parseAsInline: true});\n\tif(parser) {\n\t\treturn parser.tree;\n\t} else {\n\t\treturn [];\n\t}\n};\n\n/*\nCompose the template for a list item\n*/\nListWidget.prototype.makeItemTemplate = function(title) {\n\t// Check if the tiddler is a draft\n\tvar tiddler = this.wiki.getTiddler(title),\n\t\tisDraft = tiddler && tiddler.hasField(\"draft.of\"),\n\t\ttemplate = this.template,\n\t\ttemplateTree;\n\tif(isDraft && this.editTemplate) {\n\t\ttemplate = this.editTemplate;\n\t}\n\t// Compose the transclusion of the template\n\tif(template) {\n\t\ttemplateTree = [{type: \"transclude\", attributes: {tiddler: {type: \"string\", value: template}}}];\n\t} else {\n\t\tif(this.parseTreeNode.children && this.parseTreeNode.children.length > 0) {\n\t\t\ttemplateTree = this.parseTreeNode.children;\n\t\t} else {\n\t\t\t// Default template is a link to the title\n\t\t\ttemplateTree = [{type: \"element\", tag: this.parseTreeNode.isBlock ? \"div\" : \"span\", children: [{type: \"link\", attributes: {to: {type: \"string\", value: title}}, children: [\n\t\t\t\t\t{type: \"text\", text: title}\n\t\t\t]}]}];\n\t\t}\n\t}\n\t// Return the list item\n\treturn {type: \"listitem\", itemTitle: title, variableName: this.variableName, children: templateTree};\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nListWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes(),\n\t\tresult;\n\t// Call the storyview\n\tif(this.storyview && this.storyview.refreshStart) {\n\t\tthis.storyview.refreshStart(changedTiddlers,changedAttributes);\n\t}\n\t// Completely refresh if any of our attributes have changed\n\tif(changedAttributes.filter || changedAttributes.template || changedAttributes.editTemplate || changedAttributes.emptyMessage || changedAttributes.storyview || changedAttributes.history) {\n\t\tthis.refreshSelf();\n\t\tresult = true;\n\t} else {\n\t\t// Handle any changes to the list\n\t\tresult = this.handleListChanges(changedTiddlers);\n\t\t// Handle any changes to the history stack\n\t\tif(this.historyTitle && changedTiddlers[this.historyTitle]) {\n\t\t\tthis.handleHistoryChanges();\n\t\t}\n\t}\n\t// Call the storyview\n\tif(this.storyview && this.storyview.refreshEnd) {\n\t\tthis.storyview.refreshEnd(changedTiddlers,changedAttributes);\n\t}\n\treturn result;\n};\n\n/*\nHandle any changes to the history list\n*/\nListWidget.prototype.handleHistoryChanges = function() {\n\t// Get the history data\n\tvar newHistory = this.wiki.getTiddlerDataCached(this.historyTitle,[]);\n\t// Ignore any entries of the history that match the previous history\n\tvar entry = 0;\n\twhile(entry < newHistory.length && entry < this.history.length && newHistory[entry].title === this.history[entry].title) {\n\t\tentry++;\n\t}\n\t// Navigate forwards to each of the new tiddlers\n\twhile(entry < newHistory.length) {\n\t\tif(this.storyview && this.storyview.navigateTo) {\n\t\t\tthis.storyview.navigateTo(newHistory[entry]);\n\t\t}\n\t\tentry++;\n\t}\n\t// Update the history\n\tthis.history = newHistory;\n};\n\n/*\nProcess any changes to the list\n*/\nListWidget.prototype.handleListChanges = function(changedTiddlers) {\n\t// Get the new list\n\tvar prevList = this.list;\n\tthis.list = this.getTiddlerList();\n\t// Check for an empty list\n\tif(this.list.length === 0) {\n\t\t// Check if it was empty before\n\t\tif(prevList.length === 0) {\n\t\t\t// If so, just refresh the empty message\n\t\t\treturn this.refreshChildren(changedTiddlers);\n\t\t} else {\n\t\t\t// Replace the previous content with the empty message\n\t\t\tfor(t=this.children.length-1; t>=0; t--) {\n\t\t\t\tthis.removeListItem(t);\n\t\t\t}\n\t\t\tvar nextSibling = this.findNextSiblingDomNode();\n\t\t\tthis.makeChildWidgets(this.getEmptyMessage());\n\t\t\tthis.renderChildren(this.parentDomNode,nextSibling);\n\t\t\treturn true;\n\t\t}\n\t} else {\n\t\t// If the list was empty then we need to remove the empty message\n\t\tif(prevList.length === 0) {\n\t\t\tthis.removeChildDomNodes();\n\t\t\tthis.children = [];\n\t\t}\n\t\t// Cycle through the list, inserting and removing list items as needed\n\t\tvar hasRefreshed = false;\n\t\tfor(var t=0; t<this.list.length; t++) {\n\t\t\tvar index = this.findListItem(t,this.list[t]);\n\t\t\tif(index === undefined) {\n\t\t\t\t// The list item must be inserted\n\t\t\t\tthis.insertListItem(t,this.list[t]);\n\t\t\t\thasRefreshed = true;\n\t\t\t} else {\n\t\t\t\t// There are intervening list items that must be removed\n\t\t\t\tfor(var n=index-1; n>=t; n--) {\n\t\t\t\t\tthis.removeListItem(n);\n\t\t\t\t\thasRefreshed = true;\n\t\t\t\t}\n\t\t\t\t// Refresh the item we're reusing\n\t\t\t\tvar refreshed = this.children[t].refresh(changedTiddlers);\n\t\t\t\thasRefreshed = hasRefreshed || refreshed;\n\t\t\t}\n\t\t}\n\t\t// Remove any left over items\n\t\tfor(t=this.children.length-1; t>=this.list.length; t--) {\n\t\t\tthis.removeListItem(t);\n\t\t\thasRefreshed = true;\n\t\t}\n\t\treturn hasRefreshed;\n\t}\n};\n\n/*\nFind the list item with a given title, starting from a specified position\n*/\nListWidget.prototype.findListItem = function(startIndex,title) {\n\twhile(startIndex < this.children.length) {\n\t\tif(this.children[startIndex].parseTreeNode.itemTitle === title) {\n\t\t\treturn startIndex;\n\t\t}\n\t\tstartIndex++;\n\t}\n\treturn undefined;\n};\n\n/*\nInsert a new list item at the specified index\n*/\nListWidget.prototype.insertListItem = function(index,title) {\n\t// Create, insert and render the new child widgets\n\tvar widget = this.makeChildWidget(this.makeItemTemplate(title));\n\twidget.parentDomNode = this.parentDomNode; // Hack to enable findNextSiblingDomNode() to work\n\tthis.children.splice(index,0,widget);\n\tvar nextSibling = widget.findNextSiblingDomNode();\n\twidget.render(this.parentDomNode,nextSibling);\n\t// Animate the insertion if required\n\tif(this.storyview && this.storyview.insert) {\n\t\tthis.storyview.insert(widget);\n\t}\n\treturn true;\n};\n\n/*\nRemove the specified list item\n*/\nListWidget.prototype.removeListItem = function(index) {\n\tvar widget = this.children[index];\n\t// Animate the removal if required\n\tif(this.storyview && this.storyview.remove) {\n\t\tthis.storyview.remove(widget);\n\t} else {\n\t\twidget.removeChildDomNodes();\n\t}\n\t// Remove the child widget\n\tthis.children.splice(index,1);\n};\n\nexports.list = ListWidget;\n\nvar ListItemWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nListItemWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nListItemWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tthis.renderChildren(parent,nextSibling);\n};\n\n/*\nCompute the internal state of the widget\n*/\nListItemWidget.prototype.execute = function() {\n\t// Set the current list item title\n\tthis.setVariable(this.parseTreeNode.variableName,this.parseTreeNode.itemTitle);\n\t// Construct the child widgets\n\tthis.makeChildWidgets();\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nListItemWidget.prototype.refresh = function(changedTiddlers) {\n\treturn this.refreshChildren(changedTiddlers);\n};\n\nexports.listitem = ListItemWidget;\n\n})();",
            "type": "application/javascript",
            "module-type": "widget"
        },
        "$:/core/modules/widgets/log.js": {
            "title": "$:/core/modules/widgets/log.js",
            "text": "/*\\\ntitle: $:/core/modules/widgets/log.js\ntype: application/javascript\nmodule-type: widget-subclass\n\nWidget to log debug messages\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.baseClass = \"action-log\";\n\nexports.name = \"log\";\n\nexports.constructor = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n}\n\nexports.prototype = {};\n\nexports.prototype.render = function(event) {\n\tObject.getPrototypeOf(Object.getPrototypeOf(this)).render.call(this,event);\t\n\tObject.getPrototypeOf(Object.getPrototypeOf(this)).log.call(this);\n}\n\n})();",
            "type": "application/javascript",
            "module-type": "widget-subclass"
        },
        "$:/core/modules/widgets/macrocall.js": {
            "title": "$:/core/modules/widgets/macrocall.js",
            "text": "/*\\\ntitle: $:/core/modules/widgets/macrocall.js\ntype: application/javascript\nmodule-type: widget\n\nMacrocall widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar MacroCallWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nMacroCallWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nMacroCallWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tthis.renderChildren(parent,nextSibling);\n};\n\n/*\nCompute the internal state of the widget\n*/\nMacroCallWidget.prototype.execute = function() {\n\t// Get the parse type if specified\n\tthis.parseType = this.getAttribute(\"$type\",\"text/vnd.tiddlywiki\");\n\tthis.renderOutput = this.getAttribute(\"$output\",\"text/html\");\n\t// Merge together the parameters specified in the parse tree with the specified attributes\n\tvar params = this.parseTreeNode.params ? this.parseTreeNode.params.slice(0) : [];\n\t$tw.utils.each(this.attributes,function(attribute,name) {\n\t\tif(name.charAt(0) !== \"$\") {\n\t\t\tparams.push({name: name, value: attribute});\t\t\t\n\t\t}\n\t});\n\t// Get the macro value\n\tvar macroName = this.parseTreeNode.name || this.getAttribute(\"$name\"),\n\t\tvariableInfo = this.getVariableInfo(macroName,{params: params}),\n\t\ttext = variableInfo.text,\n\t\tparseTreeNodes;\n\t// Are we rendering to HTML?\n\tif(this.renderOutput === \"text/html\") {\n\t\t// If so we'll return the parsed macro\n\t\t// Check if we've already cached parsing this macro\n\t\tvar mode = this.parseTreeNode.isBlock ? \"blockParser\" : \"inlineParser\",\n\t\t\tparser;\n\t\tif(variableInfo.srcVariable && variableInfo.srcVariable[mode]) {\n\t\t\tparser = variableInfo.srcVariable[mode];\n\t\t} else {\n\t\t\tparser = this.wiki.parseText(this.parseType,text,\n\t\t\t\t\t\t\t\t{parseAsInline: !this.parseTreeNode.isBlock});\n\t\t\tif(variableInfo.isCacheable && variableInfo.srcVariable) {\n\t\t\t\tvariableInfo.srcVariable[mode] = parser;\n\t\t\t}\n\t\t}\n\t\tvar parseTreeNodes = parser ? parser.tree : [];\n\t\t// Wrap the parse tree in a vars widget assigning the parameters to variables named \"__paramname__\"\n\t\tvar attributes = {};\n\t\t$tw.utils.each(variableInfo.params,function(param) {\n\t\t\tvar name = \"__\" + param.name + \"__\";\n\t\t\tattributes[name] = {\n\t\t\t\tname: name,\n\t\t\t\ttype: \"string\",\n\t\t\t\tvalue: param.value\n\t\t\t};\n\t\t});\n\t\tparseTreeNodes = [{\n\t\t\ttype: \"vars\",\n\t\t\tattributes: attributes,\n\t\t\tchildren: parseTreeNodes\n\t\t}];\n\t} else if(this.renderOutput === \"text/raw\") {\n\t\tparseTreeNodes = [{type: \"text\", text: text}];\n\t} else {\n\t\t// Otherwise, we'll render the text\n\t\tvar plainText = this.wiki.renderText(\"text/plain\",this.parseType,text,{parentWidget: this});\n\t\tparseTreeNodes = [{type: \"text\", text: plainText}];\n\t}\n\t// Construct the child widgets\n\tthis.makeChildWidgets(parseTreeNodes);\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nMacroCallWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif($tw.utils.count(changedAttributes) > 0) {\n\t\t// Rerender ourselves\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else {\n\t\treturn this.refreshChildren(changedTiddlers);\n\t}\n};\n\nexports.macrocall = MacroCallWidget;\n\n})();\n",
            "type": "application/javascript",
            "module-type": "widget"
        },
        "$:/core/modules/widgets/navigator.js": {
            "title": "$:/core/modules/widgets/navigator.js",
            "text": "/*\\\ntitle: $:/core/modules/widgets/navigator.js\ntype: application/javascript\nmodule-type: widget\n\nNavigator widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar IMPORT_TITLE = \"$:/Import\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar NavigatorWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n\tthis.addEventListeners([\n\t\t{type: \"tm-navigate\", handler: \"handleNavigateEvent\"},\n\t\t{type: \"tm-edit-tiddler\", handler: \"handleEditTiddlerEvent\"},\n\t\t{type: \"tm-delete-tiddler\", handler: \"handleDeleteTiddlerEvent\"},\n\t\t{type: \"tm-save-tiddler\", handler: \"handleSaveTiddlerEvent\"},\n\t\t{type: \"tm-cancel-tiddler\", handler: \"handleCancelTiddlerEvent\"},\n\t\t{type: \"tm-close-tiddler\", handler: \"handleCloseTiddlerEvent\"},\n\t\t{type: \"tm-close-all-tiddlers\", handler: \"handleCloseAllTiddlersEvent\"},\n\t\t{type: \"tm-close-other-tiddlers\", handler: \"handleCloseOtherTiddlersEvent\"},\n\t\t{type: \"tm-new-tiddler\", handler: \"handleNewTiddlerEvent\"},\n\t\t{type: \"tm-import-tiddlers\", handler: \"handleImportTiddlersEvent\"},\n\t\t{type: \"tm-perform-import\", handler: \"handlePerformImportEvent\"},\n\t\t{type: \"tm-fold-tiddler\", handler: \"handleFoldTiddlerEvent\"},\n\t\t{type: \"tm-fold-other-tiddlers\", handler: \"handleFoldOtherTiddlersEvent\"},\n\t\t{type: \"tm-fold-all-tiddlers\", handler: \"handleFoldAllTiddlersEvent\"},\n\t\t{type: \"tm-unfold-all-tiddlers\", handler: \"handleUnfoldAllTiddlersEvent\"},\n\t\t{type: \"tm-rename-tiddler\", handler: \"handleRenameTiddlerEvent\"}\n\t]);\n};\n\n/*\nInherit from the base widget class\n*/\nNavigatorWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nNavigatorWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tthis.renderChildren(parent,nextSibling);\n};\n\n/*\nCompute the internal state of the widget\n*/\nNavigatorWidget.prototype.execute = function() {\n\t// Get our parameters\n\tthis.storyTitle = this.getAttribute(\"story\");\n\tthis.historyTitle = this.getAttribute(\"history\");\n\tthis.setVariable(\"tv-story-list\",this.storyTitle);\n\tthis.setVariable(\"tv-history-list\",this.historyTitle);\n\tthis.story = new $tw.Story({\n\t\twiki: this.wiki,\n\t\tstoryTitle: this.storyTitle,\n\t\thistoryTitle: this.historyTitle\n\t});\n\t// Construct the child widgets\n\tthis.makeChildWidgets();\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nNavigatorWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.story || changedAttributes.history) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else {\n\t\treturn this.refreshChildren(changedTiddlers);\n\t}\n};\n\nNavigatorWidget.prototype.getStoryList = function() {\n\treturn this.storyTitle ? this.wiki.getTiddlerList(this.storyTitle) : null;\n};\n\nNavigatorWidget.prototype.saveStoryList = function(storyList) {\n\tif(this.storyTitle) {\n\t\tvar storyTiddler = this.wiki.getTiddler(this.storyTitle);\n\t\tthis.wiki.addTiddler(new $tw.Tiddler(\n\t\t\t{title: this.storyTitle},\n\t\t\tstoryTiddler,\n\t\t\t{list: storyList}\n\t\t));\t\t\n\t}\n};\n\nNavigatorWidget.prototype.removeTitleFromStory = function(storyList,title) {\n\tif(storyList) {\n\t\tvar p = storyList.indexOf(title);\n\t\twhile(p !== -1) {\n\t\t\tstoryList.splice(p,1);\n\t\t\tp = storyList.indexOf(title);\n\t\t}\t\t\n\t}\n};\n\nNavigatorWidget.prototype.replaceFirstTitleInStory = function(storyList,oldTitle,newTitle) {\n\tif(storyList) {\n\t\tvar pos = storyList.indexOf(oldTitle);\n\t\tif(pos !== -1) {\n\t\t\tstoryList[pos] = newTitle;\n\t\t\tdo {\n\t\t\t\tpos = storyList.indexOf(oldTitle,pos + 1);\n\t\t\t\tif(pos !== -1) {\n\t\t\t\t\tstoryList.splice(pos,1);\n\t\t\t\t}\n\t\t\t} while(pos !== -1);\n\t\t} else {\n\t\t\tstoryList.splice(0,0,newTitle);\n\t\t}\t\t\n\t}\n};\n\nNavigatorWidget.prototype.addToStory = function(title,fromTitle) {\n\tif(this.storyTitle) {\n\t\tthis.story.addToStory(title,fromTitle,{\n\t\t\topenLinkFromInsideRiver: this.getAttribute(\"openLinkFromInsideRiver\",\"top\"),\n\t\t\topenLinkFromOutsideRiver: this.getAttribute(\"openLinkFromOutsideRiver\",\"top\")\n\t\t});\n\t}\n};\n\n/*\nAdd a new record to the top of the history stack\ntitle: a title string or an array of title strings\nfromPageRect: page coordinates of the origin of the navigation\n*/\nNavigatorWidget.prototype.addToHistory = function(title,fromPageRect) {\n\tthis.story.addToHistory(title,fromPageRect,this.historyTitle);\n};\n\n/*\nHandle a tm-navigate event\n*/\nNavigatorWidget.prototype.handleNavigateEvent = function(event) {\n\tevent = $tw.hooks.invokeHook(\"th-navigating\",event);\n\tif(event.navigateTo) {\n\t\tthis.addToStory(event.navigateTo,event.navigateFromTitle);\n\t\tif(!event.navigateSuppressNavigation) {\n\t\t\tthis.addToHistory(event.navigateTo,event.navigateFromClientRect);\n\t\t}\n\t}\n\treturn false;\n};\n\n// Close a specified tiddler\nNavigatorWidget.prototype.handleCloseTiddlerEvent = function(event) {\n\tvar title = event.param || event.tiddlerTitle,\n\t\tstoryList = this.getStoryList();\n\t// Look for tiddlers with this title to close\n\tthis.removeTitleFromStory(storyList,title);\n\tthis.saveStoryList(storyList);\n\treturn false;\n};\n\n// Close all tiddlers\nNavigatorWidget.prototype.handleCloseAllTiddlersEvent = function(event) {\n\tthis.saveStoryList([]);\n\treturn false;\n};\n\n// Close other tiddlers\nNavigatorWidget.prototype.handleCloseOtherTiddlersEvent = function(event) {\n\tvar title = event.param || event.tiddlerTitle;\n\tthis.saveStoryList([title]);\n\treturn false;\n};\n\n// Place a tiddler in edit mode\nNavigatorWidget.prototype.handleEditTiddlerEvent = function(event) {\n\tvar editTiddler = $tw.hooks.invokeHook(\"th-editing-tiddler\",event);\n\tif(!editTiddler) {\n\t\treturn false;\n\t}\n\tvar self = this;\n\tfunction isUnmodifiedShadow(title) {\n\t\treturn self.wiki.isShadowTiddler(title) && !self.wiki.tiddlerExists(title);\n\t}\n\tfunction confirmEditShadow(title) {\n\t\treturn confirm($tw.language.getString(\n\t\t\t\"ConfirmEditShadowTiddler\",\n\t\t\t{variables:\n\t\t\t\t{title: title}\n\t\t\t}\n\t\t));\n\t}\n\tvar title = event.param || event.tiddlerTitle;\n\tif(isUnmodifiedShadow(title) && !confirmEditShadow(title)) {\n\t\treturn false;\n\t}\n\t// Replace the specified tiddler with a draft in edit mode\n\tvar draftTiddler = this.makeDraftTiddler(title);\n\t// Update the story and history if required\n\tif(!event.paramObject || event.paramObject.suppressNavigation !== \"yes\") {\n\t\tvar draftTitle = draftTiddler.fields.title,\n\t\t\tstoryList = this.getStoryList();\n\t\tthis.removeTitleFromStory(storyList,draftTitle);\n\t\tthis.replaceFirstTitleInStory(storyList,title,draftTitle);\n\t\tthis.addToHistory(draftTitle,event.navigateFromClientRect);\n\t\tthis.saveStoryList(storyList);\n\t\treturn false;\n\t}\n};\n\n// Delete a tiddler\nNavigatorWidget.prototype.handleDeleteTiddlerEvent = function(event) {\n\t// Get the tiddler we're deleting\n\tvar title = event.param || event.tiddlerTitle,\n\t\ttiddler = this.wiki.getTiddler(title),\n\t\tstoryList = this.getStoryList(),\n\t\toriginalTitle = tiddler ? tiddler.fields[\"draft.of\"] : \"\",\n\t\toriginalTiddler = originalTitle ? this.wiki.getTiddler(originalTitle) : undefined,\n\t\tconfirmationTitle;\n\tif(!tiddler) {\n\t\treturn false;\n\t}\n\t// Check if the tiddler we're deleting is in draft mode\n\tif(originalTitle) {\n\t\t// If so, we'll prompt for confirmation referencing the original tiddler\n\t\tconfirmationTitle = originalTitle;\n\t} else {\n\t\t// If not a draft, then prompt for confirmation referencing the specified tiddler\n\t\tconfirmationTitle = title;\n\t}\n\t// Seek confirmation\n\tif((this.wiki.getTiddler(originalTitle) || (tiddler.fields.text || \"\") !== \"\") && !confirm($tw.language.getString(\n\t\t\t\t\"ConfirmDeleteTiddler\",\n\t\t\t\t{variables:\n\t\t\t\t\t{title: confirmationTitle}\n\t\t\t\t}\n\t\t\t))) {\n\t\treturn false;\n\t}\n\t// Delete the original tiddler\n\tif(originalTitle) {\n\t\tif(originalTiddler) {\n\t\t\t$tw.hooks.invokeHook(\"th-deleting-tiddler\",originalTiddler);\n\t\t}\n\t\tthis.wiki.deleteTiddler(originalTitle);\n\t\tthis.removeTitleFromStory(storyList,originalTitle);\n\t}\n\t// Invoke the hook function and delete this tiddler\n\t$tw.hooks.invokeHook(\"th-deleting-tiddler\",tiddler);\n\tthis.wiki.deleteTiddler(title);\n\t// Remove the closed tiddler from the story\n\tthis.removeTitleFromStory(storyList,title);\n\tthis.saveStoryList(storyList);\n\t// Trigger an autosave\n\t$tw.rootWidget.dispatchEvent({type: \"tm-auto-save-wiki\"});\n\treturn false;\n};\n\n/*\nCreate/reuse the draft tiddler for a given title\n*/\nNavigatorWidget.prototype.makeDraftTiddler = function(targetTitle) {\n\t// See if there is already a draft tiddler for this tiddler\n\tvar draftTitle = this.wiki.findDraft(targetTitle);\n\tif(draftTitle) {\n\t\treturn this.wiki.getTiddler(draftTitle);\n\t}\n\t// Get the current value of the tiddler we're editing\n\tvar tiddler = this.wiki.getTiddler(targetTitle);\n\t// Save the initial value of the draft tiddler\n\tdraftTitle = this.generateDraftTitle(targetTitle);\n\tvar draftTiddler = new $tw.Tiddler({\n\t\t\t\ttext: \"\",\n\t\t\t},\n\t\t\ttiddler,\n\t\t\t{\n\t\t\t\ttitle: draftTitle,\n\t\t\t\t\"draft.title\": targetTitle,\n\t\t\t\t\"draft.of\": targetTitle\n\t\t\t},\n\t\t\tthis.wiki.getModificationFields()\n\t\t);\n\tthis.wiki.addTiddler(draftTiddler);\n\treturn draftTiddler;\n};\n\n/*\nGenerate a title for the draft of a given tiddler\n*/\nNavigatorWidget.prototype.generateDraftTitle = function(title) {\n\treturn this.wiki.generateDraftTitle(title);\n};\n\n// Take a tiddler out of edit mode, saving the changes\nNavigatorWidget.prototype.handleSaveTiddlerEvent = function(event) {\n\tvar title = event.param || event.tiddlerTitle,\n\t\ttiddler = this.wiki.getTiddler(title),\n\t\tstoryList = this.getStoryList();\n\t// Replace the original tiddler with the draft\n\tif(tiddler) {\n\t\tvar draftTitle = (tiddler.fields[\"draft.title\"] || \"\").trim(),\n\t\t\tdraftOf = (tiddler.fields[\"draft.of\"] || \"\").trim();\n\t\tif(draftTitle) {\n\t\t\tvar isRename = draftOf !== draftTitle,\n\t\t\t\tisConfirmed = true;\n\t\t\tif(isRename && this.wiki.tiddlerExists(draftTitle)) {\n\t\t\t\tisConfirmed = confirm($tw.language.getString(\n\t\t\t\t\t\"ConfirmOverwriteTiddler\",\n\t\t\t\t\t{variables:\n\t\t\t\t\t\t{title: draftTitle}\n\t\t\t\t\t}\n\t\t\t\t));\n\t\t\t}\n\t\t\tif(isConfirmed) {\n\t\t\t\t// Create the new tiddler and pass it through the th-saving-tiddler hook\n\t\t\t\tvar newTiddler = new $tw.Tiddler(this.wiki.getCreationFields(),tiddler,{\n\t\t\t\t\ttitle: draftTitle,\n\t\t\t\t\t\"draft.title\": undefined,\n\t\t\t\t\t\"draft.of\": undefined\n\t\t\t\t},this.wiki.getModificationFields());\n\t\t\t\tnewTiddler = $tw.hooks.invokeHook(\"th-saving-tiddler\",newTiddler,tiddler);\n\t\t\t\tthis.wiki.addTiddler(newTiddler);\n\t\t\t\t// If enabled, relink references to renamed tiddler\n\t\t\t\tvar shouldRelink = this.getAttribute(\"relinkOnRename\",\"no\").toLowerCase().trim() === \"yes\";\n\t\t\t\tif(isRename && shouldRelink && this.wiki.tiddlerExists(draftOf)) {\n\t\t\t\t\tthis.wiki.relinkTiddler(draftOf,draftTitle);\n\t\t\t\t}\n\t\t\t\t// Remove the draft tiddler\n\t\t\t\tthis.wiki.deleteTiddler(title);\n\t\t\t\t// Remove the original tiddler if we're renaming it\n\t\t\t\tif(isRename) {\n\t\t\t\t\tthis.wiki.deleteTiddler(draftOf);\n\t\t\t\t}\n\t\t\t\t// #2381 always remove new title & old\n\t\t\t\tthis.removeTitleFromStory(storyList,draftTitle);\n\t\t\t\tthis.removeTitleFromStory(storyList,draftOf);\n\t\t\t\tif(!event.paramObject || event.paramObject.suppressNavigation !== \"yes\") {\n\t\t\t\t\t// Replace the draft in the story with the original\n\t\t\t\t\tthis.replaceFirstTitleInStory(storyList,title,draftTitle);\n\t\t\t\t\tthis.addToHistory(draftTitle,event.navigateFromClientRect);\n\t\t\t\t\tif(draftTitle !== this.storyTitle) {\n\t\t\t\t\t\tthis.saveStoryList(storyList);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\t// Trigger an autosave\n\t\t\t\t$tw.rootWidget.dispatchEvent({type: \"tm-auto-save-wiki\"});\n\t\t\t}\n\t\t}\n\t}\n\treturn false;\n};\n\n// Take a tiddler out of edit mode without saving the changes\nNavigatorWidget.prototype.handleCancelTiddlerEvent = function(event) {\n\tevent = $tw.hooks.invokeHook(\"th-cancelling-tiddler\", event);\n\t// Flip the specified tiddler from draft back to the original\n\tvar draftTitle = event.param || event.tiddlerTitle,\n\t\tdraftTiddler = this.wiki.getTiddler(draftTitle),\n\t\toriginalTitle = draftTiddler && draftTiddler.fields[\"draft.of\"];\n\tif(draftTiddler && originalTitle) {\n\t\t// Ask for confirmation if the tiddler text has changed\n\t\tvar isConfirmed = true,\n\t\t\toriginalTiddler = this.wiki.getTiddler(originalTitle),\n\t\t\tstoryList = this.getStoryList();\n\t\tif(this.wiki.isDraftModified(draftTitle)) {\n\t\t\tisConfirmed = confirm($tw.language.getString(\n\t\t\t\t\"ConfirmCancelTiddler\",\n\t\t\t\t{variables:\n\t\t\t\t\t{title: draftTitle}\n\t\t\t\t}\n\t\t\t));\n\t\t}\n\t\t// Remove the draft tiddler\n\t\tif(isConfirmed) {\n\t\t\tthis.wiki.deleteTiddler(draftTitle);\n\t\t\tif(!event.paramObject || event.paramObject.suppressNavigation !== \"yes\") {\n\t\t\t\tif(originalTiddler) {\n\t\t\t\t\tthis.replaceFirstTitleInStory(storyList,draftTitle,originalTitle);\n\t\t\t\t\tthis.addToHistory(originalTitle,event.navigateFromClientRect);\n\t\t\t\t} else {\n\t\t\t\t\tthis.removeTitleFromStory(storyList,draftTitle);\n\t\t\t\t}\n\t\t\t\tthis.saveStoryList(storyList);\n\t\t\t}\n\t\t}\n\t}\n\treturn false;\n};\n\n// Create a new draft tiddler\n// event.param can either be the title of a template tiddler, or a hashmap of fields.\n//\n// The title of the newly created tiddler follows these rules:\n// * If a hashmap was used and a title field was specified, use that title\n// * If a hashmap was used without a title field, use a default title, if necessary making it unique with a numeric suffix\n// * If a template tiddler was used, use the title of the template, if necessary making it unique with a numeric suffix\n//\n// If a draft of the target tiddler already exists then it is reused\nNavigatorWidget.prototype.handleNewTiddlerEvent = function(event) {\n\tevent = $tw.hooks.invokeHook(\"th-new-tiddler\", event);\n\t// Get the story details\n\tvar storyList = this.getStoryList(),\n\t\ttemplateTiddler, additionalFields, title, draftTitle, existingTiddler;\n\t// Get the template tiddler (if any)\n\tif(typeof event.param === \"string\") {\n\t\t// Get the template tiddler\n\t\ttemplateTiddler = this.wiki.getTiddler(event.param);\n\t\t// Generate a new title\n\t\ttitle = this.wiki.generateNewTitle(event.param || $tw.language.getString(\"DefaultNewTiddlerTitle\"));\n\t}\n\t// Get the specified additional fields\n\tif(typeof event.paramObject === \"object\") {\n\t\tadditionalFields = event.paramObject;\n\t}\n\tif(typeof event.param === \"object\") { // Backwards compatibility with 5.1.3\n\t\tadditionalFields = event.param;\n\t}\n\tif(additionalFields && additionalFields.title) {\n\t\ttitle = additionalFields.title;\n\t}\n\t// Make a copy of the additional fields excluding any blank ones\n\tvar filteredAdditionalFields = $tw.utils.extend({},additionalFields);\n\tObject.keys(filteredAdditionalFields).forEach(function(fieldName) {\n\t\tif(filteredAdditionalFields[fieldName] === \"\") {\n\t\t\tdelete filteredAdditionalFields[fieldName];\n\t\t}\n\t});\n\t// Generate a title if we don't have one\n\ttitle = title || this.wiki.generateNewTitle($tw.language.getString(\"DefaultNewTiddlerTitle\"));\n\t// Find any existing draft for this tiddler\n\tdraftTitle = this.wiki.findDraft(title);\n\t// Pull in any existing tiddler\n\tif(draftTitle) {\n\t\texistingTiddler = this.wiki.getTiddler(draftTitle);\n\t} else {\n\t\tdraftTitle = this.generateDraftTitle(title);\n\t\texistingTiddler = this.wiki.getTiddler(title);\n\t}\n\t// Merge the tags\n\tvar mergedTags = [];\n\tif(existingTiddler && existingTiddler.fields.tags) {\n\t\t$tw.utils.pushTop(mergedTags,existingTiddler.fields.tags);\n\t}\n\tif(additionalFields && additionalFields.tags) {\n\t\t// Merge tags\n\t\tmergedTags = $tw.utils.pushTop(mergedTags,$tw.utils.parseStringArray(additionalFields.tags));\n\t}\n\tif(templateTiddler && templateTiddler.fields.tags) {\n\t\t// Merge tags\n\t\tmergedTags = $tw.utils.pushTop(mergedTags,templateTiddler.fields.tags);\n\t}\n\t// Save the draft tiddler\n\tvar draftTiddler = new $tw.Tiddler({\n\t\t\ttext: \"\",\n\t\t\t\"draft.title\": title\n\t\t},\n\t\ttemplateTiddler,\n\t\tadditionalFields,\n\t\tthis.wiki.getCreationFields(),\n\t\texistingTiddler,\n\t\tfilteredAdditionalFields,\n\t\t{\n\t\t\ttitle: draftTitle,\n\t\t\t\"draft.of\": title,\n\t\t\ttags: mergedTags\n\t\t},this.wiki.getModificationFields());\n\tthis.wiki.addTiddler(draftTiddler);\n\t// Update the story to insert the new draft at the top and remove any existing tiddler\n\tif(storyList && storyList.indexOf(draftTitle) === -1) {\n\t\tvar slot = storyList.indexOf(event.navigateFromTitle);\n\t\tif(slot === -1) {\n\t\t\tslot = this.getAttribute(\"openLinkFromOutsideRiver\",\"top\") === \"bottom\" ? storyList.length - 1 : slot;\n\t\t}\n\t\tstoryList.splice(slot + 1,0,draftTitle);\n\t}\n\tif(storyList && storyList.indexOf(title) !== -1) {\n\t\tstoryList.splice(storyList.indexOf(title),1);\n\t}\n\tthis.saveStoryList(storyList);\n\t// Add a new record to the top of the history stack\n\tthis.addToHistory(draftTitle);\n\treturn false;\n};\n\n// Import JSON tiddlers into a pending import tiddler\nNavigatorWidget.prototype.handleImportTiddlersEvent = function(event) {\n\t// Get the tiddlers\n\tvar tiddlers = [];\n\ttry {\n\t\ttiddlers = JSON.parse(event.param);\n\t} catch(e) {\n\t}\n\t// Get the current $:/Import tiddler\n\tvar importTitle = event.importTitle ? event.importTitle : IMPORT_TITLE,\n\t\timportTiddler = this.wiki.getTiddler(importTitle),\n\t\timportData = this.wiki.getTiddlerData(importTitle,{}),\n\t\tnewFields = new Object({\n\t\t\ttitle: importTitle,\n\t\t\ttype: \"application/json\",\n\t\t\t\"plugin-type\": \"import\",\n\t\t\t\"status\": \"pending\"\n\t\t}),\n\t\tincomingTiddlers = [];\n\t// Process each tiddler\n\timportData.tiddlers = importData.tiddlers || {};\n\t$tw.utils.each(tiddlers,function(tiddlerFields) {\n\t\ttiddlerFields.title = $tw.utils.trim(tiddlerFields.title);\n\t\tvar title = tiddlerFields.title;\n\t\tif(title) {\n\t\t\tincomingTiddlers.push(title);\n\t\t\timportData.tiddlers[title] = tiddlerFields;\n\t\t}\n\t});\n\t// Give the active upgrader modules a chance to process the incoming tiddlers\n\tvar messages = this.wiki.invokeUpgraders(incomingTiddlers,importData.tiddlers);\n\t$tw.utils.each(messages,function(message,title) {\n\t\tnewFields[\"message-\" + title] = message;\n\t});\n\t// Deselect any suppressed tiddlers\n\t$tw.utils.each(importData.tiddlers,function(tiddler,title) {\n\t\tif($tw.utils.count(tiddler) === 0) {\n\t\t\tnewFields[\"selection-\" + title] = \"unchecked\";\n\t\t\tnewFields[\"suppressed-\" + title] = \"yes\";\n\t\t}\n\t});\n\t// Save the $:/Import tiddler\n\tnewFields.text = JSON.stringify(importData,null,$tw.config.preferences.jsonSpaces);\n\tthis.wiki.addTiddler(new $tw.Tiddler(importTiddler,newFields));\n\t// Update the story and history details\n\tvar autoOpenOnImport = event.autoOpenOnImport ? event.autoOpenOnImport : this.getVariable(\"tv-auto-open-on-import\");  \n\tif(autoOpenOnImport !== \"no\") {\n\t\tvar storyList = this.getStoryList(),\n\t\t\thistory = [];\n\t\t// Add it to the story\n\t\tif(storyList && storyList.indexOf(importTitle) === -1) {\n\t\t\tstoryList.unshift(importTitle);\n\t\t}\n\t\t// And to history\n\t\thistory.push(importTitle);\n\t\t// Save the updated story and history\n\t\tthis.saveStoryList(storyList);\n\t\tthis.addToHistory(history);\n\t}\n\treturn false;\n};\n\n//\nNavigatorWidget.prototype.handlePerformImportEvent = function(event) {\n\tvar self = this,\n\t\timportTiddler = this.wiki.getTiddler(event.param),\n\t\timportData = this.wiki.getTiddlerDataCached(event.param,{tiddlers: {}}),\n\t\timportReport = [];\n\t// Add the tiddlers to the store\n\timportReport.push($tw.language.getString(\"Import/Imported/Hint\") + \"\\n\");\n\t$tw.utils.each(importData.tiddlers,function(tiddlerFields) {\n\t\tvar title = tiddlerFields.title;\n\t\tif(title && importTiddler && importTiddler.fields[\"selection-\" + title] !== \"unchecked\") {\n\t\t\tif($tw.utils.hop(importTiddler.fields,[\"rename-\" + title])) {\n\t\t\t\tvar tiddler = new $tw.Tiddler(tiddlerFields,{title : importTiddler.fields[\"rename-\" + title]});\n\t\t\t} else {\n\t\t\t\tvar tiddler = new $tw.Tiddler(tiddlerFields);\n\t\t\t}\n\t\t\ttiddler = $tw.hooks.invokeHook(\"th-importing-tiddler\",tiddler);\n\t\t\tself.wiki.addTiddler(tiddler);\n\t\t\timportReport.push(\"# [[\" + tiddler.fields.title + \"]]\");\n\t\t}\n\t});\n\t// Replace the $:/Import tiddler with an import report\n\tthis.wiki.addTiddler(new $tw.Tiddler({\n\t\ttitle: event.param,\n\t\ttext: importReport.join(\"\\n\"),\n\t\t\"status\": \"complete\"\n\t}));\n\t// Navigate to the $:/Import tiddler\n\tthis.addToHistory([event.param]);\n\t// Trigger an autosave\n\t$tw.rootWidget.dispatchEvent({type: \"tm-auto-save-wiki\"});\n};\n\nNavigatorWidget.prototype.handleFoldTiddlerEvent = function(event) {\n\tvar paramObject = event.paramObject || {};\n\tif(paramObject.foldedState) {\n\t\tvar foldedState = this.wiki.getTiddlerText(paramObject.foldedState,\"show\") === \"show\" ? \"hide\" : \"show\";\n\t\tthis.wiki.setText(paramObject.foldedState,\"text\",null,foldedState);\n\t}\n};\n\nNavigatorWidget.prototype.handleFoldOtherTiddlersEvent = function(event) {\n\tvar self = this,\n\t\tparamObject = event.paramObject || {},\n\t\tprefix = paramObject.foldedStatePrefix;\n\t$tw.utils.each(this.getStoryList(),function(title) {\n\t\tself.wiki.setText(prefix + title,\"text\",null,event.param === title ? \"show\" : \"hide\");\n\t});\n};\n\nNavigatorWidget.prototype.handleFoldAllTiddlersEvent = function(event) {\n\tvar self = this,\n\t\tparamObject = event.paramObject || {},\n\t\tprefix = paramObject.foldedStatePrefix || \"$:/state/folded/\";\n\t$tw.utils.each(this.getStoryList(),function(title) {\n\t\tself.wiki.setText(prefix + title,\"text\",null,\"hide\");\n\t});\n};\n\nNavigatorWidget.prototype.handleUnfoldAllTiddlersEvent = function(event) {\n\tvar self = this,\n\t\tparamObject = event.paramObject || {},\n\t\tprefix = paramObject.foldedStatePrefix;\n\t$tw.utils.each(this.getStoryList(),function(title) {\n\t\tself.wiki.setText(prefix + title,\"text\",null,\"show\");\n\t});\n};\n\nNavigatorWidget.prototype.handleRenameTiddlerEvent = function(event) {\n\tvar options = {},\n\t\tparamObject = event.paramObject || {},\n\t\tfrom = paramObject.from || event.tiddlerTitle,\n\t\tto = paramObject.to;\n\toptions.dontRenameInTags = (paramObject.renameInTags === \"false\" || paramObject.renameInTags === \"no\") ? true : false;\n\toptions.dontRenameInLists = (paramObject.renameInLists === \"false\" || paramObject.renameInLists === \"no\") ? true : false;\n\tthis.wiki.renameTiddler(from,to,options);\n};\n\nexports.navigator = NavigatorWidget;\n\n})();\n",
            "type": "application/javascript",
            "module-type": "widget"
        },
        "$:/core/modules/widgets/password.js": {
            "title": "$:/core/modules/widgets/password.js",
            "text": "/*\\\ntitle: $:/core/modules/widgets/password.js\ntype: application/javascript\nmodule-type: widget\n\nPassword widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar PasswordWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nPasswordWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nPasswordWidget.prototype.render = function(parent,nextSibling) {\n\t// Save the parent dom node\n\tthis.parentDomNode = parent;\n\t// Compute our attributes\n\tthis.computeAttributes();\n\t// Execute our logic\n\tthis.execute();\n\t// Get the current password\n\tvar password = $tw.browser ? $tw.utils.getPassword(this.passwordName) || \"\" : \"\";\n\t// Create our element\n\tvar domNode = this.document.createElement(\"input\");\n\tdomNode.setAttribute(\"type\",\"password\");\n\tdomNode.setAttribute(\"value\",password);\n\t// Add a click event handler\n\t$tw.utils.addEventListeners(domNode,[\n\t\t{name: \"change\", handlerObject: this, handlerMethod: \"handleChangeEvent\"}\n\t]);\n\t// Insert the label into the DOM and render any children\n\tparent.insertBefore(domNode,nextSibling);\n\tthis.renderChildren(domNode,null);\n\tthis.domNodes.push(domNode);\n};\n\nPasswordWidget.prototype.handleChangeEvent = function(event) {\n\tvar password = this.domNodes[0].value;\n\treturn $tw.utils.savePassword(this.passwordName,password);\n};\n\n/*\nCompute the internal state of the widget\n*/\nPasswordWidget.prototype.execute = function() {\n\t// Get the parameters from the attributes\n\tthis.passwordName = this.getAttribute(\"name\",\"\");\n\t// Make the child widgets\n\tthis.makeChildWidgets();\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nPasswordWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.name) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else {\n\t\treturn this.refreshChildren(changedTiddlers);\n\t}\n};\n\nexports.password = PasswordWidget;\n\n})();\n",
            "type": "application/javascript",
            "module-type": "widget"
        },
        "$:/core/modules/widgets/qualify.js": {
            "title": "$:/core/modules/widgets/qualify.js",
            "text": "/*\\\ntitle: $:/core/modules/widgets/qualify.js\ntype: application/javascript\nmodule-type: widget\n\nQualify text to a variable \n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar QualifyWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nQualifyWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nQualifyWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tthis.renderChildren(parent,nextSibling);\n};\n\n/*\nCompute the internal state of the widget\n*/\nQualifyWidget.prototype.execute = function() {\n\t// Get our parameters\n\tthis.qualifyName = this.getAttribute(\"name\");\n\tthis.qualifyTitle = this.getAttribute(\"title\");\n\t// Set context variable\n\tif(this.qualifyName) {\n\t\tthis.setVariable(this.qualifyName,this.qualifyTitle + \"-\" + this.getStateQualifier());\n\t}\n\t// Construct the child widgets\n\tthis.makeChildWidgets();\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nQualifyWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.name || changedAttributes.title) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else {\n\t\treturn this.refreshChildren(changedTiddlers);\n\t}\n};\n\nexports.qualify = QualifyWidget;\n\n})();\n",
            "type": "application/javascript",
            "module-type": "widget"
        },
        "$:/core/modules/widgets/radio.js": {
            "title": "$:/core/modules/widgets/radio.js",
            "text": "/*\\\ntitle: $:/core/modules/widgets/radio.js\ntype: application/javascript\nmodule-type: widget\n\nSet a field or index at a given tiddler via radio buttons\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\nvar RadioWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nRadioWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nRadioWidget.prototype.render = function(parent,nextSibling) {\n\t// Save the parent dom node\n\tthis.parentDomNode = parent;\n\t// Compute our attributes\n\tthis.computeAttributes();\n\t// Execute our logic\n\tthis.execute();\n\tvar isChecked = this.getValue() === this.radioValue;\n\t// Create our elements\n\tthis.labelDomNode = this.document.createElement(\"label\");\n\tthis.labelDomNode.setAttribute(\"class\",\n\t\t\"tc-radio \" + this.radioClass + (isChecked ? \" tc-radio-selected\" : \"\")\n\t);\n\tthis.inputDomNode = this.document.createElement(\"input\");\n\tthis.inputDomNode.setAttribute(\"type\",\"radio\");\n\tif(isChecked) {\n\t\tthis.inputDomNode.setAttribute(\"checked\",\"true\");\n\t}\n\tif(this.isDisabled === \"yes\") {\n\t\tthis.inputDomNode.setAttribute(\"disabled\",true);\n\t}\n\tthis.labelDomNode.appendChild(this.inputDomNode);\n\tthis.spanDomNode = this.document.createElement(\"span\");\n\tthis.labelDomNode.appendChild(this.spanDomNode);\n\t// Add a click event handler\n\t$tw.utils.addEventListeners(this.inputDomNode,[\n\t\t{name: \"change\", handlerObject: this, handlerMethod: \"handleChangeEvent\"}\n\t]);\n\t// Insert the label into the DOM and render any children\n\tparent.insertBefore(this.labelDomNode,nextSibling);\n\tthis.renderChildren(this.spanDomNode,null);\n\tthis.domNodes.push(this.labelDomNode);\n};\n\nRadioWidget.prototype.getValue = function() {\n\tvar value,\n\t\ttiddler = this.wiki.getTiddler(this.radioTitle);\n\tif (this.radioIndex) {\n\t\tvalue = this.wiki.extractTiddlerDataItem(this.radioTitle,this.radioIndex);\n\t} else {\n\t\tvalue = tiddler && tiddler.getFieldString(this.radioField);\n\t}\n\treturn value;\n};\n\nRadioWidget.prototype.setValue = function() {\n\tif(this.radioIndex) {\n\t\tthis.wiki.setText(this.radioTitle,\"\",this.radioIndex,this.radioValue);\n\t} else {\n\t\tvar tiddler = this.wiki.getTiddler(this.radioTitle),\n\t\t\taddition = {};\n\t\taddition[this.radioField] = this.radioValue;\n\t\tthis.wiki.addTiddler(new $tw.Tiddler(this.wiki.getCreationFields(),{title: this.radioTitle},tiddler,addition,this.wiki.getModificationFields()));\n\t}\n};\n\nRadioWidget.prototype.handleChangeEvent = function(event) {\n\tif(this.inputDomNode.checked) {\n\t\tthis.setValue();\n\t}\n\t// Trigger actions\n\tif(this.radioActions) {\n\t\tthis.invokeActionString(this.radioActions,this,event,{\"actionValue\": this.radioValue});\n\t}\n};\n\n/*\nCompute the internal state of the widget\n*/\nRadioWidget.prototype.execute = function() {\n\t// Get the parameters from the attributes\n\tthis.radioTitle = this.getAttribute(\"tiddler\",this.getVariable(\"currentTiddler\"));\n\tthis.radioField = this.getAttribute(\"field\",\"text\");\n\tthis.radioIndex = this.getAttribute(\"index\");\n\tthis.radioValue = this.getAttribute(\"value\");\n\tthis.radioClass = this.getAttribute(\"class\",\"\");\n\tthis.isDisabled = this.getAttribute(\"disabled\",\"no\");\n\tthis.radioActions = this.getAttribute(\"actions\",\"\");\n\t// Make the child widgets\n\tthis.makeChildWidgets();\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nRadioWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(($tw.utils.count(changedAttributes) > 0) || changedTiddlers[this.radioTitle]) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else {\n\t\treturn this.refreshChildren(changedTiddlers);\n\t}\n};\n\nexports.radio = RadioWidget;\n\n})();\n",
            "type": "application/javascript",
            "module-type": "widget"
        },
        "$:/core/modules/widgets/range.js": {
            "title": "$:/core/modules/widgets/range.js",
            "text": "/*\\\ntitle: $:/core/modules/widgets/range.js\ntype: application/javascript\nmodule-type: widget\n\nRange widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar RangeWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nRangeWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nRangeWidget.prototype.render = function(parent,nextSibling) {\n\t// Save the parent dom node\n\tthis.parentDomNode = parent;\n\t// Compute our attributes\n\tthis.computeAttributes();\n\t// Execute our logic\n\tthis.execute();\n\t// Create our elements\n\tthis.inputDomNode = this.document.createElement(\"input\");\n\tthis.inputDomNode.setAttribute(\"type\",\"range\");\n\tthis.inputDomNode.setAttribute(\"class\",this.elementClass);\n\tif(this.minValue){\n\t\tthis.inputDomNode.setAttribute(\"min\", this.minValue);\n\t}\n\tif(this.maxValue){\n\t\tthis.inputDomNode.setAttribute(\"max\", this.maxValue);\n\t}\n\tif(this.increment){\n\t\tthis.inputDomNode.setAttribute(\"step\", this.increment);\n\t}\n\tif(this.isDisabled === \"yes\") {\n\t\tthis.inputDomNode.setAttribute(\"disabled\",true);\n\t}\n\tthis.inputDomNode.value = this.getValue();\n\t// Add a click event handler\n\t$tw.utils.addEventListeners(this.inputDomNode,[\n\t\t{name:\"mousedown\", handlerObject:this, handlerMethod:\"handleMouseDownEvent\"},\n\t\t{name:\"mouseup\",   handlerObject:this, handlerMethod:\"handleMouseUpEvent\"},\n\t\t{name:\"change\",    handlerObject:this, handlerMethod:\"handleChangeEvent\"},\n\t\t{name:\"input\",     handlerObject:this, handlerMethod:\"handleInputEvent\"},\n\t]);\n\t// Insert the label into the DOM and render any children\n\tparent.insertBefore(this.inputDomNode,nextSibling);\n\tthis.domNodes.push(this.inputDomNode);\n};\n\nRangeWidget.prototype.getValue = function() {\n\tvar tiddler = this.wiki.getTiddler(this.tiddlerTitle),\n\t\tfieldName = this.tiddlerField,\n\t\tvalue = this.defaultValue;\n\tif(tiddler) {\n\t\tif(this.tiddlerIndex) {\n\t\t\tvalue = this.wiki.extractTiddlerDataItem(tiddler,this.tiddlerIndex,this.defaultValue);\n\t\t} else {\n\t\t\tif($tw.utils.hop(tiddler.fields,fieldName)) {\n\t\t\t\tvalue = tiddler.fields[fieldName] || \"\";\n\t\t\t} else {\n\t\t\t\tvalue = this.defaultValue;\n\t\t\t}\n\t\t}\n\t}\n\treturn value;\n};\n\nRangeWidget.prototype.getActionVariables = function(options) {\n\toptions = options || {};\n\tvar hasChanged = (this.startValue !== this.inputDomNode.value) ? \"yes\" : \"no\";\n\t// Trigger actions. Use variables = {key:value, key:value ...}\n\t// the \"value\" is needed.\n\treturn $tw.utils.extend({\"actionValue\": this.inputDomNode.value, \"actionValueHasChanged\": hasChanged}, options);\n}\n\n// actionsStart\nRangeWidget.prototype.handleMouseDownEvent = function(event) {\n\tthis.mouseDown = true; // TODO remove once IE is gone.\n\tthis.startValue = this.inputDomNode.value; // TODO remove this line once IE is gone!\n\tthis.handleEvent(event);\n\t// Trigger actions\n\tif(this.actionsMouseDown) {\n\t\tvar variables = this.getActionVariables() // TODO this line will go into the function call below.\n\t\tthis.invokeActionString(this.actionsMouseDown,this,event,variables);\n\t}\n}\n\n// actionsStop\nRangeWidget.prototype.handleMouseUpEvent = function(event) {\n\tthis.mouseDown = false; // TODO remove once IE is gone.\n\tthis.handleEvent(event);\n\t// Trigger actions\n\tif(this.actionsMouseUp) {\n\t\tvar variables = this.getActionVariables()\n\t\tthis.invokeActionString(this.actionsMouseUp,this,event,variables);\n\t}\n\t// TODO remove the following if() once IE is gone!\n\tif ($tw.browser.isIE) {\n\t\tif (this.startValue !== this.inputDomNode.value) {\n\t\t\tthis.handleChangeEvent(event);\n\t\t\tthis.startValue = this.inputDomNode.value;\n\t\t}\n\t}\n}\n\nRangeWidget.prototype.handleChangeEvent = function(event) {\n\tif (this.mouseDown) {  // TODO refactor this function once IE is gone.\n\t\tthis.handleInputEvent(event);\n\t}\n};\n\nRangeWidget.prototype.handleInputEvent = function(event) {\n\tthis.handleEvent(event);\n\t// Trigger actions\n\tif(this.actionsInput) {\n\t\t// \"tiddler\" parameter may be missing. See .execute() below\n\t\tvar variables = this.getActionVariables({\"actionValueHasChanged\": \"yes\"}) // TODO this line will go into the function call below.\n\t\tthis.invokeActionString(this.actionsInput,this,event,variables);\n\t}\n};\n\nRangeWidget.prototype.handleEvent = function(event) {\n\tif(this.getValue() !== this.inputDomNode.value) {\n\t\tif(this.tiddlerIndex) {\n\t\t\tthis.wiki.setText(this.tiddlerTitle,\"\",this.tiddlerIndex,this.inputDomNode.value);\n\t\t} else {\n\t\t\tthis.wiki.setText(this.tiddlerTitle,this.tiddlerField,null,this.inputDomNode.value);\n\t\t}\n\t}\n};\n\n/*\nCompute the internal state of the widget\n*/\nRangeWidget.prototype.execute = function() {\n\t// TODO remove the next 1 lines once IE is gone!\n\tthis.mouseUp = true; // Needed for IE10\n\t// Get the parameters from the attributes\n\tthis.tiddlerTitle = this.getAttribute(\"tiddler\",this.getVariable(\"currentTiddler\"));\n\tthis.tiddlerField = this.getAttribute(\"field\",\"text\");\n\tthis.tiddlerIndex = this.getAttribute(\"index\");\n\tthis.minValue = this.getAttribute(\"min\");\n\tthis.maxValue = this.getAttribute(\"max\");\n\tthis.increment = this.getAttribute(\"increment\");\n\tthis.defaultValue = this.getAttribute(\"default\",\"\");\n\tthis.elementClass = this.getAttribute(\"class\",\"\");\n\tthis.isDisabled = this.getAttribute(\"disabled\",\"no\");\n\t// Actions since 5.1.23\n\t// Next 2 only fire once!\n\tthis.actionsMouseDown = this.getAttribute(\"actionsStart\",\"\");\n\tthis.actionsMouseUp = this.getAttribute(\"actionsStop\",\"\");\n\t// Input fires very often!\n\tthis.actionsInput = this.getAttribute(\"actions\",\"\");\n\t// Make the child widgets\n\tthis.makeChildWidgets();\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nRangeWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif($tw.utils.count(changedAttributes) > 0) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else {\n\t\tvar refreshed = false;\n\t\tif(changedTiddlers[this.tiddlerTitle]) {\n\t\t\tvar value = this.getValue();\n\t\t\tif(this.inputDomNode.value !== value) {\n\t\t\t\tthis.inputDomNode.value = value;\n\t\t\t}\n\t\t\trefreshed = true;\n\t\t}\n\t\treturn this.refreshChildren(changedTiddlers) || refreshed;\n\t}\n};\n\nexports.range = RangeWidget;\n\n})();\n",
            "type": "application/javascript",
            "module-type": "widget"
        },
        "$:/core/modules/widgets/raw.js": {
            "title": "$:/core/modules/widgets/raw.js",
            "text": "/*\\\ntitle: $:/core/modules/widgets/raw.js\ntype: application/javascript\nmodule-type: widget\n\nRaw widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar RawWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nRawWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nRawWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.execute();\n\tvar div = this.document.createElement(\"div\");\n\tdiv.innerHTML=this.parseTreeNode.html;\n\tparent.insertBefore(div,nextSibling);\n\tthis.domNodes.push(div);\t\n};\n\n/*\nCompute the internal state of the widget\n*/\nRawWidget.prototype.execute = function() {\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nRawWidget.prototype.refresh = function(changedTiddlers) {\n\treturn false;\n};\n\nexports.raw = RawWidget;\n\n})();\n",
            "type": "application/javascript",
            "module-type": "widget"
        },
        "$:/core/modules/widgets/reveal.js": {
            "title": "$:/core/modules/widgets/reveal.js",
            "text": "/*\\\ntitle: $:/core/modules/widgets/reveal.js\ntype: application/javascript\nmodule-type: widget\n\nReveal widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar RevealWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nRevealWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nRevealWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tvar tag = this.parseTreeNode.isBlock ? \"div\" : \"span\";\n\tif(this.revealTag && $tw.config.htmlUnsafeElements.indexOf(this.revealTag) === -1) {\n\t\ttag = this.revealTag;\n\t}\n\tvar domNode = this.document.createElement(tag);\n\tthis.domNode = domNode;\n\tthis.assignDomNodeClasses();\n\tif(this.style) {\n\t\tdomNode.setAttribute(\"style\",this.style);\n\t}\n\tparent.insertBefore(domNode,nextSibling);\n\tthis.renderChildren(domNode,null);\n\tif(!domNode.isTiddlyWikiFakeDom && this.type === \"popup\" && this.isOpen) {\n\t\tthis.positionPopup(domNode);\n\t\t$tw.utils.addClass(domNode,\"tc-popup\"); // Make sure that clicks don't dismiss popups within the revealed content\n\t}\n\tif(!this.isOpen) {\n\t\tdomNode.setAttribute(\"hidden\",\"true\");\n\t}\n\tthis.domNodes.push(domNode);\n};\n\nRevealWidget.prototype.positionPopup = function(domNode) {\n\tdomNode.style.position = \"absolute\";\n\tdomNode.style.zIndex = \"1000\";\n\tvar left,top;\n\tswitch(this.position) {\n\t\tcase \"left\":\n\t\t\tleft = this.popup.left - domNode.offsetWidth;\n\t\t\ttop = this.popup.top;\n\t\t\tbreak;\n\t\tcase \"above\":\n\t\t\tleft = this.popup.left;\n\t\t\ttop = this.popup.top - domNode.offsetHeight;\n\t\t\tbreak;\n\t\tcase \"aboveright\":\n\t\t\tleft = this.popup.left + this.popup.width;\n\t\t\ttop = this.popup.top + this.popup.height - domNode.offsetHeight;\n\t\t\tbreak;\n\t\tcase \"belowright\":\n\t\t\tleft = this.popup.left + this.popup.width;\n\t\t\ttop = this.popup.top + this.popup.height;\n\t\t\tbreak;\t\t\t\n\t\tcase \"right\":\n\t\t\tleft = this.popup.left + this.popup.width;\n\t\t\ttop = this.popup.top;\n\t\t\tbreak;\n\t\tcase \"belowleft\":\n\t\t\tleft = this.popup.left + this.popup.width - domNode.offsetWidth;\n\t\t\ttop = this.popup.top + this.popup.height;\n\t\t\tbreak;\n\t\tcase \"aboveleft\":\n\t\t\tleft = this.popup.left - domNode.offsetWidth;\n\t\t\ttop = this.popup.top - domNode.offsetHeight;\n\t\t\tbreak;\t\t\t\n\t\tdefault: // Below\n\t\t\tleft = this.popup.left;\n\t\t\ttop = this.popup.top + this.popup.height;\n\t\t\tbreak;\n\t}\n\tif(!this.positionAllowNegative) {\n\t\tleft = Math.max(0,left);\n\t\ttop = Math.max(0,top);\n\t}\n\tdomNode.style.left = left + \"px\";\n\tdomNode.style.top = top + \"px\";\n};\n\n/*\nCompute the internal state of the widget\n*/\nRevealWidget.prototype.execute = function() {\n\t// Get our parameters\n\tthis.state = this.getAttribute(\"state\");\n\tthis.revealTag = this.getAttribute(\"tag\");\n\tthis.type = this.getAttribute(\"type\");\n\tthis.text = this.getAttribute(\"text\");\n\tthis.position = this.getAttribute(\"position\");\n\tthis.positionAllowNegative = this.getAttribute(\"positionAllowNegative\") === \"yes\";\n\t// class attribute handled in assignDomNodeClasses()\n\tthis.style = this.getAttribute(\"style\",\"\");\n\tthis[\"default\"] = this.getAttribute(\"default\",\"\");\n\tthis.animate = this.getAttribute(\"animate\",\"no\");\n\tthis.retain = this.getAttribute(\"retain\",\"no\");\n\tthis.openAnimation = this.animate === \"no\" ? undefined : \"open\";\n\tthis.closeAnimation = this.animate === \"no\" ? undefined : \"close\";\n\tthis.updatePopupPosition = this.getAttribute(\"updatePopupPosition\",\"no\") === \"yes\";\n\t// Compute the title of the state tiddler and read it\n\tthis.stateTiddlerTitle = this.state;\n\tthis.stateTitle = this.getAttribute(\"stateTitle\");\n\tthis.stateField = this.getAttribute(\"stateField\");\n\tthis.stateIndex = this.getAttribute(\"stateIndex\");\n\tthis.readState();\n\t// Construct the child widgets\n\tvar childNodes = this.isOpen ? this.parseTreeNode.children : [];\n\tthis.hasChildNodes = this.isOpen;\n\tthis.makeChildWidgets(childNodes);\n};\n\n/*\nRead the state tiddler\n*/\nRevealWidget.prototype.readState = function() {\n\t// Read the information from the state tiddler\n\tvar state,\n\t    defaultState = this[\"default\"];\n\tif(this.stateTitle) {\n\t\tvar stateTitleTiddler = this.wiki.getTiddler(this.stateTitle);\n\t\tif(this.stateField) {\n\t\t\tstate = stateTitleTiddler ? stateTitleTiddler.getFieldString(this.stateField) || defaultState : defaultState;\n\t\t} else if(this.stateIndex) {\n\t\t\tstate = stateTitleTiddler ? this.wiki.extractTiddlerDataItem(this.stateTitle,this.stateIndex) || defaultState : defaultState;\n\t\t} else if(stateTitleTiddler) {\n\t\t\tstate = this.wiki.getTiddlerText(this.stateTitle) || defaultState;\n\t\t} else {\n\t\t\tstate = defaultState;\n\t\t}\n\t} else {\n\t\tstate = this.stateTiddlerTitle ? this.wiki.getTextReference(this.state,this[\"default\"],this.getVariable(\"currentTiddler\")) : this[\"default\"];\n\t}\n\tif(state === null) {\n\t\tstate = this[\"default\"];\n\t}\n\tswitch(this.type) {\n\t\tcase \"popup\":\n\t\t\tthis.readPopupState(state);\n\t\t\tbreak;\n\t\tcase \"match\":\n\t\t\tthis.isOpen = this.text === state;\n\t\t\tbreak;\n\t\tcase \"nomatch\":\n\t\t\tthis.isOpen = this.text !== state;\n\t\t\tbreak;\n\t\tcase \"lt\":\n\t\t\tthis.isOpen = !!(this.compareStateText(state) < 0);\n\t\t\tbreak;\n\t\tcase \"gt\":\n\t\t\tthis.isOpen = !!(this.compareStateText(state) > 0);\n\t\t\tbreak;\n\t\tcase \"lteq\":\n\t\t\tthis.isOpen = !(this.compareStateText(state) > 0);\n\t\t\tbreak;\n\t\tcase \"gteq\":\n\t\t\tthis.isOpen = !(this.compareStateText(state) < 0);\n\t\t\tbreak;\n\t}\n};\n\nRevealWidget.prototype.compareStateText = function(state) {\n\treturn state.localeCompare(this.text,undefined,{numeric: true,sensitivity: \"case\"});\n};\n\nRevealWidget.prototype.readPopupState = function(state) {\n\tvar popupLocationRegExp = /^\\((-?[0-9\\.E]+),(-?[0-9\\.E]+),(-?[0-9\\.E]+),(-?[0-9\\.E]+)\\)$/,\n\t\tmatch = popupLocationRegExp.exec(state);\n\t// Check if the state matches the location regexp\n\tif(match) {\n\t\t// If so, we're open\n\t\tthis.isOpen = true;\n\t\t// Get the location\n\t\tthis.popup = {\n\t\t\tleft: parseFloat(match[1]),\n\t\t\ttop: parseFloat(match[2]),\n\t\t\twidth: parseFloat(match[3]),\n\t\t\theight: parseFloat(match[4])\n\t\t};\n\t} else {\n\t\t// If not, we're closed\n\t\tthis.isOpen = false;\n\t}\n};\n\nRevealWidget.prototype.assignDomNodeClasses = function() {\n\tvar classes = this.getAttribute(\"class\",\"\").split(\" \");\n\tclasses.push(\"tc-reveal\");\n\tthis.domNode.className = classes.join(\" \");\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nRevealWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.state || changedAttributes.type || changedAttributes.text || changedAttributes.position || changedAttributes.positionAllowNegative || changedAttributes[\"default\"] || changedAttributes.animate || changedAttributes.stateTitle || changedAttributes.stateField || changedAttributes.stateIndex) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else {\n\t\tvar currentlyOpen = this.isOpen;\n\t\tthis.readState();\n\t\tif(this.isOpen !== currentlyOpen) {\n\t\t\tif(this.retain === \"yes\") {\n\t\t\t\tthis.updateState();\n\t\t\t} else {\n\t\t\t\tthis.refreshSelf();\n\t\t\t\treturn true;\n\t\t\t}\n\t\t} else if(this.type === \"popup\" && this.updatePopupPosition && (changedTiddlers[this.state] || changedTiddlers[this.stateTitle])) {\n\t\t\tthis.positionPopup(this.domNode);\n\t\t}\n\t\tif(changedAttributes.style) {\n\t\t\tthis.domNode.style = this.getAttribute(\"style\",\"\");\n\t\t}\n\t\tif(changedAttributes[\"class\"]) {\n\t\t\tthis.assignDomNodeClasses();\n\t\t}\t\t\n\t\treturn this.refreshChildren(changedTiddlers);\n\t}\n};\n\n/*\nCalled by refresh() to dynamically show or hide the content\n*/\nRevealWidget.prototype.updateState = function() {\n\tvar self = this;\n\t// Read the current state\n\tthis.readState();\n\t// Construct the child nodes if needed\n\tvar domNode = this.domNodes[0];\n\tif(this.isOpen && !this.hasChildNodes) {\n\t\tthis.hasChildNodes = true;\n\t\tthis.makeChildWidgets(this.parseTreeNode.children);\n\t\tthis.renderChildren(domNode,null);\n\t}\n\t// Animate our DOM node\n\tif(!domNode.isTiddlyWikiFakeDom && this.type === \"popup\" && this.isOpen) {\n\t\tthis.positionPopup(domNode);\n\t\t$tw.utils.addClass(domNode,\"tc-popup\"); // Make sure that clicks don't dismiss popups within the revealed content\n\n\t}\n\tif(this.isOpen) {\n\t\tdomNode.removeAttribute(\"hidden\");\n        $tw.anim.perform(this.openAnimation,domNode);\n\t} else {\n\t\t$tw.anim.perform(this.closeAnimation,domNode,{callback: function() {\n\t\t\t//make sure that the state hasn't changed during the close animation\n\t\t\tself.readState()\n\t\t\tif(!self.isOpen) {\n\t\t\t\tdomNode.setAttribute(\"hidden\",\"true\");\n\t\t\t}\n\t\t}});\n\t}\n};\n\nexports.reveal = RevealWidget;\n\n})();\n",
            "type": "application/javascript",
            "module-type": "widget"
        },
        "$:/core/modules/widgets/scrollable.js": {
            "title": "$:/core/modules/widgets/scrollable.js",
            "text": "/*\\\ntitle: $:/core/modules/widgets/scrollable.js\ntype: application/javascript\nmodule-type: widget\n\nScrollable widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar ScrollableWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n\tthis.scaleFactor = 1;\n\tthis.addEventListeners([\n\t\t{type: \"tm-scroll\", handler: \"handleScrollEvent\"}\n\t]);\n\tif($tw.browser) {\n\t\tthis.requestAnimationFrame = window.requestAnimationFrame ||\n\t\t\twindow.webkitRequestAnimationFrame ||\n\t\t\twindow.mozRequestAnimationFrame ||\n\t\t\tfunction(callback) {\n\t\t\t\treturn window.setTimeout(callback, 1000/60);\n\t\t\t};\n\t\tthis.cancelAnimationFrame = window.cancelAnimationFrame ||\n\t\t\twindow.webkitCancelAnimationFrame ||\n\t\t\twindow.webkitCancelRequestAnimationFrame ||\n\t\t\twindow.mozCancelAnimationFrame ||\n\t\t\twindow.mozCancelRequestAnimationFrame ||\n\t\t\tfunction(id) {\n\t\t\t\twindow.clearTimeout(id);\n\t\t\t};\n\t}\n};\n\n/*\nInherit from the base widget class\n*/\nScrollableWidget.prototype = new Widget();\n\nScrollableWidget.prototype.cancelScroll = function() {\n\tif(this.idRequestFrame) {\n\t\tthis.cancelAnimationFrame.call(window,this.idRequestFrame);\n\t\tthis.idRequestFrame = null;\n\t}\n};\n\n/*\nHandle a scroll event\n*/\nScrollableWidget.prototype.handleScrollEvent = function(event) {\n\t// Pass the scroll event through if our offsetsize is larger than our scrollsize\n\tif(this.outerDomNode.scrollWidth <= this.outerDomNode.offsetWidth && this.outerDomNode.scrollHeight <= this.outerDomNode.offsetHeight && this.fallthrough === \"yes\") {\n\t\treturn true;\n\t}\n\tif(event.paramObject && event.paramObject.selector) {\n\t\tthis.scrollSelectorIntoView(null,event.paramObject.selector);\n\t} else {\n\t\tthis.scrollIntoView(event.target);\t\t\t\n\t}\n\treturn false; // Handled event\n};\n\n/*\nScroll an element into view\n*/\nScrollableWidget.prototype.scrollIntoView = function(element) {\n\tvar duration = $tw.utils.getAnimationDuration(),\n\tsrcWindow = element ? element.ownerDocument.defaultView : window;\n\tthis.cancelScroll();\n\tthis.startTime = Date.now();\n\tvar scrollPosition = {\n\t\tx: this.outerDomNode.scrollLeft,\n\t\ty: this.outerDomNode.scrollTop\n\t};\n\t// Get the client bounds of the element and adjust by the scroll position\n\tvar scrollableBounds = this.outerDomNode.getBoundingClientRect(),\n\t\tclientTargetBounds = element.getBoundingClientRect(),\n\t\tbounds = {\n\t\t\tleft: clientTargetBounds.left + scrollPosition.x - scrollableBounds.left,\n\t\t\ttop: clientTargetBounds.top + scrollPosition.y - scrollableBounds.top,\n\t\t\twidth: clientTargetBounds.width,\n\t\t\theight: clientTargetBounds.height\n\t\t};\n\t// We'll consider the horizontal and vertical scroll directions separately via this function\n\tvar getEndPos = function(targetPos,targetSize,currentPos,currentSize) {\n\t\t\t// If the target is already visible then stay where we are\n\t\t\tif(targetPos >= currentPos && (targetPos + targetSize) <= (currentPos + currentSize)) {\n\t\t\t\treturn currentPos;\n\t\t\t// If the target is above/left of the current view, then scroll to its top/left\n\t\t\t} else if(targetPos <= currentPos) {\n\t\t\t\treturn targetPos;\n\t\t\t// If the target is smaller than the window and the scroll position is too far up, then scroll till the target is at the bottom of the window\n\t\t\t} else if(targetSize < currentSize && currentPos < (targetPos + targetSize - currentSize)) {\n\t\t\t\treturn targetPos + targetSize - currentSize;\n\t\t\t// If the target is big, then just scroll to the top\n\t\t\t} else if(currentPos < targetPos) {\n\t\t\t\treturn targetPos;\n\t\t\t// Otherwise, stay where we are\n\t\t\t} else {\n\t\t\t\treturn currentPos;\n\t\t\t}\n\t\t},\n\t\tendX = getEndPos(bounds.left,bounds.width,scrollPosition.x,this.outerDomNode.offsetWidth),\n\t\tendY = getEndPos(bounds.top,bounds.height,scrollPosition.y,this.outerDomNode.offsetHeight);\n\t// Only scroll if necessary\n\tif(endX !== scrollPosition.x || endY !== scrollPosition.y) {\n\t\tvar self = this,\n\t\t\tdrawFrame;\n\t\tdrawFrame = function () {\n\t\t\tvar t;\n\t\t\tif(duration <= 0) {\n\t\t\t\tt = 1;\n\t\t\t} else {\n\t\t\t\tt = ((Date.now()) - self.startTime) / duration;\t\n\t\t\t}\n\t\t\tif(t >= 1) {\n\t\t\t\tself.cancelScroll();\n\t\t\t\tt = 1;\n\t\t\t}\n\t\t\tt = $tw.utils.slowInSlowOut(t);\n\t\t\tself.outerDomNode.scrollLeft = scrollPosition.x + (endX - scrollPosition.x) * t;\n\t\t\tself.outerDomNode.scrollTop = scrollPosition.y + (endY - scrollPosition.y) * t;\n\t\t\tif(t < 1) {\n\t\t\t\tself.idRequestFrame = self.requestAnimationFrame.call(srcWindow,drawFrame);\n\t\t\t}\n\t\t};\n\t\tdrawFrame();\n\t}\n};\n\nScrollableWidget.prototype.scrollSelectorIntoView = function(baseElement,selector,callback) {\n\tbaseElement = baseElement || document.body;\n\tvar element = baseElement.querySelector(selector);\n\tif(element) {\n\t\tthis.scrollIntoView(element,callback);\t\t\n\t}\n};\n\n/*\nRender this widget into the DOM\n*/\nScrollableWidget.prototype.render = function(parent,nextSibling) {\n\tvar self = this;\n\t// Remember parent\n\tthis.parentDomNode = parent;\n\t// Compute attributes and execute state\n\tthis.computeAttributes();\n\tthis.execute();\n\t// Create elements\n\tthis.outerDomNode = this.document.createElement(\"div\");\n\t$tw.utils.setStyle(this.outerDomNode,[\n\t\t{overflowY: \"auto\"},\n\t\t{overflowX: \"auto\"},\n\t\t{webkitOverflowScrolling: \"touch\"}\n\t]);\n\tthis.innerDomNode = this.document.createElement(\"div\");\n\tthis.outerDomNode.appendChild(this.innerDomNode);\n\t// Assign classes\n\tthis.outerDomNode.className = this[\"class\"] || \"\";\n\t// Insert element\n\tparent.insertBefore(this.outerDomNode,nextSibling);\n\tthis.renderChildren(this.innerDomNode,null);\n\tthis.domNodes.push(this.outerDomNode);\n};\n\n/*\nCompute the internal state of the widget\n*/\nScrollableWidget.prototype.execute = function() {\n\t// Get attributes\n\tthis.fallthrough = this.getAttribute(\"fallthrough\",\"yes\");\n\tthis[\"class\"] = this.getAttribute(\"class\");\n\t// Make child widgets\n\tthis.makeChildWidgets();\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nScrollableWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes[\"class\"]) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t}\n\treturn this.refreshChildren(changedTiddlers);\n};\n\nexports.scrollable = ScrollableWidget;\n\n})();\n",
            "type": "application/javascript",
            "module-type": "widget"
        },
        "$:/core/modules/widgets/select.js": {
            "title": "$:/core/modules/widgets/select.js",
            "text": "/*\\\ntitle: $:/core/modules/widgets/select.js\ntype: application/javascript\nmodule-type: widget\n\nSelect widget:\n\n```\n<$select tiddler=\"MyTiddler\" field=\"text\">\n<$list filter=\"[tag[chapter]]\">\n<option value=<<currentTiddler>>>\n<$view field=\"description\"/>\n</option>\n</$list>\n</$select>\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar SelectWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nSelectWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nSelectWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tthis.renderChildren(parent,nextSibling);\n\tthis.setSelectValue();\n\t$tw.utils.addEventListeners(this.getSelectDomNode(),[\n\t\t{name: \"change\", handlerObject: this, handlerMethod: \"handleChangeEvent\"}\n\t]);\n};\n\n/*\nHandle a change event\n*/\nSelectWidget.prototype.handleChangeEvent = function(event) {\n\t// Get the new value and assign it to the tiddler\n\tif(this.selectMultiple == false) {\n\t\tvar value = this.getSelectDomNode().value;\n\t} else {\n\t\tvar value = this.getSelectValues()\n\t\t\t\tvalue = $tw.utils.stringifyList(value);\n\t}\n\tthis.wiki.setText(this.selectTitle,this.selectField,this.selectIndex,value);\n\t// Trigger actions\n\tif(this.selectActions) {\n\t\tthis.invokeActionString(this.selectActions,this,event);\n\t}\n};\n\n/*\nIf necessary, set the value of the select element to the current value\n*/\nSelectWidget.prototype.setSelectValue = function() {\n\tvar value = this.selectDefault;\n\t// Get the value\n\tif(this.selectIndex) {\n\t\tvalue = this.wiki.extractTiddlerDataItem(this.selectTitle,this.selectIndex,value);\n\t} else {\n\t\tvar tiddler = this.wiki.getTiddler(this.selectTitle);\n\t\tif(tiddler) {\n\t\t\tif(this.selectField === \"text\") {\n\t\t\t\t// Calling getTiddlerText() triggers lazy loading of skinny tiddlers\n\t\t\t\tvalue = this.wiki.getTiddlerText(this.selectTitle);\n\t\t\t} else {\n\t\t\t\tif($tw.utils.hop(tiddler.fields,this.selectField)) {\n\t\t\t\t\tvalue = tiddler.getFieldString(this.selectField);\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tif(this.selectField === \"title\") {\n\t\t\t\tvalue = this.selectTitle;\n\t\t\t}\n\t\t}\n\t}\n\t// Assign it to the select element if it's different than the current value\n\tif (this.selectMultiple) {\n\t\tvalue = value === undefined ? \"\" : value;\n\t\tvar select = this.getSelectDomNode();\n\t\tvar values = Array.isArray(value) ? value : $tw.utils.parseStringArray(value);\n\t\tfor(var i=0; i < select.children.length; i++){\n\t\t\tselect.children[i].selected = values.indexOf(select.children[i].value) !== -1\n\t\t}\n\t} else {\n\t\tvar domNode = this.getSelectDomNode();\n\t\tif(domNode.value !== value) {\n\t\t\tdomNode.value = value;\n\t\t}\n\t}\n};\n\n/*\nGet the DOM node of the select element\n*/\nSelectWidget.prototype.getSelectDomNode = function() {\n\treturn this.children[0].domNodes[0];\n};\n\n// Return an array of the selected opion values\n// select is an HTML select element\nSelectWidget.prototype.getSelectValues = function() {\n\tvar select, result, options, opt;\n\tselect = this.getSelectDomNode();\n\tresult = [];\n\toptions = select && select.options;\n\tfor (var i=0; i<options.length; i++) {\n\t\topt = options[i];\n\t\tif (opt.selected) {\n\t\t\tresult.push(opt.value || opt.text);\n\t\t}\n\t}\n\treturn result;\n}\n\n/*\nCompute the internal state of the widget\n*/\nSelectWidget.prototype.execute = function() {\n\t// Get our parameters\n\tthis.selectActions = this.getAttribute(\"actions\");\n\tthis.selectTitle = this.getAttribute(\"tiddler\",this.getVariable(\"currentTiddler\"));\n\tthis.selectField = this.getAttribute(\"field\",\"text\");\n\tthis.selectIndex = this.getAttribute(\"index\");\n\tthis.selectClass = this.getAttribute(\"class\");\n\tthis.selectDefault = this.getAttribute(\"default\");\n\tthis.selectMultiple = this.getAttribute(\"multiple\", false);\n\tthis.selectSize = this.getAttribute(\"size\");\n\tthis.selectTooltip = this.getAttribute(\"tooltip\");\n\t// Make the child widgets\n\tvar selectNode = {\n\t\ttype: \"element\",\n\t\ttag: \"select\",\n\t\tchildren: this.parseTreeNode.children\n\t};\n\tif(this.selectClass) {\n\t\t$tw.utils.addAttributeToParseTreeNode(selectNode,\"class\",this.selectClass);\n\t}\n\tif(this.selectMultiple) {\n\t\t$tw.utils.addAttributeToParseTreeNode(selectNode,\"multiple\",\"multiple\");\n\t}\n\tif(this.selectSize) {\n\t\t$tw.utils.addAttributeToParseTreeNode(selectNode,\"size\",this.selectSize);\n\t}\n\tif(this.selectTooltip) {\n\t\t$tw.utils.addAttributeToParseTreeNode(selectNode,\"title\",this.selectTooltip);\n\t}\n\tthis.makeChildWidgets([selectNode]);\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nSelectWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\t// If we're using a different tiddler/field/index then completely refresh ourselves\n\tif(changedAttributes.selectTitle || changedAttributes.selectField || changedAttributes.selectIndex || changedAttributes.selectTooltip) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t// If the target tiddler value has changed, just update setting and refresh the children\n\t} else {\n\t\tvar childrenRefreshed = this.refreshChildren(changedTiddlers);\n\t\tif(changedTiddlers[this.selectTitle] || childrenRefreshed) {\n\t\t\tthis.setSelectValue();\n\t\t} \n\t\treturn childrenRefreshed;\n\t}\n};\n\nexports.select = SelectWidget;\n\n})();\n",
            "type": "application/javascript",
            "module-type": "widget"
        },
        "$:/core/modules/widgets/set.js": {
            "title": "$:/core/modules/widgets/set.js",
            "text": "/*\\\ntitle: $:/core/modules/widgets/set.js\ntype: application/javascript\nmodule-type: widget\n\nSet variable widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar SetWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nSetWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nSetWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tthis.renderChildren(parent,nextSibling);\n};\n\n/*\nCompute the internal state of the widget\n*/\nSetWidget.prototype.execute = function() {\n\t// Get our parameters\n\tthis.setName = this.getAttribute(\"name\",\"currentTiddler\");\n\tthis.setFilter = this.getAttribute(\"filter\");\n\tthis.setSelect = this.getAttribute(\"select\");\n\tthis.setTiddler = this.getAttribute(\"tiddler\");\n\tthis.setSubTiddler = this.getAttribute(\"subtiddler\");\n\tthis.setField = this.getAttribute(\"field\");\n\tthis.setIndex = this.getAttribute(\"index\");\n\tthis.setValue = this.getAttribute(\"value\");\n\tthis.setEmptyValue = this.getAttribute(\"emptyValue\");\n\t// Set context variable\n\tthis.setVariable(this.setName,this.getValue(),this.parseTreeNode.params,!!this.parseTreeNode.isMacroDefinition);\n\t// Construct the child widgets\n\tthis.makeChildWidgets();\n};\n\n/*\nGet the value to be assigned\n*/\nSetWidget.prototype.getValue = function() {\n\tvar value = this.setValue;\n\tif(this.setTiddler) {\n\t\tvar tiddler;\n\t\tif(this.setSubTiddler) {\n\t\t\ttiddler = this.wiki.getSubTiddler(this.setTiddler,this.setSubTiddler);\n\t\t} else {\n\t\t\ttiddler = this.wiki.getTiddler(this.setTiddler);\t\t\t\n\t\t}\n\t\tif(!tiddler) {\n\t\t\tvalue = this.setEmptyValue;\n\t\t} else if(this.setField) {\n\t\t\tvalue = tiddler.getFieldString(this.setField) || this.setEmptyValue;\n\t\t} else if(this.setIndex) {\n\t\t\tvalue = this.wiki.extractTiddlerDataItem(this.setTiddler,this.setIndex,this.setEmptyValue);\n\t\t} else {\n\t\t\tvalue = tiddler.fields.text || this.setEmptyValue ;\n\t\t}\n\t} else if(this.setFilter) {\n\t\tvar results = this.wiki.filterTiddlers(this.setFilter,this);\n\t\tif(this.setValue == null) {\n\t\t\tvar select;\n\t\t\tif(this.setSelect) {\n\t\t\t\tselect = parseInt(this.setSelect,10);\n\t\t\t}\n\t\t\tif(select !== undefined) {\n\t\t\t\tvalue = results[select] || \"\";\n\t\t\t} else {\n\t\t\t\tvalue = $tw.utils.stringifyList(results);\t\t\t\n\t\t\t}\n\t\t}\n\t\tif(results.length === 0 && this.setEmptyValue !== undefined) {\n\t\t\tvalue = this.setEmptyValue;\n\t\t}\n\t} else if(!value && this.setEmptyValue) {\n\t\tvalue = this.setEmptyValue;\n\t}\n\treturn value || \"\";\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nSetWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.name || changedAttributes.filter || changedAttributes.select || changedAttributes.tiddler || (this.setTiddler && changedTiddlers[this.setTiddler]) || changedAttributes.field || changedAttributes.index || changedAttributes.value || changedAttributes.emptyValue ||\n\t   (this.setFilter && this.getValue() != this.variables[this.setName].value)) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else {\n\t\treturn this.refreshChildren(changedTiddlers);\n\t}\n};\n\nexports.setvariable = SetWidget;\nexports.set = SetWidget;\n\n})();\n",
            "type": "application/javascript",
            "module-type": "widget"
        },
        "$:/core/modules/widgets/text.js": {
            "title": "$:/core/modules/widgets/text.js",
            "text": "/*\\\ntitle: $:/core/modules/widgets/text.js\ntype: application/javascript\nmodule-type: widget\n\nText node widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar TextNodeWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nTextNodeWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nTextNodeWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tvar text = this.getAttribute(\"text\",this.parseTreeNode.text || \"\");\n\ttext = text.replace(/\\r/mg,\"\");\n\tvar textNode = this.document.createTextNode(text);\n\tparent.insertBefore(textNode,nextSibling);\n\tthis.domNodes.push(textNode);\n};\n\n/*\nCompute the internal state of the widget\n*/\nTextNodeWidget.prototype.execute = function() {\n\t// Nothing to do for a text node\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nTextNodeWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.text) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else {\n\t\treturn false;\t\n\t}\n};\n\nexports.text = TextNodeWidget;\n\n})();\n",
            "type": "application/javascript",
            "module-type": "widget"
        },
        "$:/core/modules/widgets/tiddler.js": {
            "title": "$:/core/modules/widgets/tiddler.js",
            "text": "/*\\\ntitle: $:/core/modules/widgets/tiddler.js\ntype: application/javascript\nmodule-type: widget\n\nTiddler widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar TiddlerWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nTiddlerWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nTiddlerWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tthis.renderChildren(parent,nextSibling);\n};\n\n/*\nCompute the internal state of the widget\n*/\nTiddlerWidget.prototype.execute = function() {\n\tthis.tiddlerState = this.computeTiddlerState();\n\tthis.setVariable(\"currentTiddler\",this.tiddlerState.currentTiddler);\n\tthis.setVariable(\"missingTiddlerClass\",this.tiddlerState.missingTiddlerClass);\n\tthis.setVariable(\"shadowTiddlerClass\",this.tiddlerState.shadowTiddlerClass);\n\tthis.setVariable(\"systemTiddlerClass\",this.tiddlerState.systemTiddlerClass);\n\tthis.setVariable(\"tiddlerTagClasses\",this.tiddlerState.tiddlerTagClasses);\n\t// Construct the child widgets\n\tthis.makeChildWidgets();\n};\n\n/*\nCompute the tiddler state flags\n*/\nTiddlerWidget.prototype.computeTiddlerState = function() {\n\t// Get our parameters\n\tthis.tiddlerTitle = this.getAttribute(\"tiddler\",this.getVariable(\"currentTiddler\"));\n\t// Compute the state\n\tvar state = {\n\t\tcurrentTiddler: this.tiddlerTitle || \"\",\n\t\tmissingTiddlerClass: (this.wiki.tiddlerExists(this.tiddlerTitle) || this.wiki.isShadowTiddler(this.tiddlerTitle)) ? \"tc-tiddler-exists\" : \"tc-tiddler-missing\",\n\t\tshadowTiddlerClass: this.wiki.isShadowTiddler(this.tiddlerTitle) ? \"tc-tiddler-shadow\" : \"\",\n\t\tsystemTiddlerClass: this.wiki.isSystemTiddler(this.tiddlerTitle) ? \"tc-tiddler-system\" : \"\",\n\t\ttiddlerTagClasses: this.getTagClasses()\n\t};\n\t// Compute a simple hash to make it easier to detect changes\n\tstate.hash = state.currentTiddler + state.missingTiddlerClass + state.shadowTiddlerClass + state.systemTiddlerClass + state.tiddlerTagClasses;\n\treturn state;\n};\n\n/*\nCreate a string of CSS classes derived from the tags of the current tiddler\n*/\nTiddlerWidget.prototype.getTagClasses = function() {\n\tvar tiddler = this.wiki.getTiddler(this.tiddlerTitle);\n\tif(tiddler) {\n\t\tvar tags = [];\n\t\t$tw.utils.each(tiddler.fields.tags,function(tag) {\n\t\t\ttags.push(\"tc-tagged-\" + encodeURIComponent(tag));\n\t\t});\n\t\treturn tags.join(\" \");\n\t} else {\n\t\treturn \"\";\n\t}\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nTiddlerWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes(),\n\t\tnewTiddlerState = this.computeTiddlerState();\n\tif(changedAttributes.tiddler || newTiddlerState.hash !== this.tiddlerState.hash) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else {\n\t\treturn this.refreshChildren(changedTiddlers);\t\t\n\t}\n};\n\nexports.tiddler = TiddlerWidget;\n\n})();\n",
            "type": "application/javascript",
            "module-type": "widget"
        },
        "$:/core/modules/widgets/transclude.js": {
            "title": "$:/core/modules/widgets/transclude.js",
            "text": "/*\\\ntitle: $:/core/modules/widgets/transclude.js\ntype: application/javascript\nmodule-type: widget\n\nTransclude widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar TranscludeWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nTranscludeWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nTranscludeWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tthis.renderChildren(parent,nextSibling);\n};\n\n/*\nCompute the internal state of the widget\n*/\nTranscludeWidget.prototype.execute = function() {\n\t// Get our parameters\n\tthis.transcludeTitle = this.getAttribute(\"tiddler\",this.getVariable(\"currentTiddler\"));\n\tthis.transcludeSubTiddler = this.getAttribute(\"subtiddler\");\n\tthis.transcludeField = this.getAttribute(\"field\");\n\tthis.transcludeIndex = this.getAttribute(\"index\");\n\tthis.transcludeMode = this.getAttribute(\"mode\");\n\tthis.recursionMarker = this.getAttribute(\"recursionMarker\",\"yes\");\n\t// Parse the text reference\n\tvar parseAsInline = !this.parseTreeNode.isBlock;\n\tif(this.transcludeMode === \"inline\") {\n\t\tparseAsInline = true;\n\t} else if(this.transcludeMode === \"block\") {\n\t\tparseAsInline = false;\n\t}\n\tvar parser = this.wiki.parseTextReference(\n\t\t\t\t\t\tthis.transcludeTitle,\n\t\t\t\t\t\tthis.transcludeField,\n\t\t\t\t\t\tthis.transcludeIndex,\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tparseAsInline: parseAsInline,\n\t\t\t\t\t\t\tsubTiddler: this.transcludeSubTiddler\n\t\t\t\t\t\t}),\n\t\tparseTreeNodes = parser ? parser.tree : this.parseTreeNode.children;\n\t// Set context variables for recursion detection\n\tvar recursionMarker = this.makeRecursionMarker();\n\tif(this.recursionMarker === \"yes\") {\n\t\tthis.setVariable(\"transclusion\",recursionMarker);\n\t}\n\t// Check for recursion\n\tif(parser) {\n\t\tif(this.parentWidget && this.parentWidget.hasVariable(\"transclusion\",recursionMarker)) {\n\t\t\tparseTreeNodes = [{type: \"element\", tag: \"span\", attributes: {\n\t\t\t\t\"class\": {type: \"string\", value: \"tc-error\"}\n\t\t\t}, children: [\n\t\t\t\t{type: \"text\", text: $tw.language.getString(\"Error/RecursiveTransclusion\")}\n\t\t\t]}];\n\t\t}\n\t}\n\t// Construct the child widgets\n\tthis.makeChildWidgets(parseTreeNodes);\n};\n\n/*\nCompose a string comprising the title, field and/or index to identify this transclusion for recursion detection\n*/\nTranscludeWidget.prototype.makeRecursionMarker = function() {\n\tvar output = [];\n\toutput.push(\"{\");\n\toutput.push(this.getVariable(\"currentTiddler\",{defaultValue: \"\"}));\n\toutput.push(\"|\");\n\toutput.push(this.transcludeTitle || \"\");\n\toutput.push(\"|\");\n\toutput.push(this.transcludeField || \"\");\n\toutput.push(\"|\");\n\toutput.push(this.transcludeIndex || \"\");\n\toutput.push(\"|\");\n\toutput.push(this.transcludeSubTiddler || \"\");\n\toutput.push(\"}\");\n\treturn output.join(\"\");\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nTranscludeWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.tiddler || changedAttributes.field || changedAttributes.index || changedTiddlers[this.transcludeTitle]) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else {\n\t\treturn this.refreshChildren(changedTiddlers);\t\t\n\t}\n};\n\nexports.transclude = TranscludeWidget;\n\n})();\n",
            "type": "application/javascript",
            "module-type": "widget"
        },
        "$:/core/modules/widgets/vars.js": {
            "title": "$:/core/modules/widgets/vars.js",
            "text": "/*\\\ntitle: $:/core/modules/widgets/vars.js\ntype: application/javascript\nmodule-type: widget\n\nThis widget allows multiple variables to be set in one go:\n\n```\n\\define helloworld() Hello world!\n<$vars greeting=\"Hi\" me={{!!title}} sentence=<<helloworld>>>\n  <<greeting>>! I am <<me>> and I say: <<sentence>>\n</$vars>\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar VarsWidget = function(parseTreeNode,options) {\n\t// Call the constructor\n\tWidget.call(this);\n\t// Initialise\t\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nVarsWidget.prototype = Object.create(Widget.prototype);\n\n/*\nRender this widget into the DOM\n*/\nVarsWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tthis.renderChildren(parent,nextSibling);\n};\n\n/*\nCompute the internal state of the widget\n*/\nVarsWidget.prototype.execute = function() {\n\t// Parse variables\n\tvar self = this;\n\t$tw.utils.each(this.attributes,function(val,key) {\n\t\tif(key.charAt(0) !== \"$\") {\n\t\t\tself.setVariable(key,val);\n\t\t}\n\t});\n\t// Construct the child widgets\n\tthis.makeChildWidgets();\n};\n\n/*\nRefresh the widget by ensuring our attributes are up to date\n*/\nVarsWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(Object.keys(changedAttributes).length) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t}\n\treturn this.refreshChildren(changedTiddlers);\n};\n\nexports[\"vars\"] = VarsWidget;\n\n})();\n",
            "type": "application/javascript",
            "module-type": "widget"
        },
        "$:/core/modules/widgets/view.js": {
            "title": "$:/core/modules/widgets/view.js",
            "text": "/*\\\ntitle: $:/core/modules/widgets/view.js\ntype: application/javascript\nmodule-type: widget\n\nView widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar ViewWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nViewWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nViewWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tif(this.text) {\n\t\tvar textNode = this.document.createTextNode(this.text);\n\t\tparent.insertBefore(textNode,nextSibling);\n\t\tthis.domNodes.push(textNode);\n\t} else {\n\t\tthis.makeChildWidgets();\n\t\tthis.renderChildren(parent,nextSibling);\n\t}\n};\n\n/*\nCompute the internal state of the widget\n*/\nViewWidget.prototype.execute = function() {\n\t// Get parameters from our attributes\n\tthis.viewTitle = this.getAttribute(\"tiddler\",this.getVariable(\"currentTiddler\"));\n\tthis.viewSubtiddler = this.getAttribute(\"subtiddler\");\n\tthis.viewField = this.getAttribute(\"field\",\"text\");\n\tthis.viewIndex = this.getAttribute(\"index\");\n\tthis.viewFormat = this.getAttribute(\"format\",\"text\");\n\tthis.viewTemplate = this.getAttribute(\"template\",\"\");\n\tthis.viewMode = this.getAttribute(\"mode\",\"block\");\n\tswitch(this.viewFormat) {\n\t\tcase \"htmlwikified\":\n\t\t\tthis.text = this.getValueAsHtmlWikified(this.viewMode);\n\t\t\tbreak;\n\t\tcase \"plainwikified\":\n\t\t\tthis.text = this.getValueAsPlainWikified(this.viewMode);\n\t\t\tbreak;\n\t\tcase \"htmlencodedplainwikified\":\n\t\t\tthis.text = this.getValueAsHtmlEncodedPlainWikified(this.viewMode);\n\t\t\tbreak;\n\t\tcase \"htmlencoded\":\n\t\t\tthis.text = this.getValueAsHtmlEncoded();\n\t\t\tbreak;\n\t\tcase \"urlencoded\":\n\t\t\tthis.text = this.getValueAsUrlEncoded();\n\t\t\tbreak;\n\t\tcase \"doubleurlencoded\":\n\t\t\tthis.text = this.getValueAsDoubleUrlEncoded();\n\t\t\tbreak;\n\t\tcase \"date\":\n\t\t\tthis.text = this.getValueAsDate(this.viewTemplate);\n\t\t\tbreak;\n\t\tcase \"relativedate\":\n\t\t\tthis.text = this.getValueAsRelativeDate();\n\t\t\tbreak;\n\t\tcase \"stripcomments\":\n\t\t\tthis.text = this.getValueAsStrippedComments();\n\t\t\tbreak;\n\t\tcase \"jsencoded\":\n\t\t\tthis.text = this.getValueAsJsEncoded();\n\t\t\tbreak;\n\t\tdefault: // \"text\"\n\t\t\tthis.text = this.getValueAsText();\n\t\t\tbreak;\n\t}\n};\n\n/*\nThe various formatter functions are baked into this widget for the moment. Eventually they will be replaced by macro functions\n*/\n\n/*\nRetrieve the value of the widget. Options are:\nasString: Optionally return the value as a string\n*/\nViewWidget.prototype.getValue = function(options) {\n\toptions = options || {};\n\tvar value = options.asString ? \"\" : undefined;\n\tif(this.viewIndex) {\n\t\tvalue = this.wiki.extractTiddlerDataItem(this.viewTitle,this.viewIndex);\n\t} else {\n\t\tvar tiddler;\n\t\tif(this.viewSubtiddler) {\n\t\t\ttiddler = this.wiki.getSubTiddler(this.viewTitle,this.viewSubtiddler);\t\n\t\t} else {\n\t\t\ttiddler = this.wiki.getTiddler(this.viewTitle);\n\t\t}\n\t\tif(tiddler) {\n\t\t\tif(this.viewField === \"text\" && !this.viewSubtiddler) {\n\t\t\t\t// Calling getTiddlerText() triggers lazy loading of skinny tiddlers\n\t\t\t\tvalue = this.wiki.getTiddlerText(this.viewTitle);\n\t\t\t} else {\n\t\t\t\tif($tw.utils.hop(tiddler.fields,this.viewField)) {\n\t\t\t\t\tif(options.asString) {\n\t\t\t\t\t\tvalue = tiddler.getFieldString(this.viewField);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tvalue = tiddler.fields[this.viewField];\t\t\t\t\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tif(this.viewField === \"title\") {\n\t\t\t\tvalue = this.viewTitle;\n\t\t\t}\n\t\t}\n\t}\n\treturn value;\n};\n\nViewWidget.prototype.getValueAsText = function() {\n\treturn this.getValue({asString: true});\n};\n\nViewWidget.prototype.getValueAsHtmlWikified = function(mode) {\n\treturn this.wiki.renderText(\"text/html\",\"text/vnd.tiddlywiki\",this.getValueAsText(),{\n\t\tparseAsInline: mode !== \"block\",\n\t\tparentWidget: this\n\t});\n};\n\nViewWidget.prototype.getValueAsPlainWikified = function(mode) {\n\treturn this.wiki.renderText(\"text/plain\",\"text/vnd.tiddlywiki\",this.getValueAsText(),{\n\t\tparseAsInline: mode !== \"block\",\n\t\tparentWidget: this\n\t});\n};\n\nViewWidget.prototype.getValueAsHtmlEncodedPlainWikified = function(mode) {\n\treturn $tw.utils.htmlEncode(this.wiki.renderText(\"text/plain\",\"text/vnd.tiddlywiki\",this.getValueAsText(),{\n\t\tparseAsInline: mode !== \"block\",\n\t\tparentWidget: this\n\t}));\n};\n\nViewWidget.prototype.getValueAsHtmlEncoded = function() {\n\treturn $tw.utils.htmlEncode(this.getValueAsText());\n};\n\nViewWidget.prototype.getValueAsUrlEncoded = function() {\n\treturn encodeURIComponent(this.getValueAsText());\n};\n\nViewWidget.prototype.getValueAsDoubleUrlEncoded = function() {\n\treturn encodeURIComponent(encodeURIComponent(this.getValueAsText()));\n};\n\nViewWidget.prototype.getValueAsDate = function(format) {\n\tformat = format || \"YYYY MM DD 0hh:0mm\";\n\tvar value = $tw.utils.parseDate(this.getValue());\n\tif(value && $tw.utils.isDate(value) && value.toString() !== \"Invalid Date\") {\n\t\treturn $tw.utils.formatDateString(value,format);\n\t} else {\n\t\treturn \"\";\n\t}\n};\n\nViewWidget.prototype.getValueAsRelativeDate = function(format) {\n\tvar value = $tw.utils.parseDate(this.getValue());\n\tif(value && $tw.utils.isDate(value) && value.toString() !== \"Invalid Date\") {\n\t\treturn $tw.utils.getRelativeDate((new Date()) - (new Date(value))).description;\n\t} else {\n\t\treturn \"\";\n\t}\n};\n\nViewWidget.prototype.getValueAsStrippedComments = function() {\n\tvar lines = this.getValueAsText().split(\"\\n\"),\n\t\tout = [];\n\tfor(var line=0; line<lines.length; line++) {\n\t\tvar text = lines[line];\n\t\tif(!/^\\s*\\/\\/#/.test(text)) {\n\t\t\tout.push(text);\n\t\t}\n\t}\n\treturn out.join(\"\\n\");\n};\n\nViewWidget.prototype.getValueAsJsEncoded = function() {\n\treturn $tw.utils.stringify(this.getValueAsText());\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nViewWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.tiddler || changedAttributes.field || changedAttributes.index || changedAttributes.template || changedAttributes.format || changedTiddlers[this.viewTitle]) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else {\n\t\treturn false;\t\n\t}\n};\n\nexports.view = ViewWidget;\n\n})();\n",
            "type": "application/javascript",
            "module-type": "widget"
        },
        "$:/core/modules/widgets/widget.js": {
            "title": "$:/core/modules/widgets/widget.js",
            "text": "/*\\\ntitle: $:/core/modules/widgets/widget.js\ntype: application/javascript\nmodule-type: widget\n\nWidget base class\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nCreate a widget object for a parse tree node\n\tparseTreeNode: reference to the parse tree node to be rendered\n\toptions: see below\nOptions include:\n\twiki: mandatory reference to wiki associated with this render tree\n\tparentWidget: optional reference to a parent renderer node for the context chain\n\tdocument: optional document object to use instead of global document\n*/\nvar Widget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInitialise widget properties. These steps are pulled out of the constructor so that we can reuse them in subclasses\n*/\nWidget.prototype.initialise = function(parseTreeNode,options) {\n\t// Bail if parseTreeNode is undefined, meaning  that the widget constructor was called without any arguments so that it can be subclassed\n\tif(parseTreeNode === undefined) {\n\t\treturn;\n\t}\n\toptions = options || {};\n\t// Save widget info\n\tthis.parseTreeNode = parseTreeNode;\n\tthis.wiki = options.wiki;\n\tthis.parentWidget = options.parentWidget;\n\tthis.variablesConstructor = function() {};\n\tthis.variablesConstructor.prototype = this.parentWidget ? this.parentWidget.variables : {};\n\tthis.variables = new this.variablesConstructor();\n\tthis.document = options.document;\n\tthis.attributes = {};\n\tthis.children = [];\n\tthis.domNodes = [];\n\tthis.eventListeners = {};\n\t// Hashmap of the widget classes\n\tif(!this.widgetClasses) {\n\t\t// Get widget classes\n\t\tWidget.prototype.widgetClasses = $tw.modules.applyMethods(\"widget\");\n\t\t// Process any subclasses\n\t\t$tw.modules.forEachModuleOfType(\"widget-subclass\",function(title,module) {\n\t\t\tif(module.baseClass) {\n\t\t\t\tvar baseClass = Widget.prototype.widgetClasses[module.baseClass];\n\t\t\t\tif(!baseClass) {\n\t\t\t\t\tthrow \"Module '\" + title + \"' is attemping to extend a non-existent base class '\" + module.baseClass + \"'\";\n\t\t\t\t}\n\t\t\t\tvar subClass = module.constructor;\n\t\t\t\tsubClass.prototype = new baseClass();\n\t\t\t\t$tw.utils.extend(subClass.prototype,module.prototype);\n\t\t\t\tWidget.prototype.widgetClasses[module.name || module.baseClass] = subClass;\n\t\t\t}\n\t\t});\n\t}\n};\n\n/*\nRender this widget into the DOM\n*/\nWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.execute();\n\tthis.renderChildren(parent,nextSibling);\n};\n\n/*\nCompute the internal state of the widget\n*/\nWidget.prototype.execute = function() {\n\tthis.makeChildWidgets();\n};\n\n/*\nSet the value of a context variable\nname: name of the variable\nvalue: value of the variable\nparams: array of {name:, default:} for each parameter\nisMacroDefinition: true if the variable is set via a \\define macro pragma (and hence should have variable substitution performed)\n*/\nWidget.prototype.setVariable = function(name,value,params,isMacroDefinition) {\n\tthis.variables[name] = {value: value, params: params, isMacroDefinition: !!isMacroDefinition};\n};\n\n/*\nGet the prevailing value of a context variable\nname: name of variable\noptions: see below\nOptions include\nparams: array of {name:, value:} for each parameter\ndefaultValue: default value if the variable is not defined\n\nReturns an object with the following fields:\n\nparams: array of {name:,value:} of parameters passed to wikitext variables\ntext: text of variable, with parameters properly substituted\n*/\nWidget.prototype.getVariableInfo = function(name,options) {\n\toptions = options || {};\n\tvar actualParams = options.params || [],\n\t\tparentWidget = this.parentWidget;\n\t// Check for the variable defined in the parent widget (or an ancestor in the prototype chain)\n\tif(parentWidget && name in parentWidget.variables) {\n\t\tvar variable = parentWidget.variables[name],\n\t\t\toriginalValue = variable.value,\n\t\t\tvalue = originalValue,\n\t\t\tparams = this.resolveVariableParameters(variable.params,actualParams);\n\t\t// Substitute any parameters specified in the definition\n\t\t$tw.utils.each(params,function(param) {\n\t\t\tvalue = $tw.utils.replaceString(value,new RegExp(\"\\\\$\" + $tw.utils.escapeRegExp(param.name) + \"\\\\$\",\"mg\"),param.value);\n\t\t});\n\t\t// Only substitute variable references if this variable was defined with the \\define pragma\n\t\tif(variable.isMacroDefinition) {\n\t\t\tvalue = this.substituteVariableReferences(value);\t\t\t\n\t\t}\n\t\treturn {\n\t\t\ttext: value,\n\t\t\tparams: params,\n\t\t\tsrcVariable: variable,\n\t\t\tisCacheable: originalValue === value\n\t\t};\n\t}\n\t// If the variable doesn't exist in the parent widget then look for a macro module\n\treturn {\n\t\ttext: this.evaluateMacroModule(name,actualParams,options.defaultValue)\n\t};\n};\n\n/*\nSimplified version of getVariableInfo() that just returns the text\n*/\nWidget.prototype.getVariable = function(name,options) {\n\treturn this.getVariableInfo(name,options).text;\n};\n\nWidget.prototype.resolveVariableParameters = function(formalParams,actualParams) {\n\tformalParams = formalParams || [];\n\tactualParams = actualParams || [];\n\tvar nextAnonParameter = 0, // Next candidate anonymous parameter in macro call\n\t\tparamInfo, paramValue,\n\t\tresults = [];\n\t// Step through each of the parameters in the macro definition\n\tfor(var p=0; p<formalParams.length; p++) {\n\t\t// Check if we've got a macro call parameter with the same name\n\t\tparamInfo = formalParams[p];\n\t\tparamValue = undefined;\n\t\tfor(var m=0; m<actualParams.length; m++) {\n\t\t\tif(actualParams[m].name === paramInfo.name) {\n\t\t\t\tparamValue = actualParams[m].value;\n\t\t\t}\n\t\t}\n\t\t// If not, use the next available anonymous macro call parameter\n\t\twhile(nextAnonParameter < actualParams.length && actualParams[nextAnonParameter].name) {\n\t\t\tnextAnonParameter++;\n\t\t}\n\t\tif(paramValue === undefined && nextAnonParameter < actualParams.length) {\n\t\t\tparamValue = actualParams[nextAnonParameter++].value;\n\t\t}\n\t\t// If we've still not got a value, use the default, if any\n\t\tparamValue = paramValue || paramInfo[\"default\"] || \"\";\n\t\t// Store the parameter name and value\n\t\tresults.push({name: paramInfo.name, value: paramValue});\n\t}\n\treturn results;\n};\n\nWidget.prototype.substituteVariableReferences = function(text) {\n\tvar self = this;\n\treturn (text || \"\").replace(/\\$\\(([^\\)\\$]+)\\)\\$/g,function(match,p1,offset,string) {\n\t\treturn self.getVariable(p1,{defaultValue: \"\"});\n\t});\n};\n\nWidget.prototype.evaluateMacroModule = function(name,actualParams,defaultValue) {\n\tif($tw.utils.hop($tw.macros,name)) {\n\t\tvar macro = $tw.macros[name],\n\t\t\targs = [];\n\t\tif(macro.params.length > 0) {\n\t\t\tvar nextAnonParameter = 0, // Next candidate anonymous parameter in macro call\n\t\t\t\tparamInfo, paramValue;\n\t\t\t// Step through each of the parameters in the macro definition\n\t\t\tfor(var p=0; p<macro.params.length; p++) {\n\t\t\t\t// Check if we've got a macro call parameter with the same name\n\t\t\t\tparamInfo = macro.params[p];\n\t\t\t\tparamValue = undefined;\n\t\t\t\tfor(var m=0; m<actualParams.length; m++) {\n\t\t\t\t\tif(actualParams[m].name === paramInfo.name) {\n\t\t\t\t\t\tparamValue = actualParams[m].value;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\t// If not, use the next available anonymous macro call parameter\n\t\t\t\twhile(nextAnonParameter < actualParams.length && actualParams[nextAnonParameter].name) {\n\t\t\t\t\tnextAnonParameter++;\n\t\t\t\t}\n\t\t\t\tif(paramValue === undefined && nextAnonParameter < actualParams.length) {\n\t\t\t\t\tparamValue = actualParams[nextAnonParameter++].value;\n\t\t\t\t}\n\t\t\t\t// If we've still not got a value, use the default, if any\n\t\t\t\tparamValue = paramValue || paramInfo[\"default\"] || \"\";\n\t\t\t\t// Save the parameter\n\t\t\t\targs.push(paramValue);\n\t\t\t}\n\t\t}\n\t\telse for(var i=0; i<actualParams.length; ++i) {\n\t\t\targs.push(actualParams[i].value);\n\t\t}\n\t\treturn (macro.run.apply(this,args) || \"\").toString();\n\t} else {\n\t\treturn defaultValue;\n\t}\n};\n\n/*\nCheck whether a given context variable value exists in the parent chain\n*/\nWidget.prototype.hasVariable = function(name,value) {\n\tvar node = this;\n\twhile(node) {\n\t\tif($tw.utils.hop(node.variables,name) && node.variables[name].value === value) {\n\t\t\treturn true;\n\t\t}\n\t\tnode = node.parentWidget;\n\t}\n\treturn false;\n};\n\n/*\nConstruct a qualifying string based on a hash of concatenating the values of a given variable in the parent chain\n*/\nWidget.prototype.getStateQualifier = function(name) {\n\tthis.qualifiers = this.qualifiers || Object.create(null);\n\tname = name || \"transclusion\";\n\tif(this.qualifiers[name]) {\n\t\treturn this.qualifiers[name];\n\t} else {\n\t\tvar output = [],\n\t\t\tnode = this;\n\t\twhile(node && node.parentWidget) {\n\t\t\tif($tw.utils.hop(node.parentWidget.variables,name)) {\n\t\t\t\toutput.push(node.getVariable(name));\n\t\t\t}\n\t\t\tnode = node.parentWidget;\n\t\t}\n\t\tvar value = $tw.utils.hashString(output.join(\"\"));\n\t\tthis.qualifiers[name] = value;\n\t\treturn value;\n\t}\n};\n\n/*\nCompute the current values of the attributes of the widget. Returns a hashmap of the names of the attributes that have changed\n*/\nWidget.prototype.computeAttributes = function() {\n\tvar changedAttributes = {},\n\t\tself = this,\n\t\tvalue;\n\t$tw.utils.each(this.parseTreeNode.attributes,function(attribute,name) {\n\t\tif(attribute.type === \"filtered\") {\n\t\t\tvalue = self.wiki.filterTiddlers(attribute.filter,self)[0] || \"\";\n\t\t} else if(attribute.type === \"indirect\") {\n\t\t\tvalue = self.wiki.getTextReference(attribute.textReference,\"\",self.getVariable(\"currentTiddler\"));\n\t\t} else if(attribute.type === \"macro\") {\n\t\t\tvalue = self.getVariable(attribute.value.name,{params: attribute.value.params});\n\t\t} else { // String attribute\n\t\t\tvalue = attribute.value;\n\t\t}\n\t\t// Check whether the attribute has changed\n\t\tif(self.attributes[name] !== value) {\n\t\t\tself.attributes[name] = value;\n\t\t\tchangedAttributes[name] = true;\n\t\t}\n\t});\n\treturn changedAttributes;\n};\n\n/*\nCheck for the presence of an attribute\n*/\nWidget.prototype.hasAttribute = function(name) {\n\treturn $tw.utils.hop(this.attributes,name);\n};\n\n/*\nGet the value of an attribute\n*/\nWidget.prototype.getAttribute = function(name,defaultText) {\n\tif($tw.utils.hop(this.attributes,name)) {\n\t\treturn this.attributes[name];\n\t} else {\n\t\treturn defaultText;\n\t}\n};\n\n/*\nAssign the computed attributes of the widget to a domNode\noptions include:\nexcludeEventAttributes: ignores attributes whose name begins with \"on\"\n*/\nWidget.prototype.assignAttributes = function(domNode,options) {\n\toptions = options || {};\n\tvar self = this;\n\t$tw.utils.each(this.attributes,function(v,a) {\n\t\t// Check exclusions\n\t\tif(options.excludeEventAttributes && a.substr(0,2) === \"on\") {\n\t\t\tv = undefined;\n\t\t}\n\t\tif(v !== undefined) {\n\t\t\tvar b = a.split(\":\");\n\t\t\t// Setting certain attributes can cause a DOM error (eg xmlns on the svg element)\n\t\t\ttry {\n\t\t\t\tif (b.length == 2 && b[0] == \"xlink\"){\n\t\t\t\t\tdomNode.setAttributeNS(\"http://www.w3.org/1999/xlink\",b[1],v);\n\t\t\t\t} else {\n\t\t\t\t\tdomNode.setAttributeNS(null,a,v);\n\t\t\t\t}\n\t\t\t} catch(e) {\n\t\t\t}\n\t\t}\n\t});\n};\n\n/*\nMake child widgets correspondng to specified parseTreeNodes\n*/\nWidget.prototype.makeChildWidgets = function(parseTreeNodes) {\n\tthis.children = [];\n\tvar self = this;\n\t$tw.utils.each(parseTreeNodes || (this.parseTreeNode && this.parseTreeNode.children),function(childNode) {\n\t\tself.children.push(self.makeChildWidget(childNode));\n\t});\n};\n\n/*\nConstruct the widget object for a parse tree node\n*/\nWidget.prototype.makeChildWidget = function(parseTreeNode) {\n\tvar WidgetClass = this.widgetClasses[parseTreeNode.type];\n\tif(!WidgetClass) {\n\t\tWidgetClass = this.widgetClasses.text;\n\t\tparseTreeNode = {type: \"text\", text: \"Undefined widget '\" + parseTreeNode.type + \"'\"};\n\t}\n\treturn new WidgetClass(parseTreeNode,{\n\t\twiki: this.wiki,\n\t\tvariables: {},\n\t\tparentWidget: this,\n\t\tdocument: this.document\n\t});\n};\n\n/*\nGet the next sibling of this widget\n*/\nWidget.prototype.nextSibling = function() {\n\tif(this.parentWidget) {\n\t\tvar index = this.parentWidget.children.indexOf(this);\n\t\tif(index !== -1 && index < this.parentWidget.children.length-1) {\n\t\t\treturn this.parentWidget.children[index+1];\n\t\t}\n\t}\n\treturn null;\n};\n\n/*\nGet the previous sibling of this widget\n*/\nWidget.prototype.previousSibling = function() {\n\tif(this.parentWidget) {\n\t\tvar index = this.parentWidget.children.indexOf(this);\n\t\tif(index !== -1 && index > 0) {\n\t\t\treturn this.parentWidget.children[index-1];\n\t\t}\n\t}\n\treturn null;\n};\n\n/*\nRender the children of this widget into the DOM\n*/\nWidget.prototype.renderChildren = function(parent,nextSibling) {\n\tvar children = this.children;\n\tfor(var i = 0; i < children.length; i++) {\n\t\tchildren[i].render(parent,nextSibling);\n\t};\n};\n\n/*\nAdd a list of event listeners from an array [{type:,handler:},...]\n*/\nWidget.prototype.addEventListeners = function(listeners) {\n\tvar self = this;\n\t$tw.utils.each(listeners,function(listenerInfo) {\n\t\tself.addEventListener(listenerInfo.type,listenerInfo.handler);\n\t});\n};\n\n/*\nAdd an event listener\n*/\nWidget.prototype.addEventListener = function(type,handler) {\n\tvar self = this;\n\tif(typeof handler === \"string\") { // The handler is a method name on this widget\n\t\tthis.eventListeners[type] = function(event) {\n\t\t\treturn self[handler].call(self,event);\n\t\t};\n\t} else { // The handler is a function\n\t\tthis.eventListeners[type] = function(event) {\n\t\t\treturn handler.call(self,event);\n\t\t};\n\t}\n};\n\n/*\nDispatch an event to a widget. If the widget doesn't handle the event then it is also dispatched to the parent widget\n*/\nWidget.prototype.dispatchEvent = function(event) {\n\tevent.widget = event.widget || this;\n\t// Dispatch the event if this widget handles it\n\tvar listener = this.eventListeners[event.type];\n\tif(listener) {\n\t\t// Don't propagate the event if the listener returned false\n\t\tif(!listener(event)) {\n\t\t\treturn false;\n\t\t}\n\t}\n\t// Dispatch the event to the parent widget\n\tif(this.parentWidget) {\n\t\treturn this.parentWidget.dispatchEvent(event);\n\t}\n\treturn true;\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nWidget.prototype.refresh = function(changedTiddlers) {\n\treturn this.refreshChildren(changedTiddlers);\n};\n\n/*\nRebuild a previously rendered widget\n*/\nWidget.prototype.refreshSelf = function() {\n\tvar nextSibling = this.findNextSiblingDomNode();\n\tthis.removeChildDomNodes();\n\tthis.render(this.parentDomNode,nextSibling);\n};\n\n/*\nRefresh all the children of a widget\n*/\nWidget.prototype.refreshChildren = function(changedTiddlers) {\n\tvar children = this.children,\n\t\trefreshed = false;\n\tfor (var i = 0; i < children.length; i++) {\n\t\trefreshed = children[i].refresh(changedTiddlers) || refreshed;\n\t}\n\treturn refreshed;\n};\n\n/*\nFind the next sibling in the DOM to this widget. This is done by scanning the widget tree through all next siblings and their descendents that share the same parent DOM node\n*/\nWidget.prototype.findNextSiblingDomNode = function(startIndex) {\n\t// Refer to this widget by its index within its parents children\n\tvar parent = this.parentWidget,\n\t\tindex = startIndex !== undefined ? startIndex : parent.children.indexOf(this);\nif(index === -1) {\n\tthrow \"node not found in parents children\";\n}\n\t// Look for a DOM node in the later siblings\n\twhile(++index < parent.children.length) {\n\t\tvar domNode = parent.children[index].findFirstDomNode();\n\t\tif(domNode) {\n\t\t\treturn domNode;\n\t\t}\n\t}\n\t// Go back and look for later siblings of our parent if it has the same parent dom node\n\tvar grandParent = parent.parentWidget;\n\tif(grandParent && parent.parentDomNode === this.parentDomNode) {\n\t\tindex = grandParent.children.indexOf(parent);\n\t\tif(index !== -1) {\n\t\t\treturn parent.findNextSiblingDomNode(index);\n\t\t}\n\t}\n\treturn null;\n};\n\n/*\nFind the first DOM node generated by a widget or its children\n*/\nWidget.prototype.findFirstDomNode = function() {\n\t// Return the first dom node of this widget, if we've got one\n\tif(this.domNodes.length > 0) {\n\t\treturn this.domNodes[0];\n\t}\n\t// Otherwise, recursively call our children\n\tfor(var t=0; t<this.children.length; t++) {\n\t\tvar domNode = this.children[t].findFirstDomNode();\n\t\tif(domNode) {\n\t\t\treturn domNode;\n\t\t}\n\t}\n\treturn null;\n};\n\n/*\nRemove any DOM nodes created by this widget or its children\n*/\nWidget.prototype.removeChildDomNodes = function() {\n\t// If this widget has directly created DOM nodes, delete them and exit. This assumes that any child widgets are contained within the created DOM nodes, which would normally be the case\n\tif(this.domNodes.length > 0) {\n\t\t$tw.utils.each(this.domNodes,function(domNode) {\n\t\t\tdomNode.parentNode.removeChild(domNode);\n\t\t});\n\t\tthis.domNodes = [];\n\t} else {\n\t\t// Otherwise, ask the child widgets to delete their DOM nodes\n\t\t$tw.utils.each(this.children,function(childWidget) {\n\t\t\tchildWidget.removeChildDomNodes();\n\t\t});\n\t}\n};\n\n/*\nInvoke the action widgets that are descendents of the current widget.\n*/\nWidget.prototype.invokeActions = function(triggeringWidget,event) {\n\tvar handled = false;\n\t// For each child widget\n\tfor(var t=0; t<this.children.length; t++) {\n\t\tvar child = this.children[t];\n\t\t// Invoke the child if it is an action widget\n\t\tif(child.invokeAction) {\n\t\t\tchild.refreshSelf();\n\t\t\tif(child.invokeAction(triggeringWidget,event)) {\n\t\t\t\thandled = true;\n\t\t\t}\n\t\t}\n\t\t// Propagate through through the child if it permits it\n\t\tif(child.allowActionPropagation() && child.invokeActions(triggeringWidget,event)) {\n\t\t\thandled = true;\n\t\t}\n\t}\n\treturn handled;\n};\n\n/*\nInvoke the action widgets defined in a string\n*/\nWidget.prototype.invokeActionString = function(actions,triggeringWidget,event,variables) {\n\tactions = actions || \"\";\n\tvar parser = this.wiki.parseText(\"text/vnd.tiddlywiki\",actions,{\n\t\t\tparentWidget: this,\n\t\t\tdocument: this.document\n\t\t}),\n\t\twidgetNode = this.wiki.makeWidget(parser,{\n\t\t\tparentWidget: this,\n\t\t\tdocument: this.document,\n\t\t\tvariables: variables\n\t\t});\n\tvar container = this.document.createElement(\"div\");\n\twidgetNode.render(container,null);\n\treturn widgetNode.invokeActions(this,event);\n};\n\n/*\nExecute action tiddlers by tag\n*/\nWidget.prototype.invokeActionsByTag = function(tag,event,variables) {\n\tvar self = this;\n\t$tw.utils.each(self.wiki.filterTiddlers(\"[all[shadows+tiddlers]tag[\" + tag + \"]!has[draft.of]]\"),function(title) {\n\t\tself.invokeActionString(self.wiki.getTiddlerText(title),self,event,variables);\n\t});\n};\n\nWidget.prototype.allowActionPropagation = function() {\n\treturn true;\n};\n\nexports.widget = Widget;\n\n})();\n",
            "type": "application/javascript",
            "module-type": "widget"
        },
        "$:/core/modules/widgets/wikify.js": {
            "title": "$:/core/modules/widgets/wikify.js",
            "text": "/*\\\ntitle: $:/core/modules/widgets/wikify.js\ntype: application/javascript\nmodule-type: widget\n\nWidget to wikify text into a variable\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar WikifyWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nWikifyWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nWikifyWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tthis.renderChildren(parent,nextSibling);\n};\n\n/*\nCompute the internal state of the widget\n*/\nWikifyWidget.prototype.execute = function() {\n\t// Get our parameters\n\tthis.wikifyName = this.getAttribute(\"name\");\n\tthis.wikifyText = this.getAttribute(\"text\");\n\tthis.wikifyType = this.getAttribute(\"type\");\n\tthis.wikifyMode = this.getAttribute(\"mode\",\"block\");\n\tthis.wikifyOutput = this.getAttribute(\"output\",\"text\");\n\t// Create the parse tree\n\tthis.wikifyParser = this.wiki.parseText(this.wikifyType,this.wikifyText,{\n\t\t\tparseAsInline: this.wikifyMode === \"inline\"\n\t\t});\n\t// Create the widget tree \n\tthis.wikifyWidgetNode = this.wiki.makeWidget(this.wikifyParser,{\n\t\t\tdocument: $tw.fakeDocument,\n\t\t\tparentWidget: this\n\t\t});\n\t// Render the widget tree to the container\n\tthis.wikifyContainer = $tw.fakeDocument.createElement(\"div\");\n\tthis.wikifyWidgetNode.render(this.wikifyContainer,null);\n\tthis.wikifyResult = this.getResult();\n\t// Set context variable\n\tthis.setVariable(this.wikifyName,this.wikifyResult);\n\t// Construct the child widgets\n\tthis.makeChildWidgets();\n};\n\n/*\nReturn the result string\n*/\nWikifyWidget.prototype.getResult = function() {\n\tvar result;\n\tswitch(this.wikifyOutput) {\n\t\tcase \"text\":\n\t\t\tresult = this.wikifyContainer.textContent;\n\t\t\tbreak;\n\t\tcase \"formattedtext\":\n\t\t\tresult = this.wikifyContainer.formattedTextContent;\n\t\t\tbreak;\n\t\tcase \"html\":\n\t\t\tresult = this.wikifyContainer.innerHTML;\n\t\t\tbreak;\n\t\tcase \"parsetree\":\n\t\t\tresult = JSON.stringify(this.wikifyParser.tree,0,$tw.config.preferences.jsonSpaces);\n\t\t\tbreak;\n\t\tcase \"widgettree\":\n\t\t\tresult = JSON.stringify(this.getWidgetTree(),0,$tw.config.preferences.jsonSpaces);\n\t\t\tbreak;\n\t}\n\treturn result;\n};\n\n/*\nReturn a string of the widget tree\n*/\nWikifyWidget.prototype.getWidgetTree = function() {\n\tvar copyNode = function(widgetNode,resultNode) {\n\t\t\tvar type = widgetNode.parseTreeNode.type;\n\t\t\tresultNode.type = type;\n\t\t\tswitch(type) {\n\t\t\t\tcase \"element\":\n\t\t\t\t\tresultNode.tag = widgetNode.parseTreeNode.tag;\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"text\":\n\t\t\t\t\tresultNode.text = widgetNode.parseTreeNode.text;\n\t\t\t\t\tbreak;\t\n\t\t\t}\n\t\t\tif(Object.keys(widgetNode.attributes || {}).length > 0) {\n\t\t\t\tresultNode.attributes = {};\n\t\t\t\t$tw.utils.each(widgetNode.attributes,function(attr,attrName) {\n\t\t\t\t\tresultNode.attributes[attrName] = widgetNode.getAttribute(attrName);\n\t\t\t\t});\n\t\t\t}\n\t\t\tif(Object.keys(widgetNode.children || {}).length > 0) {\n\t\t\t\tresultNode.children = [];\n\t\t\t\t$tw.utils.each(widgetNode.children,function(widgetChildNode) {\n\t\t\t\t\tvar node = {};\n\t\t\t\t\tresultNode.children.push(node);\n\t\t\t\t\tcopyNode(widgetChildNode,node);\n\t\t\t\t});\n\t\t\t}\n\t\t},\n\t\tresults = {};\n\tcopyNode(this.wikifyWidgetNode,results);\n\treturn results;\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nWikifyWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\t// Refresh ourselves entirely if any of our attributes have changed\n\tif(changedAttributes.name || changedAttributes.text || changedAttributes.type || changedAttributes.mode || changedAttributes.output) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else {\n\t\t// Refresh the widget tree\n\t\tif(this.wikifyWidgetNode.refresh(changedTiddlers)) {\n\t\t\t// Check if there was any change\n\t\t\tvar result = this.getResult();\n\t\t\tif(result !== this.wikifyResult) {\n\t\t\t\t// If so, save the change\n\t\t\t\tthis.wikifyResult = result;\n\t\t\t\tthis.setVariable(this.wikifyName,this.wikifyResult);\n\t\t\t\t// Refresh each of our child widgets\n\t\t\t\t$tw.utils.each(this.children,function(childWidget) {\n\t\t\t\t\tchildWidget.refreshSelf();\n\t\t\t\t});\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\t\t// Just refresh the children\n\t\treturn this.refreshChildren(changedTiddlers);\n\t}\n};\n\nexports.wikify = WikifyWidget;\n\n})();\n",
            "type": "application/javascript",
            "module-type": "widget"
        },
        "$:/core/modules/wiki-bulkops.js": {
            "title": "$:/core/modules/wiki-bulkops.js",
            "text": "/*\\\ntitle: $:/core/modules/wiki-bulkops.js\ntype: application/javascript\nmodule-type: wikimethod\n\nBulk tiddler operations such as rename.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nRename a tiddler, and relink any tags or lists that reference it.\n*/\nfunction renameTiddler(fromTitle,toTitle,options) {\n\tfromTitle = (fromTitle || \"\").trim();\n\ttoTitle = (toTitle || \"\").trim();\n\toptions = options || {};\n\tif(fromTitle && toTitle && fromTitle !== toTitle) {\n\t\t// Rename the tiddler itself\n\t\tvar oldTiddler = this.getTiddler(fromTitle),\n\t\t\tnewTiddler = new $tw.Tiddler(oldTiddler,{title: toTitle},this.getModificationFields());\n\t\tnewTiddler = $tw.hooks.invokeHook(\"th-renaming-tiddler\",newTiddler,oldTiddler);\n\t\tthis.addTiddler(newTiddler);\n\t\tthis.deleteTiddler(fromTitle);\n\t\t// Rename any tags or lists that reference it\n\t\tthis.relinkTiddler(fromTitle,toTitle,options)\n\t}\n}\n\n/*\nRelink any tags or lists that reference a given tiddler\n*/\nfunction relinkTiddler(fromTitle,toTitle,options) {\n\tvar self = this;\n\tfromTitle = (fromTitle || \"\").trim();\n\ttoTitle = (toTitle || \"\").trim();\n\toptions = options || {};\n\tif(fromTitle && toTitle && fromTitle !== toTitle) {\n\t\tthis.each(function(tiddler,title) {\n\t\t\tvar type = tiddler.fields.type || \"\";\n\t\t\t// Don't touch plugins or JavaScript modules\n\t\t\tif(!tiddler.fields[\"plugin-type\"] && type !== \"application/javascript\") {\n\t\t\t\tvar tags = tiddler.fields.tags ? tiddler.fields.tags.slice(0) : undefined,\n\t\t\t\t\tlist = tiddler.fields.list ? tiddler.fields.list.slice(0) : undefined,\n\t\t\t\t\tisModified = false;\n\t\t\t\tif(!options.dontRenameInTags) {\n\t\t\t\t\t// Rename tags\n\t\t\t\t\t$tw.utils.each(tags,function (title,index) {\n\t\t\t\t\t\tif(title === fromTitle) {\nconsole.log(\"Renaming tag '\" + tags[index] + \"' to '\" + toTitle + \"' of tiddler '\" + tiddler.fields.title + \"'\");\n\t\t\t\t\t\t\ttags[index] = toTitle;\n\t\t\t\t\t\t\tisModified = true;\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\tif(!options.dontRenameInLists) {\n\t\t\t\t\t// Rename lists\n\t\t\t\t\t$tw.utils.each(list,function (title,index) {\n\t\t\t\t\t\tif(title === fromTitle) {\nconsole.log(\"Renaming list item '\" + list[index] + \"' to '\" + toTitle + \"' of tiddler '\" + tiddler.fields.title + \"'\");\n\t\t\t\t\t\t\tlist[index] = toTitle;\n\t\t\t\t\t\t\tisModified = true;\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\tif(isModified) {\n\t\t\t\t\tvar newTiddler = new $tw.Tiddler(tiddler,{tags: tags, list: list},self.getModificationFields())\n\t\t\t\t\tnewTiddler = $tw.hooks.invokeHook(\"th-relinking-tiddler\",newTiddler,tiddler);\n\t\t\t\t\tself.addTiddler(newTiddler);\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t}\n};\n\nexports.renameTiddler = renameTiddler;\nexports.relinkTiddler = relinkTiddler;\n\n})();\n",
            "type": "application/javascript",
            "module-type": "wikimethod"
        },
        "$:/core/modules/wiki.js": {
            "title": "$:/core/modules/wiki.js",
            "text": "/*\\\ntitle: $:/core/modules/wiki.js\ntype: application/javascript\nmodule-type: wikimethod\n\nExtension methods for the $tw.Wiki object\n\nAdds the following properties to the wiki object:\n\n* `eventListeners` is a hashmap by type of arrays of listener functions\n* `changedTiddlers` is a hashmap describing changes to named tiddlers since wiki change events were last dispatched. Each entry is a hashmap containing two fields:\n\tmodified: true/false\n\tdeleted: true/false\n* `changeCount` is a hashmap by tiddler title containing a numerical index that starts at zero and is incremented each time a tiddler is created changed or deleted\n* `caches` is a hashmap by tiddler title containing a further hashmap of named cache objects. Caches are automatically cleared when a tiddler is modified or deleted\n* `globalCache` is a hashmap by cache name of cache objects that are cleared whenever any tiddler change occurs\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar widget = require(\"$:/core/modules/widgets/widget.js\");\n\nvar USER_NAME_TITLE = \"$:/status/UserName\",\n\tTIMESTAMP_DISABLE_TITLE = \"$:/config/TimestampDisable\";\n\n/*\nAdd available indexers to this wiki\n*/\nexports.addIndexersToWiki = function() {\n\tvar self = this;\n\t$tw.utils.each($tw.modules.applyMethods(\"indexer\"),function(Indexer,name) {\n\t\tself.addIndexer(new Indexer(self),name);\n\t});\n};\n\n/*\nGet the value of a text reference. Text references can have any of these forms:\n\t<tiddlertitle>\n\t<tiddlertitle>!!<fieldname>\n\t!!<fieldname> - specifies a field of the current tiddlers\n\t<tiddlertitle>##<index>\n*/\nexports.getTextReference = function(textRef,defaultText,currTiddlerTitle) {\n\tvar tr = $tw.utils.parseTextReference(textRef),\n\t\ttitle = tr.title || currTiddlerTitle;\n\tif(tr.field) {\n\t\tvar tiddler = this.getTiddler(title);\n\t\tif(tr.field === \"title\") { // Special case so we can return the title of a non-existent tiddler\n\t\t\treturn title;\n\t\t} else if(tiddler && $tw.utils.hop(tiddler.fields,tr.field)) {\n\t\t\treturn tiddler.getFieldString(tr.field);\n\t\t} else {\n\t\t\treturn defaultText;\n\t\t}\n\t} else if(tr.index) {\n\t\treturn this.extractTiddlerDataItem(title,tr.index,defaultText);\n\t} else {\n\t\treturn this.getTiddlerText(title,defaultText);\n\t}\n};\n\nexports.setTextReference = function(textRef,value,currTiddlerTitle) {\n\tvar tr = $tw.utils.parseTextReference(textRef),\n\t\ttitle = tr.title || currTiddlerTitle;\n\tthis.setText(title,tr.field,tr.index,value);\n};\n\nexports.setText = function(title,field,index,value,options) {\n\toptions = options || {};\n\tvar creationFields = options.suppressTimestamp ? {} : this.getCreationFields(),\n\t\tmodificationFields = options.suppressTimestamp ? {} : this.getModificationFields();\n\t// Check if it is a reference to a tiddler field\n\tif(index) {\n\t\tvar data = this.getTiddlerData(title,Object.create(null));\n\t\tif(value !== undefined) {\n\t\t\tdata[index] = value;\n\t\t} else {\n\t\t\tdelete data[index];\n\t\t}\n\t\tthis.setTiddlerData(title,data,modificationFields);\n\t} else {\n\t\tvar tiddler = this.getTiddler(title),\n\t\t\tfields = {title: title};\n\t\tfields[field || \"text\"] = value;\n\t\tthis.addTiddler(new $tw.Tiddler(creationFields,tiddler,fields,modificationFields));\n\t}\n};\n\nexports.deleteTextReference = function(textRef,currTiddlerTitle) {\n\tvar tr = $tw.utils.parseTextReference(textRef),\n\t\ttitle,tiddler,fields;\n\t// Check if it is a reference to a tiddler\n\tif(tr.title && !tr.field) {\n\t\tthis.deleteTiddler(tr.title);\n\t// Else check for a field reference\n\t} else if(tr.field) {\n\t\ttitle = tr.title || currTiddlerTitle;\n\t\ttiddler = this.getTiddler(title);\n\t\tif(tiddler && $tw.utils.hop(tiddler.fields,tr.field)) {\n\t\t\tfields = Object.create(null);\n\t\t\tfields[tr.field] = undefined;\n\t\t\tthis.addTiddler(new $tw.Tiddler(tiddler,fields,this.getModificationFields()));\n\t\t}\n\t}\n};\n\nexports.addEventListener = function(type,listener) {\n\tthis.eventListeners = this.eventListeners || {};\n\tthis.eventListeners[type] = this.eventListeners[type]  || [];\n\tthis.eventListeners[type].push(listener);\t\n};\n\nexports.removeEventListener = function(type,listener) {\n\tvar listeners = this.eventListeners[type];\n\tif(listeners) {\n\t\tvar p = listeners.indexOf(listener);\n\t\tif(p !== -1) {\n\t\t\tlisteners.splice(p,1);\n\t\t}\n\t}\n};\n\nexports.dispatchEvent = function(type /*, args */) {\n\tvar args = Array.prototype.slice.call(arguments,1),\n\t\tlisteners = this.eventListeners[type];\n\tif(listeners) {\n\t\tfor(var p=0; p<listeners.length; p++) {\n\t\t\tvar listener = listeners[p];\n\t\t\tlistener.apply(listener,args);\n\t\t}\n\t}\n};\n\n/*\nCauses a tiddler to be marked as changed, incrementing the change count, and triggers event handlers.\nThis method should be called after the changes it describes have been made to the wiki.tiddlers[] array.\n\ttitle: Title of tiddler\n\tisDeleted: defaults to false (meaning the tiddler has been created or modified),\n\t\ttrue if the tiddler has been deleted\n*/\nexports.enqueueTiddlerEvent = function(title,isDeleted) {\n\t// Record the touch in the list of changed tiddlers\n\tthis.changedTiddlers = this.changedTiddlers || Object.create(null);\n\tthis.changedTiddlers[title] = this.changedTiddlers[title] || Object.create(null);\n\tthis.changedTiddlers[title][isDeleted ? \"deleted\" : \"modified\"] = true;\n\t// Increment the change count\n\tthis.changeCount = this.changeCount || Object.create(null);\n\tif($tw.utils.hop(this.changeCount,title)) {\n\t\tthis.changeCount[title]++;\n\t} else {\n\t\tthis.changeCount[title] = 1;\n\t}\n\t// Trigger events\n\tthis.eventListeners = this.eventListeners || {};\n\tif(!this.eventsTriggered) {\n\t\tvar self = this;\n\t\t$tw.utils.nextTick(function() {\n\t\t\tvar changes = self.changedTiddlers;\n\t\t\tself.changedTiddlers = Object.create(null);\n\t\t\tself.eventsTriggered = false;\n\t\t\tif($tw.utils.count(changes) > 0) {\n\t\t\t\tself.dispatchEvent(\"change\",changes);\n\t\t\t}\n\t\t});\n\t\tthis.eventsTriggered = true;\n\t}\n};\n\nexports.getSizeOfTiddlerEventQueue = function() {\n\treturn $tw.utils.count(this.changedTiddlers);\n};\n\nexports.clearTiddlerEventQueue = function() {\n\tthis.changedTiddlers = Object.create(null);\n\tthis.changeCount = Object.create(null);\n};\n\nexports.getChangeCount = function(title) {\n\tthis.changeCount = this.changeCount || Object.create(null);\n\tif($tw.utils.hop(this.changeCount,title)) {\n\t\treturn this.changeCount[title];\n\t} else {\n\t\treturn 0;\n\t}\n};\n\n/*\nGenerate an unused title from the specified base\n*/\nexports.generateNewTitle = function(baseTitle,options) {\n\toptions = options || {};\n\tvar c = 0,\n\t\ttitle = baseTitle;\n\twhile(this.tiddlerExists(title) || this.isShadowTiddler(title) || this.findDraft(title)) {\n\t\ttitle = baseTitle + \n\t\t\t(options.prefix || \" \") + \n\t\t\t(++c);\n\t}\n\treturn title;\n};\n\nexports.isSystemTiddler = function(title) {\n\treturn title && title.indexOf(\"$:/\") === 0;\n};\n\nexports.isTemporaryTiddler = function(title) {\n\treturn title && title.indexOf(\"$:/temp/\") === 0;\n};\n\nexports.isImageTiddler = function(title) {\n\tvar tiddler = this.getTiddler(title);\n\tif(tiddler) {\t\t\n\t\tvar contentTypeInfo = $tw.config.contentTypeInfo[tiddler.fields.type || \"text/vnd.tiddlywiki\"];\n\t\treturn !!contentTypeInfo && contentTypeInfo.flags.indexOf(\"image\") !== -1;\n\t} else {\n\t\treturn null;\n\t}\n};\n\nexports.isBinaryTiddler = function(title) {\n\tvar tiddler = this.getTiddler(title);\n\tif(tiddler) {\t\t\n\t\tvar contentTypeInfo = $tw.config.contentTypeInfo[tiddler.fields.type || \"text/vnd.tiddlywiki\"];\n\t\treturn !!contentTypeInfo && contentTypeInfo.encoding === \"base64\";\n\t} else {\n\t\treturn null;\n\t}\n};\n\n/*\nLike addTiddler() except it will silently reject any plugin tiddlers that are older than the currently loaded version. Returns true if the tiddler was imported\n*/\nexports.importTiddler = function(tiddler) {\n\tvar existingTiddler = this.getTiddler(tiddler.fields.title);\n\t// Check if we're dealing with a plugin\n\tif(tiddler && tiddler.hasField(\"plugin-type\") && tiddler.hasField(\"version\") && existingTiddler && existingTiddler.hasField(\"plugin-type\") && existingTiddler.hasField(\"version\")) {\n\t\t// Reject the incoming plugin if it is older\n\t\tif(!$tw.utils.checkVersions(tiddler.fields.version,existingTiddler.fields.version)) {\n\t\t\treturn false;\n\t\t}\n\t}\n\t// Fall through to adding the tiddler\n\tthis.addTiddler(tiddler);\n\treturn true;\n};\n\n/*\nReturn a hashmap of the fields that should be set when a tiddler is created\n*/\nexports.getCreationFields = function() {\n\tif(this.getTiddlerText(TIMESTAMP_DISABLE_TITLE,\"\").toLowerCase() !== \"yes\") {\n\t\tvar fields = {\n\t\t\t\tcreated: new Date()\n\t\t\t},\n\t\t\tcreator = this.getTiddlerText(USER_NAME_TITLE);\n\t\tif(creator) {\n\t\t\tfields.creator = creator;\n\t\t}\n\t\treturn fields;\n\t} else {\n\t\treturn {};\n\t}\n};\n\n/*\nReturn a hashmap of the fields that should be set when a tiddler is modified\n*/\nexports.getModificationFields = function() {\n\tif(this.getTiddlerText(TIMESTAMP_DISABLE_TITLE,\"\").toLowerCase() !== \"yes\") {\n\t\tvar fields = Object.create(null),\n\t\t\tmodifier = this.getTiddlerText(USER_NAME_TITLE);\n\t\tfields.modified = new Date();\n\t\tif(modifier) {\n\t\t\tfields.modifier = modifier;\n\t\t}\n\t\treturn fields;\n\t} else {\n\t\treturn {};\n\t}\n};\n\n/*\nReturn a sorted array of tiddler titles.  Options include:\nsortField: field to sort by\nexcludeTag: tag to exclude\nincludeSystem: whether to include system tiddlers (defaults to false)\n*/\nexports.getTiddlers = function(options) {\n\toptions = options || Object.create(null);\n\tvar self = this,\n\t\tsortField = options.sortField || \"title\",\n\t\ttiddlers = [], t, titles = [];\n\tthis.each(function(tiddler,title) {\n\t\tif(options.includeSystem || !self.isSystemTiddler(title)) {\n\t\t\tif(!options.excludeTag || !tiddler.hasTag(options.excludeTag)) {\n\t\t\t\ttiddlers.push(tiddler);\n\t\t\t}\n\t\t}\n\t});\n\ttiddlers.sort(function(a,b) {\n\t\tvar aa = a.fields[sortField].toLowerCase() || \"\",\n\t\t\tbb = b.fields[sortField].toLowerCase() || \"\";\n\t\tif(aa < bb) {\n\t\t\treturn -1;\n\t\t} else {\n\t\t\tif(aa > bb) {\n\t\t\t\treturn 1;\n\t\t\t} else {\n\t\t\t\treturn 0;\n\t\t\t}\n\t\t}\n\t});\n\tfor(t=0; t<tiddlers.length; t++) {\n\t\ttitles.push(tiddlers[t].fields.title);\n\t}\n\treturn titles;\n};\n\nexports.countTiddlers = function(excludeTag) {\n\tvar tiddlers = this.getTiddlers({excludeTag: excludeTag});\n\treturn $tw.utils.count(tiddlers);\n};\n\n/*\nReturns a function iterator(callback) that iterates through the specified titles, and invokes the callback with callback(tiddler,title)\n*/\nexports.makeTiddlerIterator = function(titles) {\n\tvar self = this;\n\tif(!$tw.utils.isArray(titles)) {\n\t\ttitles = Object.keys(titles);\n\t} else {\n\t\ttitles = titles.slice(0);\n\t}\n\treturn function(callback) {\n\t\ttitles.forEach(function(title) {\n\t\t\tcallback(self.getTiddler(title),title);\n\t\t});\n\t};\n};\n\n/*\nSort an array of tiddler titles by a specified field\n\ttitles: array of titles (sorted in place)\n\tsortField: name of field to sort by\n\tisDescending: true if the sort should be descending\n\tisCaseSensitive: true if the sort should consider upper and lower case letters to be different\n*/\nexports.sortTiddlers = function(titles,sortField,isDescending,isCaseSensitive,isNumeric,isAlphaNumeric) {\n\tvar self = this;\n\ttitles.sort(function(a,b) {\n\t\tvar x,y,\n\t\t\tcompareNumbers = function(x,y) {\n\t\t\t\tvar result = \n\t\t\t\t\tisNaN(x) && !isNaN(y) ? (isDescending ? -1 : 1) :\n\t\t\t\t\t!isNaN(x) && isNaN(y) ? (isDescending ? 1 : -1) :\n\t\t\t\t\t\t\t\t\t\t\t(isDescending ? y - x :  x - y);\n\t\t\t\treturn result;\n\t\t\t};\n\t\tif(sortField !== \"title\") {\n\t\t\tvar tiddlerA = self.getTiddler(a),\n\t\t\t\ttiddlerB = self.getTiddler(b);\n\t\t\tif(tiddlerA) {\n\t\t\t\ta = tiddlerA.fields[sortField] || \"\";\n\t\t\t} else {\n\t\t\t\ta = \"\";\n\t\t\t}\n\t\t\tif(tiddlerB) {\n\t\t\t\tb = tiddlerB.fields[sortField] || \"\";\n\t\t\t} else {\n\t\t\t\tb = \"\";\n\t\t\t}\n\t\t}\n\t\tx = Number(a);\n\t\ty = Number(b);\n\t\tif(isNumeric && (!isNaN(x) || !isNaN(y))) {\n\t\t\treturn compareNumbers(x,y);\n\t\t} else if($tw.utils.isDate(a) && $tw.utils.isDate(b)) {\n\t\t\treturn isDescending ? b - a : a - b;\n\t\t} else if(isAlphaNumeric) {\n\t\t\treturn isDescending ? b.localeCompare(a,undefined,{numeric: true,sensitivity: \"base\"}) : a.localeCompare(b,undefined,{numeric: true,sensitivity: \"base\"});\n\t\t} else {\n\t\t\ta = String(a);\n\t\t\tb = String(b);\n\t\t\tif(!isCaseSensitive) {\n\t\t\t\ta = a.toLowerCase();\n\t\t\t\tb = b.toLowerCase();\n\t\t\t}\n\t\t\treturn isDescending ? b.localeCompare(a) : a.localeCompare(b);\n\t\t}\n\t});\n};\n\n/*\nFor every tiddler invoke a callback(title,tiddler) with `this` set to the wiki object. Options include:\nsortField: field to sort by\nexcludeTag: tag to exclude\nincludeSystem: whether to include system tiddlers (defaults to false)\n*/\nexports.forEachTiddler = function(/* [options,]callback */) {\n\tvar arg = 0,\n\t\toptions = arguments.length >= 2 ? arguments[arg++] : {},\n\t\tcallback = arguments[arg++],\n\t\ttitles = this.getTiddlers(options),\n\t\tt, tiddler;\n\tfor(t=0; t<titles.length; t++) {\n\t\ttiddler = this.getTiddler(titles[t]);\n\t\tif(tiddler) {\n\t\t\tcallback.call(this,tiddler.fields.title,tiddler);\n\t\t}\n\t}\n};\n\n/*\nReturn an array of tiddler titles that are directly linked within the given parse tree\n */\nexports.extractLinks = function(parseTreeRoot) {\n\t// Count up the links\n\tvar links = [],\n\t\tcheckParseTree = function(parseTree) {\n\t\t\tfor(var t=0; t<parseTree.length; t++) {\n\t\t\t\tvar parseTreeNode = parseTree[t];\n\t\t\t\tif(parseTreeNode.type === \"link\" && parseTreeNode.attributes.to && parseTreeNode.attributes.to.type === \"string\") {\n\t\t\t\t\tvar value = parseTreeNode.attributes.to.value;\n\t\t\t\t\tif(links.indexOf(value) === -1) {\n\t\t\t\t\t\tlinks.push(value);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif(parseTreeNode.children) {\n\t\t\t\t\tcheckParseTree(parseTreeNode.children);\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\tcheckParseTree(parseTreeRoot);\n\treturn links;\n};\n\n/*\nReturn an array of tiddler titles that are directly linked from the specified tiddler\n*/\nexports.getTiddlerLinks = function(title) {\n\tvar self = this;\n\t// We'll cache the links so they only get computed if the tiddler changes\n\treturn this.getCacheForTiddler(title,\"links\",function() {\n\t\t// Parse the tiddler\n\t\tvar parser = self.parseTiddler(title);\n\t\tif(parser) {\n\t\t\treturn self.extractLinks(parser.tree);\n\t\t}\n\t\treturn [];\n\t});\n};\n\n/*\nReturn an array of tiddler titles that link to the specified tiddler\n*/\nexports.getTiddlerBacklinks = function(targetTitle) {\n\tvar self = this,\n\t\tbacklinksIndexer = this.getIndexer(\"BacklinksIndexer\"),\n\t\tbacklinks = backlinksIndexer && backlinksIndexer.lookup(targetTitle);\n\n\tif(!backlinks) {\n\t\tbacklinks = [];\n\t\tthis.forEachTiddler(function(title,tiddler) {\n\t\t\tvar links = self.getTiddlerLinks(title);\n\t\t\tif(links.indexOf(targetTitle) !== -1) {\n\t\t\t\tbacklinks.push(title);\n\t\t\t}\n\t\t});\n\t}\n\treturn backlinks;\n};\n\n/*\nReturn a hashmap of tiddler titles that are referenced but not defined. Each value is the number of times the missing tiddler is referenced\n*/\nexports.getMissingTitles = function() {\n\tvar self = this,\n\t\tmissing = [];\n// We should cache the missing tiddler list, even if we recreate it every time any tiddler is modified\n\tthis.forEachTiddler(function(title,tiddler) {\n\t\tvar links = self.getTiddlerLinks(title);\n\t\t$tw.utils.each(links,function(link) {\n\t\t\tif((!self.tiddlerExists(link) && !self.isShadowTiddler(link)) && missing.indexOf(link) === -1) {\n\t\t\t\tmissing.push(link);\n\t\t\t}\n\t\t});\n\t});\n\treturn missing;\n};\n\nexports.getOrphanTitles = function() {\n\tvar self = this,\n\t\torphans = this.getTiddlers();\n\tthis.forEachTiddler(function(title,tiddler) {\n\t\tvar links = self.getTiddlerLinks(title);\n\t\t$tw.utils.each(links,function(link) {\n\t\t\tvar p = orphans.indexOf(link);\n\t\t\tif(p !== -1) {\n\t\t\t\torphans.splice(p,1);\n\t\t\t}\n\t\t});\n\t});\n\treturn orphans; // Todo\n};\n\n/*\nRetrieves a list of the tiddler titles that are tagged with a given tag\n*/\nexports.getTiddlersWithTag = function(tag) {\n\t// Try to use the indexer\n\tvar self = this,\n\t\ttagIndexer = this.getIndexer(\"TagIndexer\"),\n\t\tresults = tagIndexer && tagIndexer.subIndexers[3].lookup(tag);\n\tif(!results) {\n\t\t// If not available, perform a manual scan\n\t\tresults = this.getGlobalCache(\"taglist-\" + tag,function() {\n\t\t\tvar tagmap = self.getTagMap();\n\t\t\treturn self.sortByList(tagmap[tag],tag);\n\t\t});\n\t}\n\treturn results;\n};\n\n/*\nGet a hashmap by tag of arrays of tiddler titles\n*/\nexports.getTagMap = function() {\n\tvar self = this;\n\treturn this.getGlobalCache(\"tagmap\",function() {\n\t\tvar tags = Object.create(null),\n\t\t\tstoreTags = function(tagArray,title) {\n\t\t\t\tif(tagArray) {\n\t\t\t\t\tfor(var index=0; index<tagArray.length; index++) {\n\t\t\t\t\t\tvar tag = tagArray[index];\n\t\t\t\t\t\tif($tw.utils.hop(tags,tag)) {\n\t\t\t\t\t\t\ttags[tag].push(title);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ttags[tag] = [title];\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\t\t\ttitle, tiddler;\n\t\t// Collect up all the tags\n\t\tself.eachShadow(function(tiddler,title) {\n\t\t\tif(!self.tiddlerExists(title)) {\n\t\t\t\ttiddler = self.getTiddler(title);\n\t\t\t\tstoreTags(tiddler.fields.tags,title);\n\t\t\t}\n\t\t});\n\t\tself.each(function(tiddler,title) {\n\t\t\tstoreTags(tiddler.fields.tags,title);\n\t\t});\n\t\treturn tags;\n\t});\n};\n\n/*\nLookup a given tiddler and return a list of all the tiddlers that include it in the specified list field\n*/\nexports.findListingsOfTiddler = function(targetTitle,fieldName) {\n\tfieldName = fieldName || \"list\";\n\tvar titles = [];\n\tthis.each(function(tiddler,title) {\n\t\tvar list = $tw.utils.parseStringArray(tiddler.fields[fieldName]);\n\t\tif(list && list.indexOf(targetTitle) !== -1) {\n\t\t\ttitles.push(title);\n\t\t}\n\t});\n\treturn titles;\n};\n\n/*\nSorts an array of tiddler titles according to an ordered list\n*/\nexports.sortByList = function(array,listTitle) {\n\tvar self = this,\n\t\treplacedTitles = Object.create(null);\n\t// Given a title, this function will place it in the correct location\n\t// within titles.\n\tfunction moveItemInList(title) {\n\t\tif(!$tw.utils.hop(replacedTitles, title)) {\n\t\t\treplacedTitles[title] = true;\n\t\t\tvar newPos = -1,\n\t\t\t\ttiddler = self.getTiddler(title);\n\t\t\tif(tiddler) {\n\t\t\t\tvar beforeTitle = tiddler.fields[\"list-before\"],\n\t\t\t\t\tafterTitle = tiddler.fields[\"list-after\"];\n\t\t\t\tif(beforeTitle === \"\") {\n\t\t\t\t\tnewPos = 0;\n\t\t\t\t} else if(afterTitle === \"\") {\n\t\t\t\t\tnewPos = titles.length;\n\t\t\t\t} else if(beforeTitle) {\n\t\t\t\t\t// if this title is placed relative\n\t\t\t\t\t// to another title, make sure that\n\t\t\t\t\t// title is placed before we place\n\t\t\t\t\t// this one.\n\t\t\t\t\tmoveItemInList(beforeTitle);\n\t\t\t\t\tnewPos = titles.indexOf(beforeTitle);\n\t\t\t\t} else if(afterTitle) {\n\t\t\t\t\t// Same deal\n\t\t\t\t\tmoveItemInList(afterTitle);\n\t\t\t\t\tnewPos = titles.indexOf(afterTitle);\n\t\t\t\t\tif(newPos >= 0) {\n\t\t\t\t\t\t++newPos;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\t// If a new position is specified, let's move it\n\t\t\t\tif (newPos !== -1) {\n\t\t\t\t\t// get its current Pos, and make sure\n\t\t\t\t\t// sure that it's _actually_ in the list\n\t\t\t\t\t// and that it would _actually_ move\n\t\t\t\t\t// (#4275) We don't bother calling\n\t\t\t\t\t//         indexOf unless we have a new\n\t\t\t\t\t//         position to work with\n\t\t\t\t\tvar currPos = titles.indexOf(title);\n\t\t\t\t\tif(currPos >= 0 && newPos !== currPos) {\n\t\t\t\t\t\t// move it!\n\t\t\t\t\t\ttitles.splice(currPos,1);\n\t\t\t\t\t\tif(newPos >= currPos) {\n\t\t\t\t\t\t\tnewPos--;\n\t\t\t\t\t\t}\n\t\t\t\t\t\ttitles.splice(newPos,0,title);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\tvar list = this.getTiddlerList(listTitle);\n\tif(!array || array.length === 0) {\n\t\treturn [];\n\t} else {\n\t\tvar titles = [], t, title;\n\t\t// First place any entries that are present in the list\n\t\tfor(t=0; t<list.length; t++) {\n\t\t\ttitle = list[t];\n\t\t\tif(array.indexOf(title) !== -1) {\n\t\t\t\ttitles.push(title);\n\t\t\t}\n\t\t}\n\t\t// Then place any remaining entries\n\t\tfor(t=0; t<array.length; t++) {\n\t\t\ttitle = array[t];\n\t\t\tif(list.indexOf(title) === -1) {\n\t\t\t\ttitles.push(title);\n\t\t\t}\n\t\t}\n\t\t// Finally obey the list-before and list-after fields of each tiddler in turn\n\t\tvar sortedTitles = titles.slice(0);\n\t\tfor(t=0; t<sortedTitles.length; t++) {\n\t\t\ttitle = sortedTitles[t];\n\t\t\tmoveItemInList(title);\n\t\t}\n\t\treturn titles;\n\t}\n};\n\nexports.getSubTiddler = function(title,subTiddlerTitle) {\n\tvar bundleInfo = this.getPluginInfo(title) || this.getTiddlerDataCached(title);\n\tif(bundleInfo && bundleInfo.tiddlers) {\n\t\tvar subTiddler = bundleInfo.tiddlers[subTiddlerTitle];\n\t\tif(subTiddler) {\n\t\t\treturn new $tw.Tiddler(subTiddler);\n\t\t}\n\t}\n\treturn null;\n};\n\n/*\nRetrieve a tiddler as a JSON string of the fields\n*/\nexports.getTiddlerAsJson = function(title) {\n\tvar tiddler = this.getTiddler(title);\n\tif(tiddler) {\n\t\tvar fields = Object.create(null);\n\t\t$tw.utils.each(tiddler.fields,function(value,name) {\n\t\t\tfields[name] = tiddler.getFieldString(name);\n\t\t});\n\t\treturn JSON.stringify(fields);\n\t} else {\n\t\treturn JSON.stringify({title: title});\n\t}\n};\n\nexports.getTiddlersAsJson = function(filter,spaces) {\n\tvar tiddlers = this.filterTiddlers(filter),\n\t\tspaces = (spaces === undefined) ? $tw.config.preferences.jsonSpaces : spaces,\n\t\tdata = [];\n\tfor(var t=0;t<tiddlers.length; t++) {\n\t\tvar tiddler = this.getTiddler(tiddlers[t]);\n\t\tif(tiddler) {\n\t\t\tvar fields = new Object();\n\t\t\tfor(var field in tiddler.fields) {\n\t\t\t\tfields[field] = tiddler.getFieldString(field);\n\t\t\t}\n\t\t\tdata.push(fields);\n\t\t}\n\t}\n\treturn JSON.stringify(data,null,spaces);\n};\n\n/*\nGet the content of a tiddler as a JavaScript object. How this is done depends on the type of the tiddler:\n\napplication/json: the tiddler JSON is parsed into an object\napplication/x-tiddler-dictionary: the tiddler is parsed as sequence of name:value pairs\n\nOther types currently just return null.\n\ntitleOrTiddler: string tiddler title or a tiddler object\ndefaultData: default data to be returned if the tiddler is missing or doesn't contain data\n\nNote that the same value is returned for repeated calls for the same tiddler data. The value is frozen to prevent modification; otherwise modifications would be visible to all callers\n*/\nexports.getTiddlerDataCached = function(titleOrTiddler,defaultData) {\n\tvar self = this,\n\t\ttiddler = titleOrTiddler;\n\tif(!(tiddler instanceof $tw.Tiddler)) {\n\t\ttiddler = this.getTiddler(tiddler);\t\n\t}\n\tif(tiddler) {\n\t\treturn this.getCacheForTiddler(tiddler.fields.title,\"data\",function() {\n\t\t\t// Return the frozen value\n\t\t\tvar value = self.getTiddlerData(tiddler.fields.title,undefined);\n\t\t\t$tw.utils.deepFreeze(value);\n\t\t\treturn value;\n\t\t}) || defaultData;\n\t} else {\n\t\treturn defaultData;\n\t}\n};\n\n/*\nAlternative, uncached version of getTiddlerDataCached(). The return value can be mutated freely and reused\n*/\nexports.getTiddlerData = function(titleOrTiddler,defaultData) {\n\tvar tiddler = titleOrTiddler,\n\t\tdata;\n\tif(!(tiddler instanceof $tw.Tiddler)) {\n\t\ttiddler = this.getTiddler(tiddler);\t\n\t}\n\tif(tiddler && tiddler.fields.text) {\n\t\tswitch(tiddler.fields.type) {\n\t\t\tcase \"application/json\":\n\t\t\t\t// JSON tiddler\n\t\t\t\ttry {\n\t\t\t\t\tdata = JSON.parse(tiddler.fields.text);\n\t\t\t\t} catch(ex) {\n\t\t\t\t\treturn defaultData;\n\t\t\t\t}\n\t\t\t\treturn data;\n\t\t\tcase \"application/x-tiddler-dictionary\":\n\t\t\t\treturn $tw.utils.parseFields(tiddler.fields.text);\n\t\t}\n\t}\n\treturn defaultData;\n};\n\n/*\nExtract an indexed field from within a data tiddler\n*/\nexports.extractTiddlerDataItem = function(titleOrTiddler,index,defaultText) {\n\tvar data = this.getTiddlerDataCached(titleOrTiddler,Object.create(null)),\n\t\ttext;\n\tif(data && $tw.utils.hop(data,index)) {\n\t\ttext = data[index];\n\t}\n\tif(typeof text === \"string\" || typeof text === \"number\") {\n\t\treturn text.toString();\n\t} else {\n\t\treturn defaultText;\n\t}\n};\n\n/*\nSet a tiddlers content to a JavaScript object. Currently this is done by setting the tiddler's type to \"application/json\" and setting the text to the JSON text of the data.\ntitle: title of tiddler\ndata: object that can be serialised to JSON\nfields: optional hashmap of additional tiddler fields to be set\n*/\nexports.setTiddlerData = function(title,data,fields) {\n\tvar existingTiddler = this.getTiddler(title),\n\t\tnewFields = {\n\t\t\ttitle: title\n\t};\n\tif(existingTiddler && existingTiddler.fields.type === \"application/x-tiddler-dictionary\") {\n\t\tnewFields.text = $tw.utils.makeTiddlerDictionary(data);\n\t} else {\n\t\tnewFields.type = \"application/json\";\n\t\tnewFields.text = JSON.stringify(data,null,$tw.config.preferences.jsonSpaces);\n\t}\n\tthis.addTiddler(new $tw.Tiddler(this.getCreationFields(),existingTiddler,fields,newFields,this.getModificationFields()));\n};\n\n/*\nReturn the content of a tiddler as an array containing each line\n*/\nexports.getTiddlerList = function(title,field,index) {\n\tif(index) {\n\t\treturn $tw.utils.parseStringArray(this.extractTiddlerDataItem(title,index,\"\"));\n\t}\n\tfield = field || \"list\";\n\tvar tiddler = this.getTiddler(title);\n\tif(tiddler) {\n\t\treturn ($tw.utils.parseStringArray(tiddler.fields[field]) || []).slice(0);\n\t}\n\treturn [];\n};\n\n// Return a named global cache object. Global cache objects are cleared whenever a tiddler change occurs\nexports.getGlobalCache = function(cacheName,initializer) {\n\tthis.globalCache = this.globalCache || Object.create(null);\n\tif($tw.utils.hop(this.globalCache,cacheName)) {\n\t\treturn this.globalCache[cacheName];\n\t} else {\n\t\tthis.globalCache[cacheName] = initializer();\n\t\treturn this.globalCache[cacheName];\n\t}\n};\n\nexports.clearGlobalCache = function() {\n\tthis.globalCache = Object.create(null);\n};\n\n// Return the named cache object for a tiddler. If the cache doesn't exist then the initializer function is invoked to create it\nexports.getCacheForTiddler = function(title,cacheName,initializer) {\n\tthis.caches = this.caches || Object.create(null);\n\tvar caches = this.caches[title];\n\tif(caches && caches[cacheName]) {\n\t\treturn caches[cacheName];\n\t} else {\n\t\tif(!caches) {\n\t\t\tcaches = Object.create(null);\n\t\t\tthis.caches[title] = caches;\n\t\t}\n\t\tcaches[cacheName] = initializer();\n\t\treturn caches[cacheName];\n\t}\n};\n\n// Clear all caches associated with a particular tiddler, or, if the title is null, clear all the caches for all the tiddlers\nexports.clearCache = function(title) {\n\tif(title) {\n\t\tthis.caches = this.caches || Object.create(null);\n\t\tif($tw.utils.hop(this.caches,title)) {\n\t\t\tdelete this.caches[title];\n\t\t}\n\t} else {\n\t\tthis.caches = Object.create(null);\n\t}\n};\n\nexports.initParsers = function(moduleType) {\n\t// Install the parser modules\n\t$tw.Wiki.parsers = {};\n\tvar self = this;\n\t$tw.modules.forEachModuleOfType(\"parser\",function(title,module) {\n\t\tfor(var f in module) {\n\t\t\tif($tw.utils.hop(module,f)) {\n\t\t\t\t$tw.Wiki.parsers[f] = module[f]; // Store the parser class\n\t\t\t}\n\t\t}\n\t});\n\t// Use the generic binary parser for any binary types not registered so far\n\tif($tw.Wiki.parsers[\"application/octet-stream\"]) {\n\t\tObject.keys($tw.config.contentTypeInfo).forEach(function(type) {\n\t\t\tif(!$tw.utils.hop($tw.Wiki.parsers,type) && $tw.config.contentTypeInfo[type].encoding === \"base64\") {\n\t\t\t\t$tw.Wiki.parsers[type] = $tw.Wiki.parsers[\"application/octet-stream\"];\n\t\t\t}\n\t\t});\t\t\n\t}\n};\n\n/*\nParse a block of text of a specified MIME type\n\ttype: content type of text to be parsed\n\ttext: text\n\toptions: see below\nOptions include:\n\tparseAsInline: if true, the text of the tiddler will be parsed as an inline run\n\t_canonical_uri: optional string of the canonical URI of this content\n*/\nexports.parseText = function(type,text,options) {\n\ttext = text || \"\";\n\toptions = options || {};\n\t// Select a parser\n\tvar Parser = $tw.Wiki.parsers[type];\n\tif(!Parser && $tw.utils.getFileExtensionInfo(type)) {\n\t\tParser = $tw.Wiki.parsers[$tw.utils.getFileExtensionInfo(type).type];\n\t}\n\tif(!Parser) {\n\t\tParser = $tw.Wiki.parsers[options.defaultType || \"text/vnd.tiddlywiki\"];\n\t}\n\tif(!Parser) {\n\t\treturn null;\n\t}\n\t// Return the parser instance\n\treturn new Parser(type,text,{\n\t\tparseAsInline: options.parseAsInline,\n\t\twiki: this,\n\t\t_canonical_uri: options._canonical_uri\n\t});\n};\n\n/*\nParse a tiddler according to its MIME type\n*/\nexports.parseTiddler = function(title,options) {\n\toptions = $tw.utils.extend({},options);\n\tvar cacheType = options.parseAsInline ? \"inlineParseTree\" : \"blockParseTree\",\n\t\ttiddler = this.getTiddler(title),\n\t\tself = this;\n\treturn tiddler ? this.getCacheForTiddler(title,cacheType,function() {\n\t\t\tif(tiddler.hasField(\"_canonical_uri\")) {\n\t\t\t\toptions._canonical_uri = tiddler.fields._canonical_uri;\n\t\t\t}\n\t\t\treturn self.parseText(tiddler.fields.type,tiddler.fields.text,options);\n\t\t}) : null;\n};\n\nexports.parseTextReference = function(title,field,index,options) {\n\tvar tiddler,text;\n\tif(options.subTiddler) {\n\t\ttiddler = this.getSubTiddler(title,options.subTiddler);\n\t} else {\n\t\ttiddler = this.getTiddler(title);\n\t\tif(field === \"text\" || (!field && !index)) {\n\t\t\tthis.getTiddlerText(title); // Force the tiddler to be lazily loaded\n\t\t\treturn this.parseTiddler(title,options);\n\t\t}\n\t}\n\tif(field === \"text\" || (!field && !index)) {\n\t\tif(tiddler && tiddler.fields) {\n\t\t\treturn this.parseText(tiddler.fields.type,tiddler.fields.text,options);\t\t\t\n\t\t} else {\n\t\t\treturn null;\n\t\t}\n\t} else if(field) {\n\t\tif(field === \"title\") {\n\t\t\ttext = title;\n\t\t} else {\n\t\t\tif(!tiddler || !tiddler.hasField(field)) {\n\t\t\t\treturn null;\n\t\t\t}\n\t\t\ttext = tiddler.fields[field];\n\t\t}\n\t\treturn this.parseText(\"text/vnd.tiddlywiki\",text.toString(),options);\n\t} else if(index) {\n\t\tthis.getTiddlerText(title); // Force the tiddler to be lazily loaded\n\t\ttext = this.extractTiddlerDataItem(tiddler,index,undefined);\n\t\tif(text === undefined) {\n\t\t\treturn null;\n\t\t}\n\t\treturn this.parseText(\"text/vnd.tiddlywiki\",text,options);\n\t}\n};\n\n/*\nMake a widget tree for a parse tree\nparser: parser object\noptions: see below\nOptions include:\ndocument: optional document to use\nvariables: hashmap of variables to set\nparentWidget: optional parent widget for the root node\n*/\nexports.makeWidget = function(parser,options) {\n\toptions = options || {};\n\tvar widgetNode = {\n\t\t\ttype: \"widget\",\n\t\t\tchildren: []\n\t\t},\n\t\tcurrWidgetNode = widgetNode;\n\t// Create set variable widgets for each variable\n\t$tw.utils.each(options.variables,function(value,name) {\n\t\tvar setVariableWidget = {\n\t\t\ttype: \"set\",\n\t\t\tattributes: {\n\t\t\t\tname: {type: \"string\", value: name},\n\t\t\t\tvalue: {type: \"string\", value: value}\n\t\t\t},\n\t\t\tchildren: []\n\t\t};\n\t\tcurrWidgetNode.children = [setVariableWidget];\n\t\tcurrWidgetNode = setVariableWidget;\n\t});\n\t// Add in the supplied parse tree nodes\n\tcurrWidgetNode.children = parser ? parser.tree : [];\n\t// Create the widget\n\treturn new widget.widget(widgetNode,{\n\t\twiki: this,\n\t\tdocument: options.document || $tw.fakeDocument,\n\t\tparentWidget: options.parentWidget\n\t});\n};\n\n/*\nMake a widget tree for transclusion\ntitle: target tiddler title\noptions: as for wiki.makeWidget() plus:\noptions.field: optional field to transclude (defaults to \"text\")\noptions.mode: transclusion mode \"inline\" or \"block\"\noptions.recursionMarker : optional flag to set a recursion marker, defaults to \"yes\"\noptions.children: optional array of children for the transclude widget\noptions.importVariables: optional importvariables filter string for macros to be included\noptions.importPageMacros: optional boolean; if true, equivalent to passing \"[[$:/core/ui/PageMacros]] [all[shadows+tiddlers]tag[$:/tags/Macro]!has[draft.of]]\" to options.importVariables\n*/\nexports.makeTranscludeWidget = function(title,options) {\n\toptions = options || {};\n\tvar parseTreeDiv = {tree: [{\n\t\t\ttype: \"element\",\n\t\t\ttag: \"div\",\n\t\t\tchildren: []}]},\n\t\tparseTreeImportVariables = {\n\t\t\ttype: \"importvariables\",\n\t\t\tattributes: {\n\t\t\t\tfilter: {\n\t\t\t\t\tname: \"filter\",\n\t\t\t\t\ttype: \"string\"\n\t\t\t\t}\n\t\t\t},\n\t\t\tisBlock: false,\n\t\t\tchildren: []},\n\t\tparseTreeTransclude = {\n\t\t\ttype: \"transclude\",\n\t\t\tattributes: {\n\t\t\t\trecursionMarker: {\n\t\t\t\t\tname: \"recursionMarker\",\n\t\t\t\t\ttype: \"string\",\n\t\t\t\t\tvalue: options.recursionMarker || \"yes\"\n\t\t\t\t\t},\n\t\t\t\ttiddler: {\n\t\t\t\t\tname: \"tiddler\",\n\t\t\t\t\ttype: \"string\",\n\t\t\t\t\tvalue: title\n\t\t\t\t}\n\t\t\t},\n\t\t\tisBlock: !options.parseAsInline};\n\tif(options.importVariables || options.importPageMacros) {\n\t\tif(options.importVariables) {\n\t\t\tparseTreeImportVariables.attributes.filter.value = options.importVariables;\n\t\t} else if(options.importPageMacros) {\n\t\t\tparseTreeImportVariables.attributes.filter.value = \"[[$:/core/ui/PageMacros]] [all[shadows+tiddlers]tag[$:/tags/Macro]!has[draft.of]]\";\n\t\t}\n\t\tparseTreeDiv.tree[0].children.push(parseTreeImportVariables);\n\t\tparseTreeImportVariables.children.push(parseTreeTransclude);\n\t} else {\n\t\tparseTreeDiv.tree[0].children.push(parseTreeTransclude);\n\t}\n\tif(options.field) {\n\t\tparseTreeTransclude.attributes.field = {type: \"string\", value: options.field};\n\t}\n\tif(options.mode) {\n\t\tparseTreeTransclude.attributes.mode = {type: \"string\", value: options.mode};\n\t}\n\tif(options.children) {\n\t\tparseTreeTransclude.children = options.children;\n\t}\n\treturn this.makeWidget(parseTreeDiv,options);\n};\n\n/*\nParse text in a specified format and render it into another format\n\toutputType: content type for the output\n\ttextType: content type of the input text\n\ttext: input text\n\toptions: see below\nOptions include:\nvariables: hashmap of variables to set\nparentWidget: optional parent widget for the root node\n*/\nexports.renderText = function(outputType,textType,text,options) {\n\toptions = options || {};\n\tvar parser = this.parseText(textType,text,options),\n\t\twidgetNode = this.makeWidget(parser,options);\n\tvar container = $tw.fakeDocument.createElement(\"div\");\n\twidgetNode.render(container,null);\n\treturn outputType === \"text/html\" ? container.innerHTML : container.textContent;\n};\n\n/*\nParse text from a tiddler and render it into another format\n\toutputType: content type for the output\n\ttitle: title of the tiddler to be rendered\n\toptions: see below\nOptions include:\nvariables: hashmap of variables to set\nparentWidget: optional parent widget for the root node\n*/\nexports.renderTiddler = function(outputType,title,options) {\n\toptions = options || {};\n\tvar parser = this.parseTiddler(title,options),\n\t\twidgetNode = this.makeWidget(parser,options);\n\tvar container = $tw.fakeDocument.createElement(\"div\");\n\twidgetNode.render(container,null);\n\treturn outputType === \"text/html\" ? container.innerHTML : (outputType === \"text/plain-formatted\" ? container.formattedTextContent : container.textContent);\n};\n\n/*\nReturn an array of tiddler titles that match a search string\n\ttext: The text string to search for\n\toptions: see below\nOptions available:\n\tsource: an iterator function for the source tiddlers, called source(iterator), where iterator is called as iterator(tiddler,title)\n\texclude: An array of tiddler titles to exclude from the search\n\tinvert: If true returns tiddlers that do not contain the specified string\n\tcaseSensitive: If true forces a case sensitive search\n\tfield: If specified, restricts the search to the specified field, or an array of field names\n\tanchored: If true, forces all but regexp searches to be anchored to the start of text\n\texcludeField: If true, the field options are inverted to specify the fields that are not to be searched\n\tThe search mode is determined by the first of these boolean flags to be true\n\t\tliteral: searches for literal string\n\t\twhitespace: same as literal except runs of whitespace are treated as a single space\n\t\tregexp: treats the search term as a regular expression\n\t\twords: (default) treats search string as a list of tokens, and matches if all tokens are found, regardless of adjacency or ordering\n*/\nexports.search = function(text,options) {\n\toptions = options || {};\n\tvar self = this,\n\t\tt,\n\t\tinvert = !!options.invert;\n\t// Convert the search string into a regexp for each term\n\tvar terms, searchTermsRegExps,\n\t\tflags = options.caseSensitive ? \"\" : \"i\",\n\t\tanchor = options.anchored ? \"^\" : \"\";\n\tif(options.literal) {\n\t\tif(text.length === 0) {\n\t\t\tsearchTermsRegExps = null;\n\t\t} else {\n\t\t\tsearchTermsRegExps = [new RegExp(\"(\" + anchor + $tw.utils.escapeRegExp(text) + \")\",flags)];\n\t\t}\n\t} else if(options.whitespace) {\n\t\tterms = [];\n\t\t$tw.utils.each(text.split(/\\s+/g),function(term) {\n\t\t\tif(term) {\n\t\t\t\tterms.push($tw.utils.escapeRegExp(term));\n\t\t\t}\n\t\t});\n\t\tsearchTermsRegExps = [new RegExp(\"(\" + anchor + terms.join(\"\\\\s+\") + \")\",flags)];\n\t} else if(options.regexp) {\n\t\ttry {\n\t\t\tsearchTermsRegExps = [new RegExp(\"(\" + text + \")\",flags)];\t\t\t\n\t\t} catch(e) {\n\t\t\tsearchTermsRegExps = null;\n\t\t\tconsole.log(\"Regexp error parsing /(\" + text + \")/\" + flags + \": \",e);\n\t\t}\n\t} else {\n\t\tterms = text.split(/ +/);\n\t\tif(terms.length === 1 && terms[0] === \"\") {\n\t\t\tsearchTermsRegExps = null;\n\t\t} else {\n\t\t\tsearchTermsRegExps = [];\n\t\t\tfor(t=0; t<terms.length; t++) {\n\t\t\t\tsearchTermsRegExps.push(new RegExp(\"(\" + anchor + $tw.utils.escapeRegExp(terms[t]) + \")\",flags));\n\t\t\t}\n\t\t}\n\t}\n\t// Accumulate the array of fields to be searched or excluded from the search\n\tvar fields = [];\n\tif(options.field) {\n\t\tif($tw.utils.isArray(options.field)) {\n\t\t\t$tw.utils.each(options.field,function(fieldName) {\n\t\t\t\tif(fieldName) {\n\t\t\t\t\tfields.push(fieldName);\t\t\t\t\t\n\t\t\t\t}\n\t\t\t});\n\t\t} else {\n\t\t\tfields.push(options.field);\n\t\t}\n\t}\n\t// Use default fields if none specified and we're not excluding fields (excluding fields with an empty field array is the same as searching all fields)\n\tif(fields.length === 0 && !options.excludeField) {\n\t\tfields.push(\"title\");\n\t\tfields.push(\"tags\");\n\t\tfields.push(\"text\");\n\t}\n\t// Function to check a given tiddler for the search term\n\tvar searchTiddler = function(title) {\n\t\tif(!searchTermsRegExps) {\n\t\t\treturn true;\n\t\t}\n\t\tvar notYetFound = searchTermsRegExps.slice();\n\n\t\tvar tiddler = self.getTiddler(title);\n\t\tif(!tiddler) {\n\t\t\ttiddler = new $tw.Tiddler({title: title, text: \"\", type: \"text/vnd.tiddlywiki\"});\n\t\t}\n\t\tvar contentTypeInfo = $tw.config.contentTypeInfo[tiddler.fields.type] || $tw.config.contentTypeInfo[\"text/vnd.tiddlywiki\"],\n\t\t\tsearchFields;\n\t\t// Get the list of fields we're searching\n\t\tif(options.excludeField) {\n\t\t\tsearchFields = Object.keys(tiddler.fields);\n\t\t\t$tw.utils.each(fields,function(fieldName) {\n\t\t\t\tvar p = searchFields.indexOf(fieldName);\n\t\t\t\tif(p !== -1) {\n\t\t\t\t\tsearchFields.splice(p,1);\n\t\t\t\t}\n\t\t\t});\n\t\t} else {\n\t\t\tsearchFields = fields;\n\t\t}\n\t\tfor(var fieldIndex=0; notYetFound.length>0 && fieldIndex<searchFields.length; fieldIndex++) {\n\t\t\t// Don't search the text field if the content type is binary\n\t\t\tvar fieldName = searchFields[fieldIndex];\n\t\t\tif(fieldName === \"text\" && contentTypeInfo.encoding !== \"utf8\") {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tvar str = tiddler.fields[fieldName],\n\t\t\t\tt;\n\t\t\tif(str) {\n\t\t\t\tif($tw.utils.isArray(str)) {\n\t\t\t\t\t// If the field value is an array, test each regexp against each field array entry and fail if each regexp doesn't match at least one field array entry\n\t\t\t\t\tfor(var s=0; s<str.length; s++) {\n\t\t\t\t\t\tfor(t=0; t<notYetFound.length;) {\n\t\t\t\t\t\t\tif(notYetFound[t].test(str[s])) {\n\t\t\t\t\t\t\t\tnotYetFound.splice(t, 1);\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tt++;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\t// If the field isn't an array, force it to a string and test each regexp against it and fail if any do not match\n\t\t\t\t\tstr = tiddler.getFieldString(fieldName);\n\t\t\t\t\tfor(t=0; t<notYetFound.length;) {\n\t\t\t\t\t\tif(notYetFound[t].test(str)) {\n\t\t\t\t\t\t\tnotYetFound.splice(t, 1);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tt++;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t\treturn notYetFound.length == 0;\n\t};\n\t// Loop through all the tiddlers doing the search\n\tvar results = [],\n\t\tsource = options.source || this.each;\n\tsource(function(tiddler,title) {\n\t\tif(searchTiddler(title) !== options.invert) {\n\t\t\tresults.push(title);\n\t\t}\n\t});\n\t// Remove any of the results we have to exclude\n\tif(options.exclude) {\n\t\tfor(t=0; t<options.exclude.length; t++) {\n\t\t\tvar p = results.indexOf(options.exclude[t]);\n\t\t\tif(p !== -1) {\n\t\t\t\tresults.splice(p,1);\n\t\t\t}\n\t\t}\n\t}\n\treturn results;\n};\n\n/*\nTrigger a load for a tiddler if it is skinny. Returns the text, or undefined if the tiddler is missing, null if the tiddler is being lazily loaded.\n*/\nexports.getTiddlerText = function(title,defaultText) {\n\tvar tiddler = this.getTiddler(title);\n\t// Return undefined if the tiddler isn't found\n\tif(!tiddler) {\n\t\treturn defaultText;\n\t}\n\tif(!tiddler.hasField(\"_is_skinny\")) {\n\t\t// Just return the text if we've got it\n\t\treturn tiddler.fields.text || \"\";\n\t} else {\n\t\t// Tell any listeners about the need to lazily load this tiddler\n\t\tthis.dispatchEvent(\"lazyLoad\",title);\n\t\t// Indicate that the text is being loaded\n\t\treturn null;\n\t}\n};\n\n/*\nCheck whether the text of a tiddler matches a given value. By default, the comparison is case insensitive, and any spaces at either end of the tiddler text is trimmed\n*/\nexports.checkTiddlerText = function(title,targetText,options) {\n\toptions = options || {};\n\tvar text = this.getTiddlerText(title,\"\");\n\tif(!options.noTrim) {\n\t\ttext = text.trim();\n\t}\n\tif(!options.caseSensitive) {\n\t\ttext = text.toLowerCase();\n\t\ttargetText = targetText.toLowerCase();\n\t}\n\treturn text === targetText;\n}\n\n/*\nRead an array of browser File objects, invoking callback(tiddlerFieldsArray) once they're all read\n*/\nexports.readFiles = function(files,options) {\n\tvar callback;\n\tif(typeof options === \"function\") {\n\t\tcallback = options;\n\t\toptions = {};\n\t} else {\n\t\tcallback = options.callback;\n\t}\n\tvar result = [],\n\t\toutstanding = files.length,\n\t\treadFileCallback = function(tiddlerFieldsArray) {\n\t\t\tresult.push.apply(result,tiddlerFieldsArray);\n\t\t\tif(--outstanding === 0) {\n\t\t\t\tcallback(result);\n\t\t\t}\n\t\t};\n\tfor(var f=0; f<files.length; f++) {\n\t\tthis.readFile(files[f],$tw.utils.extend({},options,{callback: readFileCallback}));\n\t}\n\treturn files.length;\n};\n\n/*\nRead a browser File object, invoking callback(tiddlerFieldsArray) with an array of tiddler fields objects\n*/\nexports.readFile = function(file,options) {\n\tvar callback;\n\tif(typeof options === \"function\") {\n\t\tcallback = options;\n\t\toptions = {};\n\t} else {\n\t\tcallback = options.callback;\n\t}\n\t// Get the type, falling back to the filename extension\n\tvar self = this,\n\t\ttype = file.type;\n\tif(type === \"\" || !type) {\n\t\tvar dotPos = file.name.lastIndexOf(\".\");\n\t\tif(dotPos !== -1) {\n\t\t\tvar fileExtensionInfo = $tw.utils.getFileExtensionInfo(file.name.substr(dotPos));\n\t\t\tif(fileExtensionInfo) {\n\t\t\t\ttype = fileExtensionInfo.type;\n\t\t\t}\n\t\t}\n\t}\n\t// Figure out if we're reading a binary file\n\tvar contentTypeInfo = $tw.config.contentTypeInfo[type],\n\t\tisBinary = contentTypeInfo ? contentTypeInfo.encoding === \"base64\" : false;\n\t// Log some debugging information\n\tif($tw.log.IMPORT) {\n\t\tconsole.log(\"Importing file '\" + file.name + \"', type: '\" + type + \"', isBinary: \" + isBinary);\n\t}\n\t// Give the hook a chance to process the drag\n\tif($tw.hooks.invokeHook(\"th-importing-file\",{\n\t\tfile: file,\n\t\ttype: type,\n\t\tisBinary: isBinary,\n\t\tcallback: callback\n\t}) !== true) {\n\t\tthis.readFileContent(file,type,isBinary,options.deserializer,callback);\n\t}\n};\n\n/*\nLower level utility to read the content of a browser File object, invoking callback(tiddlerFieldsArray) with an array of tiddler fields objects\n*/\nexports.readFileContent = function(file,type,isBinary,deserializer,callback) {\n\tvar self = this;\n\t// Create the FileReader\n\tvar reader = new FileReader();\n\t// Onload\n\treader.onload = function(event) {\n\t\tvar text = event.target.result,\n\t\t\ttiddlerFields = {title: file.name || \"Untitled\"};\n\t\tif(isBinary) {\n\t\t\tvar commaPos = text.indexOf(\",\");\n\t\t\tif(commaPos !== -1) {\n\t\t\t\ttext = text.substr(commaPos + 1);\n\t\t\t}\n\t\t}\n\t\t// Check whether this is an encrypted TiddlyWiki file\n\t\tvar encryptedJson = $tw.utils.extractEncryptedStoreArea(text);\n\t\tif(encryptedJson) {\n\t\t\t// If so, attempt to decrypt it with the current password\n\t\t\t$tw.utils.decryptStoreAreaInteractive(encryptedJson,function(tiddlers) {\n\t\t\t\tcallback(tiddlers);\n\t\t\t});\n\t\t} else {\n\t\t\t// Otherwise, just try to deserialise any tiddlers in the file\n\t\t\tcallback(self.deserializeTiddlers(type,text,tiddlerFields,{deserializer: deserializer}));\n\t\t}\n\t};\n\t// Kick off the read\n\tif(isBinary) {\n\t\treader.readAsDataURL(file);\n\t} else {\n\t\treader.readAsText(file);\n\t}\n};\n\n/*\nFind any existing draft of a specified tiddler\n*/\nexports.findDraft = function(targetTitle) {\n\tvar draftTitle = undefined;\n\tthis.forEachTiddler({includeSystem: true},function(title,tiddler) {\n\t\tif(tiddler.fields[\"draft.title\"] && tiddler.fields[\"draft.of\"] === targetTitle) {\n\t\t\tdraftTitle = title;\n\t\t}\n\t});\n\treturn draftTitle;\n}\n\n/*\nCheck whether the specified draft tiddler has been modified.\nIf the original tiddler doesn't exist, create  a vanilla tiddler variable,\nto check if additional fields have been added.\n*/\nexports.isDraftModified = function(title) {\n\tvar tiddler = this.getTiddler(title);\n\tif(!tiddler.isDraft()) {\n\t\treturn false;\n\t}\n\tvar ignoredFields = [\"created\", \"modified\", \"title\", \"draft.title\", \"draft.of\"],\n\t\torigTiddler = this.getTiddler(tiddler.fields[\"draft.of\"]) || new $tw.Tiddler({text:\"\", tags:[]}),\n\t\ttitleModified = tiddler.fields[\"draft.title\"] !== tiddler.fields[\"draft.of\"];\n\treturn titleModified || !tiddler.isEqual(origTiddler,ignoredFields);\n};\n\n/*\nAdd a new record to the top of the history stack\ntitle: a title string or an array of title strings\nfromPageRect: page coordinates of the origin of the navigation\nhistoryTitle: title of history tiddler (defaults to $:/HistoryList)\n*/\nexports.addToHistory = function(title,fromPageRect,historyTitle) {\n\tvar story = new $tw.Story({wiki: this, historyTitle: historyTitle});\n\tstory.addToHistory(title,fromPageRect);\t\n\tconsole.log(\"$tw.wiki.addToHistory() is deprecated since V5.1.23! Use the this.story.addToHistory() from the story-object!\")\n};\n\n/*\nAdd a new tiddler to the story river\ntitle: a title string or an array of title strings\nfromTitle: the title of the tiddler from which the navigation originated\nstoryTitle: title of story tiddler (defaults to $:/StoryList)\noptions: see story.js\n*/\nexports.addToStory = function(title,fromTitle,storyTitle,options) {\n\tvar story = new $tw.Story({wiki: this, storyTitle: storyTitle});\n\tstory.addToStory(title,fromTitle,options);\n\tconsole.log(\"$tw.wiki.addToStory() is deprecated since V5.1.23! Use the this.story.addToStory() from the story-object!\")\n};\n\n/*\nGenerate a title for the draft of a given tiddler\n*/\nexports.generateDraftTitle = function(title) {\n\tvar c = 0,\n\t\tdraftTitle,\n\t\tusername = this.getTiddlerText(\"$:/status/UserName\"),\n\t\tattribution = username ? \" by \" + username : \"\";\n\tdo {\n\t\tdraftTitle = \"Draft \" + (c ? (c + 1) + \" \" : \"\") + \"of '\" + title + \"'\" + attribution;\n\t\tc++;\n\t} while(this.tiddlerExists(draftTitle));\n\treturn draftTitle;\n};\n\n/*\nInvoke the available upgrader modules\ntitles: array of tiddler titles to be processed\ntiddlers: hashmap by title of tiddler fields of pending import tiddlers. These can be modified by the upgraders. An entry with no fields indicates a tiddler that was pending import has been suppressed. When entries are added to the pending import the tiddlers hashmap may have entries that are not present in the titles array\nReturns a hashmap of messages keyed by tiddler title.\n*/\nexports.invokeUpgraders = function(titles,tiddlers) {\n\t// Collect up the available upgrader modules\n\tvar self = this;\n\tif(!this.upgraderModules) {\n\t\tthis.upgraderModules = [];\n\t\t$tw.modules.forEachModuleOfType(\"upgrader\",function(title,module) {\n\t\t\tif(module.upgrade) {\n\t\t\t\tself.upgraderModules.push(module);\n\t\t\t}\n\t\t});\n\t}\n\t// Invoke each upgrader in turn\n\tvar messages = {};\n\tfor(var t=0; t<this.upgraderModules.length; t++) {\n\t\tvar upgrader = this.upgraderModules[t],\n\t\t\tupgraderMessages = upgrader.upgrade(this,titles,tiddlers);\n\t\t$tw.utils.extend(messages,upgraderMessages);\n\t}\n\treturn messages;\n};\n\n// Determine whether a plugin by title is dynamically loadable\nexports.doesPluginRequireReload = function(title) {\n\treturn this.doesPluginInfoRequireReload(this.getPluginInfo(title) || this.getTiddlerDataCached(title));\n};\n\n// Determine whether a plugin info structure is dynamically loadable\nexports.doesPluginInfoRequireReload = function(pluginInfo) {\n\tif(pluginInfo) {\n\t\tvar foundModule = false;\n\t\t$tw.utils.each(pluginInfo.tiddlers,function(tiddler) {\n\t\t\tif(tiddler.type === \"application/javascript\" && $tw.utils.hop(tiddler,\"module-type\")) {\n\t\t\t\tfoundModule = true;\n\t\t\t}\n\t\t});\n\t\treturn foundModule;\n\t} else {\n\t\treturn null;\n\t}\n};\n\nexports.slugify = function(title,options) {\n\tvar tiddler = this.getTiddler(title),\n\t\tslug;\n\tif(tiddler && tiddler.fields.slug) {\n\t\tslug = tiddler.fields.slug;\n\t} else {\n\t\tslug = $tw.utils.transliterate(title.toString().toLowerCase()) // Replace diacritics with basic lowercase ASCII\n\t\t\t.replace(/\\s+/g,\"-\")                                       // Replace spaces with -\n\t\t\t.replace(/[^\\w\\-\\.]+/g,\"\")                                 // Remove all non-word chars except dash and dot\n\t\t\t.replace(/\\-\\-+/g,\"-\")                                     // Replace multiple - with single -\n\t\t\t.replace(/^-+/,\"\")                                         // Trim - from start of text\n\t\t\t.replace(/-+$/,\"\");                                        // Trim - from end of text\n\t}\n\t// If the resulting slug is blank (eg because the title is just punctuation characters)\n\tif(!slug) {\n\t\t// ...then just use the character codes of the title\n\t\tvar result = [];\n\t\t$tw.utils.each(title.split(\"\"),function(char) {\n\t\t\tresult.push(char.charCodeAt(0).toString());\n\t\t});\n\t\tslug = result.join(\"-\");\n\t}\n\treturn slug;\n};\n\n})();\n\n",
            "type": "application/javascript",
            "module-type": "wikimethod"
        },
        "$:/palettes/Blanca": {
            "title": "$:/palettes/Blanca",
            "name": "Blanca",
            "description": "A clean white palette to let you focus",
            "tags": "$:/tags/Palette",
            "type": "application/x-tiddler-dictionary",
            "text": "alert-background: #ffe476\nalert-border: #b99e2f\nalert-highlight: #881122\nalert-muted-foreground: #b99e2f\nbackground: #ffffff\nblockquote-bar: <<colour muted-foreground>>\nbutton-background:\nbutton-foreground:\nbutton-border:\ncode-background: #f7f7f9\ncode-border: #e1e1e8\ncode-foreground: #dd1144\ndirty-indicator: #ff0000\ndownload-background: #66cccc\ndownload-foreground: <<colour background>>\ndragger-background: <<colour foreground>>\ndragger-foreground: <<colour background>>\ndropdown-background: <<colour background>>\ndropdown-border: <<colour muted-foreground>>\ndropdown-tab-background-selected: #fff\ndropdown-tab-background: #ececec\ndropzone-background: rgba(0,200,0,0.7)\nexternal-link-background-hover: inherit\nexternal-link-background-visited: inherit\nexternal-link-background: inherit\nexternal-link-foreground-hover: inherit\nexternal-link-foreground-visited: #0000aa\nexternal-link-foreground: #0000ee\nforeground: #333333\nmessage-background: #ecf2ff\nmessage-border: #cfd6e6\nmessage-foreground: #547599\nmodal-backdrop: <<colour foreground>>\nmodal-background: <<colour background>>\nmodal-border: #999999\nmodal-footer-background: #f5f5f5\nmodal-footer-border: #dddddd\nmodal-header-border: #eeeeee\nmuted-foreground: #999999\nnotification-background: #ffffdd\nnotification-border: #999999\npage-background: #ffffff\npre-background: #f5f5f5\npre-border: #cccccc\nprimary: #7897f3\nselect-tag-background:\nselect-tag-foreground:\nsidebar-button-foreground: <<colour foreground>>\nsidebar-controls-foreground-hover: #000000\nsidebar-controls-foreground: #ccc\nsidebar-foreground-shadow: rgba(255,255,255, 0.8)\nsidebar-foreground: #acacac\nsidebar-muted-foreground-hover: #444444\nsidebar-muted-foreground: #c0c0c0\nsidebar-tab-background-selected: #ffffff\nsidebar-tab-background: <<colour tab-background>>\nsidebar-tab-border-selected: <<colour tab-border-selected>>\nsidebar-tab-border: <<colour tab-border>>\nsidebar-tab-divider: <<colour tab-divider>>\nsidebar-tab-foreground-selected: \nsidebar-tab-foreground: <<colour tab-foreground>>\nsidebar-tiddler-link-foreground-hover: #444444\nsidebar-tiddler-link-foreground: #7897f3\nsite-title-foreground: <<colour tiddler-title-foreground>>\nstatic-alert-foreground: #aaaaaa\ntab-background-selected: #ffffff\ntab-background: #eeeeee\ntab-border-selected: #cccccc\ntab-border: #cccccc\ntab-divider: #d8d8d8\ntab-foreground-selected: <<colour tab-foreground>>\ntab-foreground: #666666\ntable-border: #dddddd\ntable-footer-background: #a8a8a8\ntable-header-background: #f0f0f0\ntag-background: #ffeedd\ntag-foreground: #000\ntiddler-background: <<colour background>>\ntiddler-border: #eee\ntiddler-controls-foreground-hover: #888888\ntiddler-controls-foreground-selected: #444444\ntiddler-controls-foreground: #cccccc\ntiddler-editor-background: #f8f8f8\ntiddler-editor-border-image: #ffffff\ntiddler-editor-border: #cccccc\ntiddler-editor-fields-even: #e0e8e0\ntiddler-editor-fields-odd: #f0f4f0\ntiddler-info-background: #f8f8f8\ntiddler-info-border: #dddddd\ntiddler-info-tab-background: #f8f8f8\ntiddler-link-background: <<colour background>>\ntiddler-link-foreground: <<colour primary>>\ntiddler-subtitle-foreground: #c0c0c0\ntiddler-title-foreground: #ff9900\ntoolbar-new-button:\ntoolbar-options-button:\ntoolbar-save-button:\ntoolbar-info-button:\ntoolbar-edit-button:\ntoolbar-close-button:\ntoolbar-delete-button:\ntoolbar-cancel-button:\ntoolbar-done-button:\nuntagged-background: #999999\nvery-muted-foreground: #888888\n"
        },
        "$:/palettes/Blue": {
            "title": "$:/palettes/Blue",
            "name": "Blue",
            "description": "A blue theme",
            "tags": "$:/tags/Palette",
            "type": "application/x-tiddler-dictionary",
            "text": "alert-background: #ffe476\nalert-border: #b99e2f\nalert-highlight: #881122\nalert-muted-foreground: #b99e2f\nbackground: #fff\nblockquote-bar: <<colour muted-foreground>>\nbutton-background:\nbutton-foreground:\nbutton-border:\ncode-background: #f7f7f9\ncode-border: #e1e1e8\ncode-foreground: #dd1144\ndirty-indicator: #ff0000\ndownload-background: #34c734\ndownload-foreground: <<colour foreground>>\ndragger-background: <<colour foreground>>\ndragger-foreground: <<colour background>>\ndropdown-background: <<colour background>>\ndropdown-border: <<colour muted-foreground>>\ndropdown-tab-background-selected: #fff\ndropdown-tab-background: #ececec\ndropzone-background: rgba(0,200,0,0.7)\nexternal-link-background-hover: inherit\nexternal-link-background-visited: inherit\nexternal-link-background: inherit\nexternal-link-foreground-hover: inherit\nexternal-link-foreground-visited: #0000aa\nexternal-link-foreground: #0000ee\nforeground: #333353\nmessage-background: #ecf2ff\nmessage-border: #cfd6e6\nmessage-foreground: #547599\nmodal-backdrop: <<colour foreground>>\nmodal-background: <<colour background>>\nmodal-border: #999999\nmodal-footer-background: #f5f5f5\nmodal-footer-border: #dddddd\nmodal-header-border: #eeeeee\nmuted-foreground: #999999\nnotification-background: #ffffdd\nnotification-border: #999999\npage-background: #ddddff\npre-background: #f5f5f5\npre-border: #cccccc\nprimary: #5778d8\nselect-tag-background:\nselect-tag-foreground:\nsidebar-button-foreground: <<colour foreground>>\nsidebar-controls-foreground-hover: #000000\nsidebar-controls-foreground: #ffffff\nsidebar-foreground-shadow: rgba(255,255,255, 0.8)\nsidebar-foreground: #acacac\nsidebar-muted-foreground-hover: #444444\nsidebar-muted-foreground: #c0c0c0\nsidebar-tab-background-selected: <<colour page-background>>\nsidebar-tab-background: <<colour tab-background>>\nsidebar-tab-border-selected: <<colour tab-border-selected>>\nsidebar-tab-border: <<colour tab-border>>\nsidebar-tab-divider: <<colour tab-divider>>\nsidebar-tab-foreground-selected: \nsidebar-tab-foreground: <<colour tab-foreground>>\nsidebar-tiddler-link-foreground-hover: #444444\nsidebar-tiddler-link-foreground: #5959c0\nsite-title-foreground: <<colour tiddler-title-foreground>>\nstatic-alert-foreground: #aaaaaa\ntab-background-selected: <<colour background>>\ntab-background: #ccccdd\ntab-border-selected: #ccccdd\ntab-border: #cccccc\ntab-divider: #d8d8d8\ntab-foreground-selected: <<colour tab-foreground>>\ntab-foreground: #666666\ntable-border: #dddddd\ntable-footer-background: #a8a8a8\ntable-header-background: #f0f0f0\ntag-background: #eeeeff\ntag-foreground: #000\ntiddler-background: <<colour background>>\ntiddler-border: <<colour background>>\ntiddler-controls-foreground-hover: #666666\ntiddler-controls-foreground-selected: #444444\ntiddler-controls-foreground: #cccccc\ntiddler-editor-background: #f8f8f8\ntiddler-editor-border-image: #ffffff\ntiddler-editor-border: #cccccc\ntiddler-editor-fields-even: #e0e8e0\ntiddler-editor-fields-odd: #f0f4f0\ntiddler-info-background: #ffffff\ntiddler-info-border: #dddddd\ntiddler-info-tab-background: #ffffff\ntiddler-link-background: <<colour background>>\ntiddler-link-foreground: <<colour primary>>\ntiddler-subtitle-foreground: #c0c0c0\ntiddler-title-foreground: #5959c0\ntoolbar-new-button: #5eb95e\ntoolbar-options-button: rgb(128, 88, 165)\ntoolbar-save-button: #0e90d2\ntoolbar-info-button: #0e90d2\ntoolbar-edit-button: rgb(243, 123, 29)\ntoolbar-close-button: #dd514c\ntoolbar-delete-button: #dd514c\ntoolbar-cancel-button: rgb(243, 123, 29)\ntoolbar-done-button: #5eb95e\nuntagged-background: #999999\nvery-muted-foreground: #888888\n"
        },
        "$:/palettes/Muted": {
            "title": "$:/palettes/Muted",
            "name": "Muted",
            "description": "Bright tiddlers on a muted background",
            "tags": "$:/tags/Palette",
            "type": "application/x-tiddler-dictionary",
            "text": "alert-background: #ffe476\nalert-border: #b99e2f\nalert-highlight: #881122\nalert-muted-foreground: #b99e2f\nbackground: #ffffff\nblockquote-bar: <<colour muted-foreground>>\nbutton-background:\nbutton-foreground:\nbutton-border:\ncode-background: #f7f7f9\ncode-border: #e1e1e8\ncode-foreground: #dd1144\ndirty-indicator: #ff0000\ndownload-background: #34c734\ndownload-foreground: <<colour background>>\ndragger-background: <<colour foreground>>\ndragger-foreground: <<colour background>>\ndropdown-background: <<colour background>>\ndropdown-border: <<colour muted-foreground>>\ndropdown-tab-background-selected: #fff\ndropdown-tab-background: #ececec\ndropzone-background: rgba(0,200,0,0.7)\nexternal-link-background-hover: inherit\nexternal-link-background-visited: inherit\nexternal-link-background: inherit\nexternal-link-foreground-hover: inherit\nexternal-link-foreground-visited: #0000aa\nexternal-link-foreground: #0000ee\nforeground: #333333\nmessage-background: #ecf2ff\nmessage-border: #cfd6e6\nmessage-foreground: #547599\nmodal-backdrop: <<colour foreground>>\nmodal-background: <<colour background>>\nmodal-border: #999999\nmodal-footer-background: #f5f5f5\nmodal-footer-border: #dddddd\nmodal-header-border: #eeeeee\nmuted-foreground: #bbb\nnotification-background: #ffffdd\nnotification-border: #999999\npage-background: #6f6f70\npre-background: #f5f5f5\npre-border: #cccccc\nprimary: #29a6ee\nselect-tag-background:\nselect-tag-foreground:\nsidebar-button-foreground: <<colour foreground>>\nsidebar-controls-foreground-hover: #000000\nsidebar-controls-foreground: #c2c1c2\nsidebar-foreground-shadow: rgba(255,255,255,0)\nsidebar-foreground: #d3d2d4\nsidebar-muted-foreground-hover: #444444\nsidebar-muted-foreground: #c0c0c0\nsidebar-tab-background-selected: #6f6f70\nsidebar-tab-background: #666667\nsidebar-tab-border-selected: #999\nsidebar-tab-border: #515151\nsidebar-tab-divider: #999\nsidebar-tab-foreground-selected: \nsidebar-tab-foreground: #999\nsidebar-tiddler-link-foreground-hover: #444444\nsidebar-tiddler-link-foreground: #d1d0d2\nsite-title-foreground: <<colour tiddler-title-foreground>>\nstatic-alert-foreground: #aaaaaa\ntab-background-selected: #ffffff\ntab-background: #d8d8d8\ntab-border-selected: #d8d8d8\ntab-border: #cccccc\ntab-divider: #d8d8d8\ntab-foreground-selected: <<colour tab-foreground>>\ntab-foreground: #666666\ntable-border: #dddddd\ntable-footer-background: #a8a8a8\ntable-header-background: #f0f0f0\ntag-background: #d5ad34\ntag-foreground: #ffffff\ntiddler-background: <<colour background>>\ntiddler-border: <<colour background>>\ntiddler-controls-foreground-hover: #888888\ntiddler-controls-foreground-selected: #444444\ntiddler-controls-foreground: #cccccc\ntiddler-editor-background: #f8f8f8\ntiddler-editor-border-image: #ffffff\ntiddler-editor-border: #cccccc\ntiddler-editor-fields-even: #e0e8e0\ntiddler-editor-fields-odd: #f0f4f0\ntiddler-info-background: #f8f8f8\ntiddler-info-border: #dddddd\ntiddler-info-tab-background: #f8f8f8\ntiddler-link-background: <<colour background>>\ntiddler-link-foreground: <<colour primary>>\ntiddler-subtitle-foreground: #c0c0c0\ntiddler-title-foreground: #182955\ntoolbar-new-button: \ntoolbar-options-button: \ntoolbar-save-button: \ntoolbar-info-button: \ntoolbar-edit-button: \ntoolbar-close-button: \ntoolbar-delete-button: \ntoolbar-cancel-button: \ntoolbar-done-button: \nuntagged-background: #999999\nvery-muted-foreground: #888888\n"
        },
        "$:/palettes/ContrastLight": {
            "title": "$:/palettes/ContrastLight",
            "name": "Contrast (Light)",
            "description": "High contrast and unambiguous (light version)",
            "tags": "$:/tags/Palette",
            "type": "application/x-tiddler-dictionary",
            "text": "alert-background: #f00\nalert-border: <<colour background>>\nalert-highlight: <<colour foreground>>\nalert-muted-foreground: #800\nbackground: #fff\nblockquote-bar: <<colour muted-foreground>>\nbutton-background: <<colour background>>\nbutton-foreground: <<colour foreground>>\nbutton-border: <<colour foreground>>\ncode-background: <<colour background>>\ncode-border: <<colour foreground>>\ncode-foreground: <<colour foreground>>\ndirty-indicator: #f00\ndownload-background: #080\ndownload-foreground: <<colour background>>\ndragger-background: <<colour foreground>>\ndragger-foreground: <<colour background>>\ndropdown-background: <<colour background>>\ndropdown-border: <<colour muted-foreground>>\ndropdown-tab-background-selected: <<colour foreground>>\ndropdown-tab-background: <<colour foreground>>\ndropzone-background: rgba(0,200,0,0.7)\nexternal-link-background-hover: inherit\nexternal-link-background-visited: inherit\nexternal-link-background: inherit\nexternal-link-foreground-hover: inherit\nexternal-link-foreground-visited: #00a\nexternal-link-foreground: #00e\nforeground: #000\nmessage-background: <<colour foreground>>\nmessage-border: <<colour background>>\nmessage-foreground: <<colour background>>\nmodal-backdrop: <<colour foreground>>\nmodal-background: <<colour background>>\nmodal-border: <<colour foreground>>\nmodal-footer-background: <<colour background>>\nmodal-footer-border: <<colour foreground>>\nmodal-header-border: <<colour foreground>>\nmuted-foreground: <<colour foreground>>\nnotification-background: <<colour background>>\nnotification-border: <<colour foreground>>\npage-background: <<colour background>>\npre-background: <<colour background>>\npre-border: <<colour foreground>>\nprimary: #00f\nselect-tag-background:\nselect-tag-foreground:\nsidebar-button-foreground: <<colour foreground>>\nsidebar-controls-foreground-hover: <<colour background>>\nsidebar-controls-foreground: <<colour foreground>>\nsidebar-foreground-shadow: rgba(0,0,0, 0)\nsidebar-foreground: <<colour foreground>>\nsidebar-muted-foreground-hover: #444444\nsidebar-muted-foreground: <<colour foreground>>\nsidebar-tab-background-selected: <<colour background>>\nsidebar-tab-background: <<colour tab-background>>\nsidebar-tab-border-selected: <<colour tab-border-selected>>\nsidebar-tab-border: <<colour tab-border>>\nsidebar-tab-divider: <<colour tab-divider>>\nsidebar-tab-foreground-selected: <<colour foreground>>\nsidebar-tab-foreground: <<colour tab-foreground>>\nsidebar-tiddler-link-foreground-hover: <<colour foreground>>\nsidebar-tiddler-link-foreground: <<colour primary>>\nsite-title-foreground: <<colour tiddler-title-foreground>>\nstatic-alert-foreground: #aaaaaa\ntab-background-selected: <<colour background>>\ntab-background: <<colour foreground>>\ntab-border-selected: <<colour foreground>>\ntab-border: <<colour foreground>>\ntab-divider: <<colour foreground>>\ntab-foreground-selected: <<colour foreground>>\ntab-foreground: <<colour background>>\ntable-border: #dddddd\ntable-footer-background: #a8a8a8\ntable-header-background: #f0f0f0\ntag-background: #000\ntag-foreground: #fff\ntiddler-background: <<colour background>>\ntiddler-border: <<colour foreground>>\ntiddler-controls-foreground-hover: #ddd\ntiddler-controls-foreground-selected: #fdd\ntiddler-controls-foreground: <<colour foreground>>\ntiddler-editor-background: <<colour background>>\ntiddler-editor-border-image: <<colour foreground>>\ntiddler-editor-border: #cccccc\ntiddler-editor-fields-even: <<colour background>>\ntiddler-editor-fields-odd: <<colour background>>\ntiddler-info-background: <<colour background>>\ntiddler-info-border: <<colour foreground>>\ntiddler-info-tab-background: <<colour background>>\ntiddler-link-background: <<colour background>>\ntiddler-link-foreground: <<colour primary>>\ntiddler-subtitle-foreground: <<colour foreground>>\ntiddler-title-foreground: <<colour foreground>>\ntoolbar-new-button: \ntoolbar-options-button: \ntoolbar-save-button: \ntoolbar-info-button: \ntoolbar-edit-button: \ntoolbar-close-button: \ntoolbar-delete-button: \ntoolbar-cancel-button: \ntoolbar-done-button: \nuntagged-background: <<colour foreground>>\nvery-muted-foreground: #888888\n"
        },
        "$:/palettes/ContrastDark": {
            "title": "$:/palettes/ContrastDark",
            "name": "Contrast (Dark)",
            "description": "High contrast and unambiguous (dark version)",
            "tags": "$:/tags/Palette",
            "type": "application/x-tiddler-dictionary",
            "text": "alert-background: #f00\nalert-border: <<colour background>>\nalert-highlight: <<colour foreground>>\nalert-muted-foreground: #800\nbackground: #000\nblockquote-bar: <<colour muted-foreground>>\nbutton-background: <<colour background>>\nbutton-foreground: <<colour foreground>>\nbutton-border: <<colour foreground>>\ncode-background: <<colour background>>\ncode-border: <<colour foreground>>\ncode-foreground: <<colour foreground>>\ndirty-indicator: #f00\ndownload-background: #080\ndownload-foreground: <<colour background>>\ndragger-background: <<colour foreground>>\ndragger-foreground: <<colour background>>\ndropdown-background: <<colour background>>\ndropdown-border: <<colour muted-foreground>>\ndropdown-tab-background-selected: <<colour foreground>>\ndropdown-tab-background: <<colour foreground>>\ndropzone-background: rgba(0,200,0,0.7)\nexternal-link-background-hover: inherit\nexternal-link-background-visited: inherit\nexternal-link-background: inherit\nexternal-link-foreground-hover: inherit\nexternal-link-foreground-visited: #00a\nexternal-link-foreground: #00e\nforeground: #fff\nmessage-background: <<colour foreground>>\nmessage-border: <<colour background>>\nmessage-foreground: <<colour background>>\nmodal-backdrop: <<colour foreground>>\nmodal-background: <<colour background>>\nmodal-border: <<colour foreground>>\nmodal-footer-background: <<colour background>>\nmodal-footer-border: <<colour foreground>>\nmodal-header-border: <<colour foreground>>\nmuted-foreground: <<colour foreground>>\nnotification-background: <<colour background>>\nnotification-border: <<colour foreground>>\npage-background: <<colour background>>\npre-background: <<colour background>>\npre-border: <<colour foreground>>\nprimary: #00f\nselect-tag-background:\nselect-tag-foreground:\nsidebar-button-foreground: <<colour foreground>>\nsidebar-controls-foreground-hover: <<colour background>>\nsidebar-controls-foreground: <<colour foreground>>\nsidebar-foreground-shadow: rgba(0,0,0, 0)\nsidebar-foreground: <<colour foreground>>\nsidebar-muted-foreground-hover: #444444\nsidebar-muted-foreground: <<colour foreground>>\nsidebar-tab-background-selected: <<colour background>>\nsidebar-tab-background: <<colour tab-background>>\nsidebar-tab-border-selected: <<colour tab-border-selected>>\nsidebar-tab-border: <<colour tab-border>>\nsidebar-tab-divider: <<colour tab-divider>>\nsidebar-tab-foreground-selected: <<colour foreground>>\nsidebar-tab-foreground: <<colour tab-foreground>>\nsidebar-tiddler-link-foreground-hover: <<colour foreground>>\nsidebar-tiddler-link-foreground: <<colour primary>>\nsite-title-foreground: <<colour tiddler-title-foreground>>\nstatic-alert-foreground: #aaaaaa\ntab-background-selected: <<colour background>>\ntab-background: <<colour foreground>>\ntab-border-selected: <<colour foreground>>\ntab-border: <<colour foreground>>\ntab-divider: <<colour foreground>>\ntab-foreground-selected: <<colour foreground>>\ntab-foreground: <<colour background>>\ntable-border: #dddddd\ntable-footer-background: #a8a8a8\ntable-header-background: #f0f0f0\ntag-background: #fff\ntag-foreground: #000\ntiddler-background: <<colour background>>\ntiddler-border: <<colour foreground>>\ntiddler-controls-foreground-hover: #ddd\ntiddler-controls-foreground-selected: #fdd\ntiddler-controls-foreground: <<colour foreground>>\ntiddler-editor-background: <<colour background>>\ntiddler-editor-border-image: <<colour foreground>>\ntiddler-editor-border: #cccccc\ntiddler-editor-fields-even: <<colour background>>\ntiddler-editor-fields-odd: <<colour background>>\ntiddler-info-background: <<colour background>>\ntiddler-info-border: <<colour foreground>>\ntiddler-info-tab-background: <<colour background>>\ntiddler-link-background: <<colour background>>\ntiddler-link-foreground: <<colour primary>>\ntiddler-subtitle-foreground: <<colour foreground>>\ntiddler-title-foreground: <<colour foreground>>\ntoolbar-new-button: \ntoolbar-options-button: \ntoolbar-save-button: \ntoolbar-info-button: \ntoolbar-edit-button: \ntoolbar-close-button: \ntoolbar-delete-button: \ntoolbar-cancel-button: \ntoolbar-done-button: \nuntagged-background: <<colour foreground>>\nvery-muted-foreground: #888888\n"
        },
        "$:/palettes/CupertinoDark": {
            "title": "$:/palettes/CupertinoDark",
            "tags": "$:/tags/Palette",
            "name": "Cupertino Dark",
            "description": "A macOS inspired dark palette",
            "type": "application/x-tiddler-dictionary",
            "text": "alert-background: #FF453A\nalert-border: #FF453A\nalert-highlight: #FFD60A\nalert-muted-foreground: <<colour muted-foreground>>\nbackground: #282828\nblockquote-bar: <<colour page-background>>\nbutton-foreground: <<colour background>>\ncode-background: <<colour pre-background>>\ncode-border: <<colour pre-border>>\ncode-foreground: rgba(255, 255, 255, 0.54)\ndirty-indicator: #FF453A\ndownload-background: <<colour primary>>\ndownload-foreground: <<colour foreground>>\ndragger-background: <<colour foreground>>\ndragger-foreground: <<colour background>>\ndropdown-background: <<colour tiddler-info-background>>\ndropdown-border: <<colour dropdown-background>>\ndropdown-tab-background-selected: #3F638B\ndropdown-tab-background: #323232\ndropzone-background: #30D158\nexternal-link-background-hover: transparent\nexternal-link-background-visited: transparent\nexternal-link-background: transparent\nexternal-link-foreground-hover: \nexternal-link-foreground-visited: #BF5AF2\nexternal-link-foreground: #32D74B\nforeground: #FFFFFF\nmenubar-background: #464646\nmenubar-foreground: #ffffff\nmessage-background: <<colour background>>\nmessage-border: <<colour very-muted-foreground>>\nmessage-foreground: rgba(255, 255, 255, 0.54)\nmodal-backdrop: <<colour page-background>>\nmodal-background: <<colour background>>\nmodal-border: <<colour very-muted-foreground>>\nmodal-footer-background: <<colour background>>\nmodal-footer-border: <<colour background>>\nmodal-header-border: <<colour very-muted-foreground>>\nmuted-foreground: #98989D\nnotification-background: <<colour dropdown-background>>\nnotification-border: <<colour dropdown-background>>\npage-background: #323232\npre-background: #464646\npre-border: transparent\nprimary: #0A84FF\nselect-tag-background: <<colour background>>\nselect-tag-foreground: <<colour foreground>>\nsidebar-button-foreground: <<colour background>>\nsidebar-controls-foreground-hover: #FF9F0A\nsidebar-controls-foreground: #8E8E93\nsidebar-foreground-shadow: transparent\nsidebar-foreground: rgba(255, 255, 255, 0.54)\nsidebar-muted-foreground-hover: rgba(255, 255, 255, 0.54)\nsidebar-muted-foreground: rgba(255, 255, 255, 0.38)\nsidebar-tab-background-selected: #3F638B\nsidebar-tab-background: <<colour background>>\nsidebar-tab-border-selected: <<colour background>>\nsidebar-tab-border: <<colour background>>\nsidebar-tab-divider: <<colour background>>\nsidebar-tab-foreground-selected: rgba(255, 255, 255, 0.87)\nsidebar-tab-foreground: rgba(255, 255, 255, 0.54)\nsidebar-tiddler-link-foreground-hover: rgba(255, 255, 255, 0.7)\nsidebar-tiddler-link-foreground: rgba(255, 255, 255, 0.54)\nsite-title-foreground: #ffffff\nstatic-alert-foreground: #B4B4B4\ntab-background-selected: #3F638B\ntab-background: <<colour page-background>>\ntab-border-selected: <<colour page-background>>\ntab-border: <<colour page-background>>\ntab-divider: <<colour page-background>>\ntab-foreground-selected: rgba(255, 255, 255, 0.87)\ntab-foreground: rgba(255, 255, 255, 0.54)\ntable-border: #464646\ntable-footer-background: <<colour tiddler-editor-fields-odd>>\ntable-header-background: <<colour tiddler-editor-fields-even>>\ntag-background: #48484A\ntag-foreground: #323232\ntiddler-background: <<colour background>>\ntiddler-border: transparent\ntiddler-controls-foreground-hover: <<colour sidebar-controls-foreground-hover>>\ntiddler-controls-foreground-selected: <<colour sidebar-controls-foreground-hover>>\ntiddler-controls-foreground: #48484A\ntiddler-editor-background: transparent\ntiddler-editor-border-image: \ntiddler-editor-border: rgba(255, 255, 255, 0.08)\ntiddler-editor-fields-even: rgba(255, 255, 255, 0.1)\ntiddler-editor-fields-odd: rgba(255, 255, 255, 0.04)\ntiddler-info-background: #1E1E1E\ntiddler-info-border: #1E1E1E\ntiddler-info-tab-background: #3F638B\ntiddler-link-background: <<colour background>>\ntiddler-link-foreground: <<colour primary>>\ntiddler-subtitle-foreground: <<colour muted-foreground>>\ntiddler-title-foreground: #FFFFFF\ntoolbar-new-button: \ntoolbar-options-button: \ntoolbar-save-button: \ntoolbar-info-button: \ntoolbar-edit-button: \ntoolbar-close-button: \ntoolbar-delete-button: \ntoolbar-cancel-button: \ntoolbar-done-button: \nuntagged-background: <<colour very-muted-foreground>>\nvery-muted-foreground: #464646\nselection-background: #3F638B\nselection-foreground: #ffffff\nwikilist-background: <<colour page-background>>\nwikilist-button-background: #3F638B\nwikilist-button-foreground: <<colour foreground>>\nwikilist-button-open: #32D74B\nwikilist-button-open-hover: #32D74B\nwikilist-button-reveal: #0A84FF\nwikilist-button-reveal-hover: #0A84FF\nwikilist-button-remove: #FF453A\nwikilist-button-remove-hover: #FF453A\nwikilist-droplink-dragover: #32D74B\nwikilist-item: <<colour background>>\nwikilist-toolbar-background: <<colour background>>\nwikilist-title: <<colour foreground>>\nwikilist-title-svg: <<colour foreground>>\nwikilist-toolbar-foreground: <<colour foreground>>\nwikilist-url: <<colour muted-foreground>>\n"
        },
        "$:/palettes/DarkPhotos": {
            "title": "$:/palettes/DarkPhotos",
            "created": "20150402111612188",
            "description": "Good with dark photo backgrounds",
            "modified": "20150402112344080",
            "name": "DarkPhotos",
            "tags": "$:/tags/Palette",
            "type": "application/x-tiddler-dictionary",
            "text": "alert-background: #ffe476\nalert-border: #b99e2f\nalert-highlight: #881122\nalert-muted-foreground: #b99e2f\nbackground: #ffffff\nblockquote-bar: <<colour muted-foreground>>\nbutton-background: \nbutton-foreground: \nbutton-border: \ncode-background: #f7f7f9\ncode-border: #e1e1e8\ncode-foreground: #dd1144\ndirty-indicator: #ff0000\ndownload-background: #34c734\ndownload-foreground: <<colour background>>\ndragger-background: <<colour foreground>>\ndragger-foreground: <<colour background>>\ndropdown-background: <<colour background>>\ndropdown-border: <<colour muted-foreground>>\ndropdown-tab-background-selected: #fff\ndropdown-tab-background: #ececec\ndropzone-background: rgba(0,200,0,0.7)\nexternal-link-background-hover: inherit\nexternal-link-background-visited: inherit\nexternal-link-background: inherit\nexternal-link-foreground-hover: inherit\nexternal-link-foreground-visited: #0000aa\nexternal-link-foreground: #0000ee\nforeground: #333333\nmessage-background: #ecf2ff\nmessage-border: #cfd6e6\nmessage-foreground: #547599\nmodal-backdrop: <<colour foreground>>\nmodal-background: <<colour background>>\nmodal-border: #999999\nmodal-footer-background: #f5f5f5\nmodal-footer-border: #dddddd\nmodal-header-border: #eeeeee\nmuted-foreground: #ddd\nnotification-background: #ffffdd\nnotification-border: #999999\npage-background: #336438\npre-background: #f5f5f5\npre-border: #cccccc\nprimary: #5778d8\nselect-tag-background:\nselect-tag-foreground:\nsidebar-button-foreground: <<colour foreground>>\nsidebar-controls-foreground-hover: #ccf\nsidebar-controls-foreground: #fff\nsidebar-foreground-shadow: rgba(0,0,0, 0.5)\nsidebar-foreground: #fff\nsidebar-muted-foreground-hover: #444444\nsidebar-muted-foreground: #eee\nsidebar-tab-background-selected: rgba(255,255,255, 0.8)\nsidebar-tab-background: rgba(255,255,255, 0.4)\nsidebar-tab-border-selected: <<colour tab-border-selected>>\nsidebar-tab-border: <<colour tab-border>>\nsidebar-tab-divider: rgba(255,255,255, 0.2)\nsidebar-tab-foreground-selected: \nsidebar-tab-foreground: <<colour tab-foreground>>\nsidebar-tiddler-link-foreground-hover: #aaf\nsidebar-tiddler-link-foreground: #ddf\nsite-title-foreground: #fff\nstatic-alert-foreground: #aaaaaa\ntab-background-selected: #ffffff\ntab-background: #d8d8d8\ntab-border-selected: #d8d8d8\ntab-border: #cccccc\ntab-divider: #d8d8d8\ntab-foreground-selected: <<colour tab-foreground>>\ntab-foreground: #666666\ntable-border: #dddddd\ntable-footer-background: #a8a8a8\ntable-header-background: #f0f0f0\ntag-background: #ec6\ntag-foreground: #ffffff\ntiddler-background: <<colour background>>\ntiddler-border: <<colour background>>\ntiddler-controls-foreground-hover: #888888\ntiddler-controls-foreground-selected: #444444\ntiddler-controls-foreground: #cccccc\ntiddler-editor-background: #f8f8f8\ntiddler-editor-border-image: #ffffff\ntiddler-editor-border: #cccccc\ntiddler-editor-fields-even: #e0e8e0\ntiddler-editor-fields-odd: #f0f4f0\ntiddler-info-background: #f8f8f8\ntiddler-info-border: #dddddd\ntiddler-info-tab-background: #f8f8f8\ntiddler-link-background: <<colour background>>\ntiddler-link-foreground: <<colour primary>>\ntiddler-subtitle-foreground: #c0c0c0\ntiddler-title-foreground: #182955\ntoolbar-new-button: \ntoolbar-options-button: \ntoolbar-save-button: \ntoolbar-info-button: \ntoolbar-edit-button: \ntoolbar-close-button: \ntoolbar-delete-button: \ntoolbar-cancel-button: \ntoolbar-done-button: \nuntagged-background: #999999\nvery-muted-foreground: #888888\n"
        },
        "$:/palettes/DesertSand": {
            "title": "$:/palettes/DesertSand",
            "tags": "$:/tags/Palette",
            "name": "Desert Sand",
            "description": "A desert sand palette",
            "type": "application/x-tiddler-dictionary",
            "text": "alert-background: #ffe476\nalert-border: #b99e2f\nalert-highlight: #881122\nalert-muted-foreground: #b99e2f\nbackground: #E9E0C7\nblockquote-bar: <<colour muted-foreground>>\nbutton-foreground: <<colour foreground>>\ncode-background: #F3EDDF\ncode-border: #C3BAA1\ncode-foreground: #ab3250\ndiff-delete-background: #bd8b8b\ndiff-delete-foreground: <<colour foreground>>\ndiff-equal-background: \ndiff-equal-foreground: <<colour foreground>>\ndiff-insert-background: #91c093\ndiff-insert-foreground: <<colour foreground>>\ndiff-invisible-background: \ndiff-invisible-foreground: <<colour muted-foreground>>\ndirty-indicator: #ad3434\ndownload-background: #6ca16c\ndownload-foreground: <<colour background>>\ndragger-background: <<colour foreground>>\ndragger-foreground: <<colour background>>\ndropdown-background: <<colour background>>\ndropdown-border: <<colour muted-foreground>>\ndropdown-tab-background-selected: #E9E0C7\ndropdown-tab-background: #BAB29C\ndropzone-background: rgba(0,200,0,0.7)\nexternal-link-background-hover: inherit\nexternal-link-background-visited: inherit\nexternal-link-background: inherit\nexternal-link-foreground-hover: inherit\nexternal-link-foreground-visited: #313163\nexternal-link-foreground: #555592\nforeground: #2D2A23\nmenubar-background: #CDC2A6\nmenubar-foreground: #5A5446\nmessage-background: #ECE5CF\nmessage-border: #D6CBAA\nmessage-foreground: #5f6e7d\nmodal-backdrop: <<colour foreground>>\nmodal-background: <<colour background>>\nmodal-border: #8A8885\nmodal-footer-background: #CDC2A6\nmodal-footer-border: #9D998E\nmodal-header-border: #9D998E\nmuted-foreground: #9D998E\nnotification-background: #F0E9D7\nnotification-border: #939189\npage-background: #e0d3af\npre-background: #D6CBAA\npre-border: #CDC2A6\nprimary: #5B6F55\nselection-background: #9D947B\nselection-foreground: <<colour foreground>>\nselect-tag-background: #F0E9D7\nselect-tag-foreground: #2D2A23\nsidebar-button-foreground: <<colour foreground>>\nsidebar-controls-foreground-hover: #2D2A23\nsidebar-controls-foreground: #867F69\nsidebar-foreground-shadow: transparent\nsidebar-foreground: #867F69\nsidebar-muted-foreground-hover: #706A58\nsidebar-muted-foreground: #B3A98C\nsidebar-tab-background-selected: #e0d3af\nsidebar-tab-background: #A6A193\nsidebar-tab-border-selected: #C3BAA1\nsidebar-tab-border: #C3BAA1\nsidebar-tab-divider: #CDC2A6\nsidebar-tab-foreground-selected: \nsidebar-tab-foreground: #2D2A23\nsidebar-tiddler-link-foreground-hover: #433F35\nsidebar-tiddler-link-foreground: #706A58\nsite-title-foreground: <<colour tiddler-title-foreground>>\nstatic-alert-foreground: #A6A193\ntab-background-selected: #E9E0C7\ntab-background: #A6A193\ntab-border-selected: #C3BAA1\ntab-border: #C3BAA1\ntab-divider: #CDC2A6\ntab-foreground-selected: <<colour tab-foreground>>\ntab-foreground: #2D2A23\ntable-border: #9D998E\ntable-footer-background: #8A8885\ntable-header-background: #B0AA98\ntag-background: #706A58\ntag-foreground: #E3D7B7\ntiddler-background: <<colour background>>\ntiddler-border: <<colour background>>\ntiddler-controls-foreground-hover: #9D947B\ntiddler-controls-foreground-selected: #706A58\ntiddler-controls-foreground: #C3BAA1\ntiddler-editor-background: #E9E0C7\ntiddler-editor-border-image: #A6A193\ntiddler-editor-border: #A6A193\ntiddler-editor-fields-even: #D6CBAA\ntiddler-editor-fields-odd: #C3BAA1\ntiddler-info-background: #E3D7B7\ntiddler-info-border: #BAB29C\ntiddler-info-tab-background: #E9E0C7\ntiddler-link-background: <<colour background>>\ntiddler-link-foreground: <<colour primary>>\ntiddler-subtitle-foreground: #867F69\ntiddler-title-foreground: #374464\ntoolbar-new-button: \ntoolbar-options-button: \ntoolbar-save-button: \ntoolbar-info-button: \ntoolbar-edit-button: \ntoolbar-close-button: \ntoolbar-delete-button: \ntoolbar-cancel-button: \ntoolbar-done-button: \nuntagged-background: #8A8885\nvery-muted-foreground: #CDC2A6\nwikilist-background: <<colour page-background>>\nwikilist-item: #CDC2A6\nwikilist-info: #161512\nwikilist-title: #433F35\nwikilist-title-svg: <<colour wikilist-title>>\nwikilist-url: #706A58\nwikilist-button-open: #7db66a\nwikilist-button-open-hover: #56a556\nwikilist-button-reveal: #5a6c9e\nwikilist-button-reveal-hover: #454591\nwikilist-button-remove: #bc5972\nwikilist-button-remove-hover: #814040\nwikilist-toolbar-background: #CDC2A6\nwikilist-toolbar-foreground: #2D2A23\nwikilist-droplink-dragover: rgba(255,192,192,0.5)\nwikilist-button-background: #A6A193\nwikilist-button-foreground: #161512\n"
        },
        "$:/palettes/GruvboxDark": {
            "title": "$:/palettes/GruvboxDark",
            "name": "Gruvbox Dark",
            "description": "Retro groove color scheme",
            "tags": "$:/tags/Palette",
            "type": "application/x-tiddler-dictionary",
            "license": "https://github.com/morhetz/gruvbox",
            "text": "alert-background: #cc241d\nalert-border: #cc241d\nalert-highlight: #d79921\nalert-muted-foreground: #504945\nbackground: #3c3836\nblockquote-bar: <<colour muted-foreground>>\nbutton-foreground: <<colour page-background>>\ncode-background: #504945\ncode-border: #504945\ncode-foreground: #fb4934\ndiff-delete-background: #fb4934\ndiff-delete-foreground: <<colour foreground>>\ndiff-equal-background: \ndiff-equal-foreground: <<colour foreground>>\ndiff-insert-background: #b8bb26\ndiff-insert-foreground: <<colour foreground>>\ndiff-invisible-background: \ndiff-invisible-foreground: <<colour muted-foreground>>\ndirty-indicator: #fb4934\ndownload-background: #b8bb26\ndownload-foreground: <<colour background>>\ndragger-background: <<colour foreground>>\ndragger-foreground: <<colour background>>\ndropdown-background: #665c54\ndropdown-border: <<colour background>>\ndropdown-tab-background-selected: #ebdbb2\ndropdown-tab-background: #665c54\ndropzone-background: #98971a\nexternal-link-background-hover: inherit\nexternal-link-background-visited: inherit\nexternal-link-background: inherit\nexternal-link-foreground-hover: inherit\nexternal-link-foreground-visited: #d3869b\nexternal-link-foreground: #8ec07c\nforeground: #fbf1c7\nmenubar-background: #504945\nmenubar-foreground: <<colour foreground>>\nmessage-background: #83a598\nmessage-border: #83a598\nmessage-foreground: #3c3836\nmodal-backdrop: <<colour foreground>>\nmodal-background: <<colour background>>\nmodal-border: #504945\nmodal-footer-background: #3c3836\nmodal-footer-border: #3c3836\nmodal-header-border: #3c3836\nmuted-foreground: #d5c4a1\nnotification-background: <<colour primary>>\nnotification-border: <<colour primary>>\npage-background: #282828\npre-background: #504945\npre-border: #504945\nprimary: #d79921\nselect-tag-background: #665c54\nselect-tag-foreground: <<colour foreground>>\nselection-background: #458588\nselection-foreground: <<colour foreground>>\nsidebar-button-foreground: <<colour page-background>>\nsidebar-controls-foreground-hover: #7c6f64\nsidebar-controls-foreground: #504945\nsidebar-foreground-shadow: transparent\nsidebar-foreground: #fbf1c7\nsidebar-muted-foreground-hover: #7c6f64\nsidebar-muted-foreground: #504945\nsidebar-tab-background-selected: #bdae93\nsidebar-tab-background: #3c3836\nsidebar-tab-border-selected: <<colour tab-border-selected>>\nsidebar-tab-border: #bdae93\nsidebar-tab-divider: <<colour page-background>>\nsidebar-tab-foreground-selected: #282828\nsidebar-tab-foreground: <<colour tab-foreground>>\nsidebar-tiddler-link-foreground-hover: #458588\nsidebar-tiddler-link-foreground: #98971a\nsite-title-foreground: <<colour tiddler-title-foreground>>\nstatic-alert-foreground: #B48EAD\ntab-background-selected: #ebdbb2\ntab-background: #665c54\ntab-border-selected: #665c54\ntab-border: #665c54\ntab-divider: #bdae93\ntab-foreground-selected: #282828\ntab-foreground: #ebdbb2\ntable-border: #7c6f64\ntable-footer-background: #665c54\ntable-header-background: #504945\ntag-background: #d3869b\ntag-foreground: #282828\ntiddler-background: <<colour background>>\ntiddler-border: <<colour background>>\ntiddler-controls-foreground-hover: #7c6f64\ntiddler-controls-foreground-selected: <<colour primary>>\ntiddler-controls-foreground: #665c54\ntiddler-editor-background: #32302f\ntiddler-editor-border-image: #282828\ntiddler-editor-border: #282828\ntiddler-editor-fields-even: #504945\ntiddler-editor-fields-odd: #7c6f64\ntiddler-info-background: #32302f\ntiddler-info-border: #ebdbb2\ntiddler-info-tab-background: #ebdbb2\ntiddler-link-background: <<colour background>>\ntiddler-link-foreground: <<colour primary>>\ntiddler-subtitle-foreground: #7c6f64\ntiddler-title-foreground: #a89984\ntoolbar-new-button: \ntoolbar-options-button: \ntoolbar-save-button: \ntoolbar-info-button: \ntoolbar-edit-button: \ntoolbar-close-button: \ntoolbar-delete-button: \ntoolbar-cancel-button: \ntoolbar-done-button: \nuntagged-background: #504945\nvery-muted-foreground: #bdae93\nwikilist-background: <<colour page-background>>\nwikilist-button-background: #acacac\nwikilist-button-foreground: <<colour button-foreground>>\nwikilist-item: <<colour background>>\nwikilist-toolbar-background: <<colour background>>\nwikilist-toolbar-foreground: <<colour foreground>>\nwikilist-title: <<colour foreground>>\nwikilist-title-svg: <<colour wikilist-title>>\nwikilist-url: <<colour muted-foreground>>\nwikilist-button-open-hover: <<colour primary>>\nwikilist-button-open: <<colour dropzone-background>>\nwikilist-button-remove: <<colour dirty-indicator>>\nwikilist-button-remove-hover: <<colour alert-background>>\nwikilist-droplink-dragover: <<colour dropzone-background>>\nwikilist-button-reveal: <<colour sidebar-tiddler-link-foreground-hover>>\nwikilist-button-reveal-hover: <<colour message-background>>\n"
        },
        "$:/palettes/Nord": {
            "title": "$:/palettes/Nord",
            "name": "Nord",
            "description": "An arctic, north-bluish color palette.",
            "tags": "$:/tags/Palette",
            "type": "application/x-tiddler-dictionary",
            "license": "MIT, arcticicestudio, https://github.com/arcticicestudio/nord/blob/develop/LICENSE.md",
            "text": "alert-background: #D08770\nalert-border: #D08770\nalert-highlight: #B48EAD\nalert-muted-foreground: #4C566A\nbackground: #3b4252\nblockquote-bar: <<colour muted-foreground>>\nbutton-foreground: <<colour page-background>>\ncode-background: #2E3440\ncode-border: #2E3440\ncode-foreground: #BF616A\ndiff-delete-background: #BF616A\ndiff-delete-foreground: <<colour foreground>>\ndiff-equal-background: \ndiff-equal-foreground: <<colour foreground>>\ndiff-insert-background: #A3BE8C\ndiff-insert-foreground: <<colour foreground>>\ndiff-invisible-background: \ndiff-invisible-foreground: <<colour muted-foreground>>\ndirty-indicator: #BF616A\ndownload-background: #A3BE8C\ndownload-foreground: <<colour background>>\ndragger-background: <<colour foreground>>\ndragger-foreground: <<colour background>>\ndropdown-background: <<colour background>>\ndropdown-border: <<colour background>>\ndropdown-tab-background-selected: #ECEFF4\ndropdown-tab-background: #4C566A\ndropzone-background: #A3BE8C\nexternal-link-background-hover: inherit\nexternal-link-background-visited: inherit\nexternal-link-background: inherit\nexternal-link-foreground-hover: inherit\nexternal-link-foreground-visited: #5E81AC\nexternal-link-foreground: #8FBCBB\nforeground: #d8dee9\nmenubar-background: #2E3440\nmenubar-foreground: #d8dee9\nmessage-background: #2E3440\nmessage-border: #2E3440\nmessage-foreground: #547599\nmodal-backdrop: <<colour foreground>>\nmodal-background: <<colour background>>\nmodal-border: #3b4252\nmodal-footer-background: #3b4252\nmodal-footer-border: #3b4252\nmodal-header-border: #3b4252\nmuted-foreground: #4C566A\nnotification-background: <<colour primary>>\nnotification-border: #EBCB8B\npage-background: #2e3440\npre-background: #2E3440\npre-border: #2E3440\nprimary: #5E81AC\nselect-tag-background: #3b4252\nselect-tag-foreground: <<colour foreground>>\nselection-background: #5E81AC\nselection-foreground: <<colour foreground>>\nsidebar-button-foreground: <<colour page-background>>\nsidebar-controls-foreground-hover: #D8DEE9\nsidebar-controls-foreground: #4C566A\nsidebar-foreground-shadow: transparent\nsidebar-foreground: #D8DEE9\nsidebar-muted-foreground-hover: #4C566A\nsidebar-muted-foreground: #4C566A\nsidebar-tab-background-selected: #ECEFF4\nsidebar-tab-background: #4C566A\nsidebar-tab-border-selected: <<colour tab-border-selected>>\nsidebar-tab-border: #4C566A\nsidebar-tab-divider: <<colour page-background>>\nsidebar-tab-foreground-selected: #4C566A\nsidebar-tab-foreground: <<colour tab-foreground>>\nsidebar-tiddler-link-foreground-hover: #A3BE8C\nsidebar-tiddler-link-foreground: #81A1C1\nsite-title-foreground: <<colour tiddler-title-foreground>>\nstatic-alert-foreground: #B48EAD\ntab-background-selected: #ECEFF4\ntab-background: #4C566A\ntab-border-selected: #4C566A\ntab-border: #4C566A\ntab-divider: #4C566A\ntab-foreground-selected: #4C566A\ntab-foreground: #D8DEE9\ntable-border: #4C566A\ntable-footer-background: #2e3440\ntable-header-background: #2e3440\ntag-background: #A3BE8C\ntag-foreground: #4C566A\ntiddler-background: <<colour background>>\ntiddler-border: <<colour background>>\ntiddler-controls-foreground-hover: \ntiddler-controls-foreground-selected: #EBCB8B\ntiddler-controls-foreground: #4C566A\ntiddler-editor-background: #2e3440\ntiddler-editor-border-image: #2e3440\ntiddler-editor-border: #3b4252\ntiddler-editor-fields-even: #2e3440\ntiddler-editor-fields-odd: #2e3440\ntiddler-info-background: #2e3440\ntiddler-info-border: #2e3440\ntiddler-info-tab-background: #2e3440\ntiddler-link-background: <<colour background>>\ntiddler-link-foreground: <<colour primary>>\ntiddler-subtitle-foreground: #4C566A\ntiddler-title-foreground: #81A1C1\ntoolbar-new-button: \ntoolbar-options-button: \ntoolbar-save-button: \ntoolbar-info-button: \ntoolbar-edit-button: \ntoolbar-close-button: \ntoolbar-delete-button: \ntoolbar-cancel-button: \ntoolbar-done-button: \nuntagged-background: #2d3038\nvery-muted-foreground: #2d3038\nwikilist-background: <<colour page-background>>\nwikilist-toolbar-background: <<colour background>>\nwikilist-item: <<colour background>>\nwikilist-title: <<colour foreground>>\nwikilist-info: <<colour muted-foreground>>\nwikilist-button-open: #A3BE8C\nwikilist-button-open-hover: #A3BE8C\nwikilist-button-reveal: #81A1C1\nwikilist-button-reveal-hover: #81A1C1\nwikilist-button-remove: #B48EAD\nwikilist-button-remove-hover: #B48EAD\n"
        },
        "$:/palettes/Rocker": {
            "title": "$:/palettes/Rocker",
            "name": "Rocker",
            "description": "A dark theme",
            "tags": "$:/tags/Palette",
            "type": "application/x-tiddler-dictionary",
            "text": "alert-background: #ffe476\nalert-border: #b99e2f\nalert-highlight: #881122\nalert-muted-foreground: #b99e2f\nbackground: #ffffff\nblockquote-bar: <<colour muted-foreground>>\nbutton-background:\nbutton-foreground:\nbutton-border:\ncode-background: #f7f7f9\ncode-border: #e1e1e8\ncode-foreground: #dd1144\ndirty-indicator: #ff0000\ndownload-background: #34c734\ndownload-foreground: <<colour background>>\ndragger-background: <<colour foreground>>\ndragger-foreground: <<colour background>>\ndropdown-background: <<colour background>>\ndropdown-border: <<colour muted-foreground>>\ndropdown-tab-background-selected: #fff\ndropdown-tab-background: #ececec\ndropzone-background: rgba(0,200,0,0.7)\nexternal-link-background-hover: inherit\nexternal-link-background-visited: inherit\nexternal-link-background: inherit\nexternal-link-foreground-hover: inherit\nexternal-link-foreground-visited: #0000aa\nexternal-link-foreground: #0000ee\nforeground: #333333\nmessage-background: #ecf2ff\nmessage-border: #cfd6e6\nmessage-foreground: #547599\nmodal-backdrop: <<colour foreground>>\nmodal-background: <<colour background>>\nmodal-border: #999999\nmodal-footer-background: #f5f5f5\nmodal-footer-border: #dddddd\nmodal-header-border: #eeeeee\nmuted-foreground: #999999\nnotification-background: #ffffdd\nnotification-border: #999999\npage-background: #000\npre-background: #f5f5f5\npre-border: #cccccc\nprimary: #cc0000\nselect-tag-background:\nselect-tag-foreground:\nsidebar-button-foreground: <<colour foreground>>\nsidebar-controls-foreground-hover: #000000\nsidebar-controls-foreground: #ffffff\nsidebar-foreground-shadow: rgba(255,255,255, 0.0)\nsidebar-foreground: #acacac\nsidebar-muted-foreground-hover: #444444\nsidebar-muted-foreground: #c0c0c0\nsidebar-tab-background-selected: #000\nsidebar-tab-background: <<colour tab-background>>\nsidebar-tab-border-selected: <<colour tab-border-selected>>\nsidebar-tab-border: <<colour tab-border>>\nsidebar-tab-divider: <<colour tab-divider>>\nsidebar-tab-foreground-selected: \nsidebar-tab-foreground: <<colour tab-foreground>>\nsidebar-tiddler-link-foreground-hover: #ffbb99\nsidebar-tiddler-link-foreground: #cc0000\nsite-title-foreground: <<colour tiddler-title-foreground>>\nstatic-alert-foreground: #aaaaaa\ntab-background-selected: #ffffff\ntab-background: #d8d8d8\ntab-border-selected: #d8d8d8\ntab-border: #cccccc\ntab-divider: #d8d8d8\ntab-foreground-selected: <<colour tab-foreground>>\ntab-foreground: #666666\ntable-border: #dddddd\ntable-footer-background: #a8a8a8\ntable-header-background: #f0f0f0\ntag-background: #ffbb99\ntag-foreground: #000\ntiddler-background: <<colour background>>\ntiddler-border: <<colour background>>\ntiddler-controls-foreground-hover: #888888\ntiddler-controls-foreground-selected: #444444\ntiddler-controls-foreground: #cccccc\ntiddler-editor-background: #f8f8f8\ntiddler-editor-border-image: #ffffff\ntiddler-editor-border: #cccccc\ntiddler-editor-fields-even: #e0e8e0\ntiddler-editor-fields-odd: #f0f4f0\ntiddler-info-background: #f8f8f8\ntiddler-info-border: #dddddd\ntiddler-info-tab-background: #f8f8f8\ntiddler-link-background: <<colour background>>\ntiddler-link-foreground: <<colour primary>>\ntiddler-subtitle-foreground: #c0c0c0\ntiddler-title-foreground: #cc0000\ntoolbar-new-button:\ntoolbar-options-button:\ntoolbar-save-button:\ntoolbar-info-button:\ntoolbar-edit-button:\ntoolbar-close-button:\ntoolbar-delete-button:\ntoolbar-cancel-button:\ntoolbar-done-button:\nuntagged-background: #999999\nvery-muted-foreground: #888888\n"
        },
        "$:/palettes/SolarFlare": {
            "title": "$:/palettes/SolarFlare",
            "name": "Solar Flare",
            "description": "Warm, relaxing earth colours",
            "tags": "$:/tags/Palette",
            "type": "application/x-tiddler-dictionary",
            "text": ": Background Tones\n\nbase03: #002b36\nbase02: #073642\n\n: Content Tones\n\nbase01: #586e75\nbase00: #657b83\nbase0: #839496\nbase1: #93a1a1\n\n: Background Tones\n\nbase2: #eee8d5\nbase3: #fdf6e3\n\n: Accent Colors\n\nyellow: #b58900\norange: #cb4b16\nred: #dc322f\nmagenta: #d33682\nviolet: #6c71c4\nblue: #268bd2\ncyan: #2aa198\ngreen: #859900\n\n: Additional Tones (RA)\n\nbase10: #c0c4bb\nviolet-muted: #7c81b0\nblue-muted: #4e7baa\n\nyellow-hot: #ffcc44\norange-hot: #eb6d20\nred-hot: #ff2222\nblue-hot: #2298ee\ngreen-hot: #98ee22\n\n: Palette\n\n: Do not use colour macro for background and foreground\nbackground: #fdf6e3\n    download-foreground: <<colour background>>\n    dragger-foreground: <<colour background>>\n    dropdown-background: <<colour background>>\n    modal-background: <<colour background>>\n    sidebar-foreground-shadow: <<colour background>>\n    tiddler-background: <<colour background>>\n    tiddler-border: <<colour background>>\n    tiddler-link-background: <<colour background>>\n    tab-background-selected: <<colour background>>\n        dropdown-tab-background-selected: <<colour tab-background-selected>>\nforeground: #657b83\n    dragger-background: <<colour foreground>>\n    tab-foreground: <<colour foreground>>\n        tab-foreground-selected: <<colour tab-foreground>>\n            sidebar-tab-foreground-selected: <<colour tab-foreground-selected>>\n        sidebar-tab-foreground: <<colour tab-foreground>>\n    sidebar-button-foreground: <<colour foreground>>\n    sidebar-controls-foreground: <<colour foreground>>\n    sidebar-foreground: <<colour foreground>>\n: base03\n: base02\n: base01\n    alert-muted-foreground: <<colour base01>>\n: base00\n    code-foreground: <<colour base00>>\n    message-foreground: <<colour base00>>\n    tag-foreground: <<colour base00>>\n: base0\n    sidebar-tiddler-link-foreground: <<colour base0>>\n: base1\n    muted-foreground: <<colour base1>>\n        blockquote-bar: <<colour muted-foreground>>\n        dropdown-border: <<colour muted-foreground>>\n        sidebar-muted-foreground: <<colour muted-foreground>>\n        tiddler-title-foreground: <<colour muted-foreground>>\n            site-title-foreground: <<colour tiddler-title-foreground>>\n: base2\n    modal-footer-background: <<colour base2>>\n    page-background: <<colour base2>>\n        modal-backdrop: <<colour page-background>>\n        notification-background: <<colour page-background>>\n        code-background: <<colour page-background>>\n            code-border: <<colour code-background>>\n        pre-background: <<colour page-background>>\n            pre-border: <<colour pre-background>>\n        sidebar-tab-background-selected: <<colour page-background>>\n    table-header-background: <<colour base2>>\n    tag-background: <<colour base2>>\n    tiddler-editor-background: <<colour base2>>\n    tiddler-info-background: <<colour base2>>\n    tiddler-info-tab-background: <<colour base2>>\n    tab-background: <<colour base2>>\n        dropdown-tab-background: <<colour tab-background>>\n: base3\n    alert-background: <<colour base3>>\n    message-background: <<colour base3>>\n: yellow\n: orange\n: red\n: magenta\n    alert-highlight: <<colour magenta>>\n: violet\n    external-link-foreground: <<colour violet>>\n: blue\n: cyan\n: green\n: base10\n    tiddler-controls-foreground: <<colour base10>>\n: violet-muted\n    external-link-foreground-visited: <<colour violet-muted>>\n: blue-muted\n    primary: <<colour blue-muted>>\n        download-background: <<colour primary>>\n        tiddler-link-foreground: <<colour primary>>\n\nalert-border: #b99e2f\ndirty-indicator: #ff0000\ndropzone-background: rgba(0,200,0,0.7)\nexternal-link-background-hover: inherit\nexternal-link-background-visited: inherit\nexternal-link-background: inherit\nexternal-link-foreground-hover: inherit\nmessage-border: #cfd6e6\nmodal-border: #999999\nselect-tag-background:\nselect-tag-foreground:\nsidebar-controls-foreground-hover:\nsidebar-muted-foreground-hover:\nsidebar-tab-background: #ded8c5\nsidebar-tiddler-link-foreground-hover:\nstatic-alert-foreground: #aaaaaa\ntab-border: #cccccc\n    modal-footer-border: <<colour tab-border>>\n    modal-header-border: <<colour tab-border>>\n    notification-border: <<colour tab-border>>\n    sidebar-tab-border: <<colour tab-border>>\n    tab-border-selected: <<colour tab-border>>\n        sidebar-tab-border-selected: <<colour tab-border-selected>>\ntab-divider: #d8d8d8\n    sidebar-tab-divider: <<colour tab-divider>>\ntable-border: #dddddd\ntable-footer-background: #a8a8a8\ntiddler-controls-foreground-hover: #888888\ntiddler-controls-foreground-selected: #444444\ntiddler-editor-border-image: #ffffff\ntiddler-editor-border: #cccccc\ntiddler-editor-fields-even: #e0e8e0\ntiddler-editor-fields-odd: #f0f4f0\ntiddler-info-border: #dddddd\ntiddler-subtitle-foreground: #c0c0c0\ntoolbar-new-button:\ntoolbar-options-button:\ntoolbar-save-button:\ntoolbar-info-button:\ntoolbar-edit-button:\ntoolbar-close-button:\ntoolbar-delete-button:\ntoolbar-cancel-button:\ntoolbar-done-button:\nuntagged-background: #999999\nvery-muted-foreground: #888888\n"
        },
        "$:/palettes/SolarizedDark": {
            "title": "$:/palettes/SolarizedDark",
            "tags": "$:/tags/Palette",
            "type": "application/x-tiddler-dictionary",
            "description": "Precision dark colors for machines and people",
            "license": "MIT, Ethan Schoonover, https://github.com/altercation/solarized/blob/master/LICENSE",
            "name": "SolarizedDark",
            "text": "alert-background: #073642\nalert-border: #93a1a1\nalert-highlight: #d33682\nalert-muted-foreground: #d33682\nbackground: #073642\nblockquote-bar: #d33682\nbutton-background: #073642\nbutton-border: #586e75\nbutton-foreground: #93a1a1\ncode-background: #073642\ncode-border: #586e75\ncode-foreground: #93a1a1\ndirty-indicator: inherit\ndownload-background: #859900\ndownload-foreground: #073642\ndragger-background: #073642\ndragger-foreground: #839496\ndropdown-background: #073642\ndropdown-border: #93a1a1\ndropdown-tab-background: #002b36\ndropdown-tab-background-selected: #073642\ndropzone-background: #859900\nexternal-link-background: inherit\nexternal-link-background-hover: inherit\nexternal-link-background-visited: inherit\nexternal-link-foreground: #268bd2\nexternal-link-foreground-hover:\nexternal-link-foreground-visited: #268bd2\nforeground: #839496\nmessage-background: #002b36\nmessage-border: #586e75\nmessage-foreground: #839496\nmodal-backdrop: #657b83\nmodal-background: #002b36\nmodal-border: #586e75\nmodal-footer-background: #073642\nmodal-footer-border: #586e75\nmodal-header-border: #586e75\nmuted-foreground: #93a1a1\nnotification-background: #002b36\nnotification-border: #586e75\npage-background: #073642\npre-background: inherit\npre-border: #657b83\nprimary: #859900\nselect-tag-background: #002b36\nselect-tag-foreground: #839496\nsidebar-button-foreground: #93a1a1\nsidebar-controls-foreground: #93a1a1\nsidebar-controls-foreground-hover: #eee8d5\nsidebar-foreground: #93a1a1\nsidebar-foreground-shadow: transparent\nsidebar-muted-foreground: #839496\nsidebar-muted-foreground-hover: #93a1a1\nsidebar-tab-background: #002b36\nsidebar-tab-background-selected: #073642\nsidebar-tab-border: #073642\nsidebar-tab-border-selected: #839496\nsidebar-tab-divider: #002b36\nsidebar-tab-foreground: #657b83\nsidebar-tab-foreground-selected: #93a1a1\nsidebar-tiddler-link-foreground: #2aa198\nsidebar-tiddler-link-foreground-hover: #eee8d5\nsite-title-foreground: #d33682\nstatic-alert-foreground: #93a1a1\ntab-background: #073642\ntab-background-selected: #002b36\ntab-border: #586e75\ntab-border-selected: #93a1a1\ntab-divider: #93a1a1\ntab-foreground: #839496\ntab-foreground-selected: #93a1a1\ntable-border: #586e75\ntable-footer-background: #073642\ntable-header-background: #073642\ntag-background: #b58900\ntag-foreground: #002b36\ntiddler-background: #002b36\ntiddler-border: #586e75\ntiddler-controls-foreground: inherit\ntiddler-controls-foreground-hover: #d33682\ntiddler-controls-foreground-selected: #2aa198\ntiddler-editor-background: #002b36\ntiddler-editor-border: #073642\ntiddler-editor-border-image: #002b36\ntiddler-editor-fields-even: #002b36\ntiddler-editor-fields-odd: #073642\ntiddler-info-background: #073642\ntiddler-info-border: #657b83\ntiddler-info-tab-background: #002b36\ntiddler-link-background: #002b36\ntiddler-link-foreground: #2aa198\ntiddler-subtitle-foreground: #839496\ntiddler-title-foreground: #d33682\ntoolbar-cancel-button: #839496\ntoolbar-close-button: #839496\ntoolbar-delete-button: #dc322f\ntoolbar-done-button: #839496\ntoolbar-edit-button: #839496\ntoolbar-info-button: #839496\ntoolbar-new-button: #839496\ntoolbar-options-button: #839496\ntoolbar-save-button: inherit\nuntagged-background: #586e75\nvery-muted-foreground: #586e75\n"
        },
        "$:/palettes/SolarizedLight": {
            "title": "$:/palettes/SolarizedLight",
            "tags": "$:/tags/Palette",
            "type": "application/x-tiddler-dictionary",
            "description": "Precision colors for machines and people",
            "license": "MIT, Ethan Schoonover, https://github.com/altercation/solarized/blob/master/LICENSE",
            "name": "SolarizedLight",
            "text": "alert-background: #eee8d5\nalert-border: #586e75\nalert-highlight: #d33682\nalert-muted-foreground: #d33682\nbackground: #eee8d5\nblockquote-bar: #d33682\nbutton-background: #eee8d5\nbutton-border: #93a1a1\nbutton-foreground: #586e75\ncode-background: #eee8d5\ncode-border: #93a1a1\ncode-foreground: #586e75\ndirty-indicator: inherit\ndownload-background: #859900\ndownload-foreground: #eee8d5\ndragger-background: #eee8d5\ndragger-foreground: #657b83\ndropdown-background: #eee8d5\ndropdown-border: #586e75\ndropdown-tab-background: #fdf6e3\ndropdown-tab-background-selected: #eee8d5\ndropzone-background: #859900\nexternal-link-background: inherit\nexternal-link-background-hover: inherit\nexternal-link-background-visited: inherit\nexternal-link-foreground: #268bd2\nexternal-link-foreground-hover: inherit\nexternal-link-foreground-visited: #268bd2\nforeground: #657b83\nmessage-background: #fdf6e3\nmessage-border: #93a1a1\nmessage-foreground: #657b83\nmodal-backdrop: #839496\nmodal-background: #fdf6e3\nmodal-border: #93a1a1\nmodal-footer-background: #eee8d5\nmodal-footer-border: #93a1a1\nmodal-header-border: #93a1a1\nmuted-foreground: #586e75\nnotification-background: #fdf6e3\nnotification-border: #93a1a1\npage-background: #eee8d5\npre-background: #eee8d5\npre-border: #839496\nprimary: #859900\nselect-tag-background: #fdf6e3\nselect-tag-foreground: #657b83\nsidebar-button-foreground: #586e75\nsidebar-controls-foreground: #586e75\nsidebar-controls-foreground-hover: #d33682\nsidebar-foreground: #586e75\nsidebar-foreground-shadow: transparent\nsidebar-muted-foreground: #657b83\nsidebar-muted-foreground-hover: #586e75\nsidebar-tab-background: #fdf6e3\nsidebar-tab-background-selected: #eee8d5\nsidebar-tab-border: #eee8d5\nsidebar-tab-border-selected: #657b83\nsidebar-tab-divider: #fdf6e3\nsidebar-tab-foreground: #839496\nsidebar-tab-foreground-selected: #586e75\nsidebar-tiddler-link-foreground: #2aa198\nsidebar-tiddler-link-foreground-hover: #002b36\nsite-title-foreground: #d33682\nstatic-alert-foreground: #586e75\ntab-background: #eee8d5\ntab-background-selected: #fdf6e3\ntab-border: #93a1a1\ntab-border-selected: #586e75\ntab-divider: #586e75\ntab-foreground: #657b83\ntab-foreground-selected: #586e75\ntable-border: #93a1a1\ntable-footer-background: #eee8d5\ntable-header-background: #eee8d5\ntag-background: #b58900\ntag-foreground: #fdf6e3\ntiddler-background: #fdf6e3\ntiddler-border: #93a1a1\ntiddler-controls-foreground: inherit\ntiddler-controls-foreground-hover: #d33682\ntiddler-controls-foreground-selected: #2aa198\ntiddler-editor-background: #fdf6e3\ntiddler-editor-border: #eee8d5\ntiddler-editor-border-image: #fdf6e3\ntiddler-editor-fields-even: #fdf6e3\ntiddler-editor-fields-odd: #eee8d5\ntiddler-info-background: #eee8d5\ntiddler-info-border: #839496\ntiddler-info-tab-background: #fdf6e3\ntiddler-link-background: #fdf6e3\ntiddler-link-foreground: #2aa198\ntiddler-subtitle-foreground: #657b83\ntiddler-title-foreground: #d33682\ntoolbar-cancel-button: #657b83\ntoolbar-close-button: #657b83\ntoolbar-delete-button: #dc322f\ntoolbar-done-button: #657b83\ntoolbar-edit-button: #657b83\ntoolbar-info-button: #657b83\ntoolbar-new-button: #657b83\ntoolbar-options-button: #657b83\ntoolbar-save-button: inherit\nuntagged-background: #586e75\nvery-muted-foreground: #93a1a1\n"
        },
        "$:/palettes/SpartanDay": {
            "title": "$:/palettes/SpartanDay",
            "tags": "$:/tags/Palette",
            "type": "application/x-tiddler-dictionary",
            "description": "Cold, spartan day colors",
            "name": "Spartan Day",
            "text": "alert-background: <<colour background>>\nalert-border: <<colour very-muted-foreground>>\nalert-highlight: <<colour very-muted-foreground>>\nalert-muted-foreground: <<colour muted-foreground>>\nbackground: #FAFAFA\nblockquote-bar: <<colour page-background>>\nbutton-background: transparent\nbutton-foreground: inherit\nbutton-border: <<colour tag-background>>\ncode-background: #ececec\ncode-border: #ececec\ncode-foreground: \ndirty-indicator: #c80000\ndownload-background: <<colour primary>>\ndownload-foreground: <<colour background>>\ndragger-background: <<colour foreground>>\ndragger-foreground: <<colour background>>\ndropdown-background: #FFFFFF\ndropdown-border: <<colour dropdown-background>>\ndropdown-tab-background-selected: <<colour dropdown-background>>\ndropdown-tab-background: #F5F5F5\ndropzone-background: <<colour tag-background>>\nexternal-link-background-hover: transparent\nexternal-link-background-visited: transparent\nexternal-link-background: transparent\nexternal-link-foreground-hover: \nexternal-link-foreground-visited: \nexternal-link-foreground: \nforeground: rgba(0, 0, 0, 0.87)\nmessage-background: <<colour background>>\nmessage-border: <<colour very-muted-foreground>>\nmessage-foreground: rgba(0, 0, 0, 0.54)\nmodal-backdrop: <<colour foreground>>\nmodal-background: <<colour background>>\nmodal-border: <<colour very-muted-foreground>>\nmodal-footer-background: <<colour background>>\nmodal-footer-border: <<colour very-muted-foreground>>\nmodal-header-border: <<colour very-muted-foreground>>\nmuted-foreground: rgba(0, 0, 0, 0.54)\nnotification-background: <<colour dropdown-background>>\nnotification-border: <<colour dropdown-background>>\npage-background: #f4f4f4\npre-background: #ececec\npre-border: #ececec\nprimary: #3949ab\nselect-tag-background: <<colour background>>\nselect-tag-foreground: <<colour foreground>>\nsidebar-button-foreground: <<colour foreground>>\nsidebar-controls-foreground-hover: #aeaeae\nsidebar-controls-foreground: #c6c6c6\nsidebar-foreground-shadow: transparent\nsidebar-foreground: rgba(0, 0, 0, 0.54)\nsidebar-muted-foreground-hover: rgba(0, 0, 0, 0.54)\nsidebar-muted-foreground: rgba(0, 0, 0, 0.38)\nsidebar-tab-background-selected: <<colour page-background>>\nsidebar-tab-background: transparent\nsidebar-tab-border-selected: <<colour table-border>>\nsidebar-tab-border: transparent\nsidebar-tab-divider: <<colour table-border>>\nsidebar-tab-foreground-selected: rgba(0, 0, 0, 0.87)\nsidebar-tab-foreground: rgba(0, 0, 0, 0.54)\nsidebar-tiddler-link-foreground-hover: rgba(0, 0, 0, 0.87)\nsidebar-tiddler-link-foreground: rgba(0, 0, 0, 0.54)\nsite-title-foreground: rgba(0, 0, 0, 0.87)\nstatic-alert-foreground: #aaaaaa\ntab-background-selected: <<colour background>>\ntab-background: transparent\ntab-border-selected: <<colour table-border>>\ntab-border: transparent\ntab-divider: <<colour table-border>>\ntab-foreground-selected: rgba(0, 0, 0, 0.87)\ntab-foreground: rgba(0, 0, 0, 0.54)\ntable-border: #d8d8d8\ntable-footer-background: <<colour tiddler-editor-fields-odd>>\ntable-header-background: <<colour tiddler-editor-fields-even>>\ntag-background: #ec6\ntag-foreground: <<colour button-foreground>>\ntiddler-background: <<colour background>>\ntiddler-border: #f9f9f9\ntiddler-controls-foreground-hover: <<colour sidebar-controls-foreground-hover>>\ntiddler-controls-foreground-selected: <<colour sidebar-controls-foreground-hover>>\ntiddler-controls-foreground: <<colour sidebar-controls-foreground>>\ntiddler-editor-background: transparent\ntiddler-editor-border-image: \ntiddler-editor-border: #e8e7e7\ntiddler-editor-fields-even: rgba(0, 0, 0, 0.1)\ntiddler-editor-fields-odd: rgba(0, 0, 0, 0.04)\ntiddler-info-background: #F5F5F5\ntiddler-info-border: #F5F5F5\ntiddler-info-tab-background: <<colour tiddler-editor-fields-odd>>\ntiddler-link-background: <<colour background>>\ntiddler-link-foreground: <<colour primary>>\ntiddler-subtitle-foreground: <<colour muted-foreground>>\ntiddler-title-foreground: #000000\ntoolbar-new-button: \ntoolbar-options-button: \ntoolbar-save-button: \ntoolbar-info-button: \ntoolbar-edit-button: \ntoolbar-close-button: \ntoolbar-delete-button: \ntoolbar-cancel-button: \ntoolbar-done-button: \nuntagged-background: <<colour very-muted-foreground>>\nvery-muted-foreground: rgba(0, 0, 0, 0.12)\n"
        },
        "$:/palettes/SpartanNight": {
            "title": "$:/palettes/SpartanNight",
            "tags": "$:/tags/Palette",
            "type": "application/x-tiddler-dictionary",
            "description": "Dark spartan colors",
            "name": "Spartan Night",
            "text": "alert-background: <<colour background>>\nalert-border: <<colour very-muted-foreground>>\nalert-highlight: <<colour very-muted-foreground>>\nalert-muted-foreground: <<colour muted-foreground>>\nbackground: #303030\nblockquote-bar: <<colour page-background>>\nbutton-background: transparent\nbutton-foreground: inherit\nbutton-border: <<colour tag-background>>\ncode-background: <<colour pre-background>>\ncode-border: <<colour pre-border>>\ncode-foreground: rgba(255, 255, 255, 0.54)\ndirty-indicator: #c80000\ndownload-background: <<colour primary>>\ndownload-foreground: <<colour foreground>>\ndragger-background: <<colour foreground>>\ndragger-foreground: <<colour background>>\ndropdown-background: #424242\ndropdown-border: <<colour dropdown-background>>\ndropdown-tab-background-selected: <<colour dropdown-background>>\ndropdown-tab-background: #050505\ndropzone-background: <<colour tag-background>>\nexternal-link-background-hover: transparent\nexternal-link-background-visited: transparent\nexternal-link-background: transparent\nexternal-link-foreground-hover: \nexternal-link-foreground-visited: #7c318c\nexternal-link-foreground: #9e3eb3\nforeground: rgba(255, 255, 255, 0.7)\nmessage-background: <<colour background>>\nmessage-border: <<colour very-muted-foreground>>\nmessage-foreground: rgba(255, 255, 255, 0.54)\nmodal-backdrop: <<colour page-background>>\nmodal-background: <<colour background>>\nmodal-border: <<colour very-muted-foreground>>\nmodal-footer-background: <<colour background>>\nmodal-footer-border: <<colour background>>\nmodal-header-border: <<colour very-muted-foreground>>\nmuted-foreground: rgba(255, 255, 255, 0.54)\nnotification-background: <<colour dropdown-background>>\nnotification-border: <<colour dropdown-background>>\npage-background: #212121\npre-background: #2a2a2a\npre-border: transparent\nprimary: #5656f3\nselect-tag-background: <<colour background>>\nselect-tag-foreground: <<colour foreground>>\nsidebar-button-foreground: <<colour foreground>>\nsidebar-controls-foreground-hover: #494949\nsidebar-controls-foreground: #5d5d5d\nsidebar-foreground-shadow: transparent\nsidebar-foreground: rgba(255, 255, 255, 0.54)\nsidebar-muted-foreground-hover: rgba(255, 255, 255, 0.54)\nsidebar-muted-foreground: rgba(255, 255, 255, 0.38)\nsidebar-tab-background-selected: <<colour page-background>>\nsidebar-tab-background: transparent\nsidebar-tab-border-selected: <<colour table-border>>\nsidebar-tab-border: transparent\nsidebar-tab-divider: <<colour table-border>>\nsidebar-tab-foreground-selected: rgba(255, 255, 255, 0.87)\nsidebar-tab-foreground: rgba(255, 255, 255, 0.54)\nsidebar-tiddler-link-foreground-hover: rgba(255, 255, 255, 0.7)\nsidebar-tiddler-link-foreground: rgba(255, 255, 255, 0.54)\nsite-title-foreground: rgba(255, 255, 255, 0.7)\nstatic-alert-foreground: #aaaaaa\ntab-background-selected: <<colour background>>\ntab-background: transparent\ntab-border-selected: <<colour table-border>>\ntab-border: transparent\ntab-divider: <<colour table-border>>\ntab-foreground-selected: rgba(255, 255, 255, 0.87)\ntab-foreground: rgba(255, 255, 255, 0.54)\ntable-border: #3a3a3a\ntable-footer-background: <<colour tiddler-editor-fields-odd>>\ntable-header-background: <<colour tiddler-editor-fields-even>>\ntag-background: #ec6\ntag-foreground: <<colour button-foreground>>\ntiddler-background: <<colour background>>\ntiddler-border: rgb(55,55,55)\ntiddler-controls-foreground-hover: <<colour sidebar-controls-foreground-hover>>\ntiddler-controls-foreground-selected: <<colour sidebar-controls-foreground-hover>>\ntiddler-controls-foreground: <<colour sidebar-controls-foreground>>\ntiddler-editor-background: transparent\ntiddler-editor-border-image: \ntiddler-editor-border: rgba(255, 255, 255, 0.08)\ntiddler-editor-fields-even: rgba(255, 255, 255, 0.1)\ntiddler-editor-fields-odd: rgba(255, 255, 255, 0.04)\ntiddler-info-background: #454545\ntiddler-info-border: #454545\ntiddler-info-tab-background: <<colour tiddler-editor-fields-odd>>\ntiddler-link-background: <<colour background>>\ntiddler-link-foreground: <<colour primary>>\ntiddler-subtitle-foreground: <<colour muted-foreground>>\ntiddler-title-foreground: #FFFFFF\ntoolbar-new-button: \ntoolbar-options-button: \ntoolbar-save-button: \ntoolbar-info-button: \ntoolbar-edit-button: \ntoolbar-close-button: \ntoolbar-delete-button: \ntoolbar-cancel-button: \ntoolbar-done-button: \nuntagged-background: <<colour very-muted-foreground>>\nvery-muted-foreground: rgba(255, 255, 255, 0.12)\n"
        },
        "$:/palettes/Twilight": {
            "title": "$:/palettes/Twilight",
            "tags": "$:/tags/Palette",
            "author": "Thomas Elmiger",
            "type": "application/x-tiddler-dictionary",
            "name": "Twilight",
            "description": "Delightful, soft darkness.",
            "text": "alert-background: rgb(255, 255, 102)\nalert-border: rgb(232, 232, 125)\nalert-highlight: rgb(255, 51, 51)\nalert-muted-foreground: rgb(224, 82, 82)\nbackground: rgb(38, 38, 38)\nblockquote-bar: rgba(240, 196, 117, 0.7)\nbutton-background: rgb(63, 63, 63)\nbutton-border: rgb(127, 127, 127)\nbutton-foreground: rgb(179, 179, 179)\ncode-background: rgba(0,0,0,0.03)\ncode-border: rgba(0,0,0,0.08)\ncode-foreground: rgb(255, 94, 94)\ndiff-delete-background: #ffc9c9\ndiff-delete-foreground: <<colour foreground>>\ndiff-equal-background: \ndiff-equal-foreground: <<colour foreground>>\ndiff-insert-background: #aaefad\ndiff-insert-foreground: <<colour foreground>>\ndiff-invisible-background: \ndiff-invisible-foreground: <<colour muted-foreground>>\ndirty-indicator: rgb(255, 94, 94)\ndownload-background: #19a974\ndownload-foreground: rgb(38, 38, 38)\ndragger-background: rgb(179, 179, 179)\ndragger-foreground: rgb(38, 38, 38)\ndropdown-background: rgb(38, 38, 38)\ndropdown-border: rgb(255, 255, 255)\ndropdown-tab-background: rgba(0,0,0,.1)\ndropdown-tab-background-selected: rgba(255,255,255,1)\ndropzone-background: #9eebcf\nexternal-link-background: inherit\nexternal-link-background-hover: inherit\nexternal-link-background-visited: inherit\nexternal-link-foreground: rgb(179, 179, 255)\nexternal-link-foreground-hover: inherit\nexternal-link-foreground-visited: rgb(153, 153, 255)\nforeground: rgb(179, 179, 179)\nmessage-background: <<colour tag-foreground>>\nmessage-border: #96ccff\nmessage-foreground: <<colour tag-background>>\nmodal-backdrop: rgb(179, 179, 179)\nmodal-background: rgb(38, 38, 38)\nmodal-border: rgba(0,0,0,.5)\nmodal-footer-background: #f4f4f4\nmodal-footer-border: rgba(0,0,0,.1)\nmodal-header-border: rgba(0,0,0,.2)\nmuted-foreground: rgb(255, 255, 255)\nnotification-background: <<colour tag-foreground>>\nnotification-border: <<colour tag-background>>\npage-background: rgb(26, 26, 26)\npre-background: rgb(25, 25, 25)\npre-border: rgba(0,0,0,.2)\nprimary: rgb(255, 201, 102)\nselect-tag-background: \nselect-tag-foreground: \nsidebar-button-foreground: rgb(179, 179, 179)\nsidebar-controls-foreground: rgb(153, 153, 153)\nsidebar-controls-foreground-hover: <<colour tiddler-controls-foreground-hover>>\nsidebar-foreground: rgb(141, 141, 141)\nsidebar-foreground-shadow: transparent\nsidebar-muted-foreground: rgba(0, 0, 0, 0.5)\nsidebar-muted-foreground-hover: rgb(141, 141, 141)\nsidebar-tab-background: rgba(141, 141, 141, 0.2)\nsidebar-tab-background-selected: rgb(26, 26, 26)\nsidebar-tab-border: rgb(127, 127, 127)\nsidebar-tab-border-selected: rgb(127, 127, 127)\nsidebar-tab-divider: rgb(127, 127, 127)\nsidebar-tab-foreground: rgb(179, 179, 179)\nsidebar-tab-foreground-selected: rgb(179, 179, 179)\nsidebar-tiddler-link-foreground: rgb(179, 179, 179)\nsidebar-tiddler-link-foreground-hover: rgb(115, 115, 115)\nsite-title-foreground: rgb(255, 201, 102)\nstatic-alert-foreground: rgba(0,0,0,.3)\ntab-background: rgba(0,0,0,0.125)\ntab-background-selected: rgb(38, 38, 38)\ntab-border: rgb(255, 201, 102)\ntab-border-selected: rgb(255, 201, 102)\ntab-divider: rgb(255, 201, 102)\ntab-foreground: rgb(179, 179, 179)\ntab-foreground-selected: rgb(179, 179, 179)\ntable-border: rgba(255,255,255,.3)\ntable-footer-background: rgba(0,0,0,.4)\ntable-header-background: rgba(0,0,0,.1)\ntag-background: rgb(255, 201, 102)\ntag-foreground: rgb(25, 25, 25)\ntiddler-background: rgb(38, 38, 38)\ntiddler-border: rgba(240, 196, 117, 0.7)\ntiddler-controls-foreground: rgb(128, 128, 128)\ntiddler-controls-foreground-hover: rgba(255, 255, 255, 0.8)\ntiddler-controls-foreground-selected: rgba(255, 255, 255, 0.9)\ntiddler-editor-background: rgb(33, 33, 33)\ntiddler-editor-border: rgb(63, 63, 63)\ntiddler-editor-border-image: rgb(25, 25, 25)\ntiddler-editor-fields-even: rgb(33, 33, 33)\ntiddler-editor-fields-odd: rgb(28, 28, 28)\ntiddler-info-background: rgb(43, 43, 43)\ntiddler-info-border: rgb(25, 25, 25)\ntiddler-info-tab-background: rgb(43, 43, 43)\ntiddler-link-background: rgb(38, 38, 38)\ntiddler-link-foreground: rgb(204, 204, 255)\ntiddler-subtitle-foreground: rgb(255, 255, 255)\ntiddler-title-foreground: rgb(255, 192, 76)\ntoolbar-cancel-button: \ntoolbar-close-button: \ntoolbar-delete-button: \ntoolbar-done-button: \ntoolbar-edit-button: \ntoolbar-info-button: \ntoolbar-new-button: \ntoolbar-options-button: \ntoolbar-save-button: \nuntagged-background: rgb(255, 255, 255)\nvery-muted-foreground: rgba(240, 196, 117, 0.7)\n"
        },
        "$:/palettes/Vanilla": {
            "title": "$:/palettes/Vanilla",
            "name": "Vanilla",
            "description": "Pale and unobtrusive",
            "tags": "$:/tags/Palette",
            "type": "application/x-tiddler-dictionary",
            "text": "alert-background: #ffe476\nalert-border: #b99e2f\nalert-highlight: #881122\nalert-muted-foreground: #b99e2f\nbackground: #ffffff\nblockquote-bar: <<colour muted-foreground>>\nbutton-background:\nbutton-foreground:\nbutton-border:\ncode-background: #f7f7f9\ncode-border: #e1e1e8\ncode-foreground: #dd1144\ndiff-delete-background: #ffc9c9\ndiff-delete-foreground: <<colour foreground>>\ndiff-equal-background: \ndiff-equal-foreground: <<colour foreground>>\ndiff-insert-background: #aaefad\ndiff-insert-foreground: <<colour foreground>>\ndiff-invisible-background: \ndiff-invisible-foreground: <<colour muted-foreground>>\ndirty-indicator: #ff0000\ndownload-background: #34c734\ndownload-foreground: <<colour background>>\ndragger-background: <<colour foreground>>\ndragger-foreground: <<colour background>>\ndropdown-background: <<colour background>>\ndropdown-border: <<colour muted-foreground>>\ndropdown-tab-background-selected: #fff\ndropdown-tab-background: #ececec\ndropzone-background: rgba(0,200,0,0.7)\nexternal-link-background-hover: inherit\nexternal-link-background-visited: inherit\nexternal-link-background: inherit\nexternal-link-foreground-hover: inherit\nexternal-link-foreground-visited: #0000aa\nexternal-link-foreground: #0000ee\nforeground: #333333\nmessage-background: #ecf2ff\nmessage-border: #cfd6e6\nmessage-foreground: #547599\nmodal-backdrop: <<colour foreground>>\nmodal-background: <<colour background>>\nmodal-border: #999999\nmodal-footer-background: #f5f5f5\nmodal-footer-border: #dddddd\nmodal-header-border: #eeeeee\nmuted-foreground: #bbb\nnotification-background: #ffffdd\nnotification-border: #999999\npage-background: #f4f4f4\npre-background: #f5f5f5\npre-border: #cccccc\nprimary: #5778d8\nselection-background:\nselection-foreground:\nselect-tag-background:\nselect-tag-foreground:\nsidebar-button-foreground: <<colour foreground>>\nsidebar-controls-foreground-hover: #000000\nsidebar-controls-foreground: #aaaaaa\nsidebar-foreground-shadow: rgba(255,255,255, 0.8)\nsidebar-foreground: #acacac\nsidebar-muted-foreground-hover: #444444\nsidebar-muted-foreground: #c0c0c0\nsidebar-tab-background-selected: #f4f4f4\nsidebar-tab-background: #e0e0e0\nsidebar-tab-border-selected: <<colour tab-border-selected>>\nsidebar-tab-border: <<colour tab-border>>\nsidebar-tab-divider: #e4e4e4\nsidebar-tab-foreground-selected:\nsidebar-tab-foreground: <<colour tab-foreground>>\nsidebar-tiddler-link-foreground-hover: #444444\nsidebar-tiddler-link-foreground: #999999\nsite-title-foreground: <<colour tiddler-title-foreground>>\nstatic-alert-foreground: #aaaaaa\ntab-background-selected: #ffffff\ntab-background: #d8d8d8\ntab-border-selected: #d8d8d8\ntab-border: #cccccc\ntab-divider: #d8d8d8\ntab-foreground-selected: <<colour tab-foreground>>\ntab-foreground: #666666\ntable-border: #dddddd\ntable-footer-background: #a8a8a8\ntable-header-background: #f0f0f0\ntag-background: #ec6\ntag-foreground: #ffffff\ntiddler-background: <<colour background>>\ntiddler-border: <<colour background>>\ntiddler-controls-foreground-hover: #888888\ntiddler-controls-foreground-selected: #444444\ntiddler-controls-foreground: #cccccc\ntiddler-editor-background: #f8f8f8\ntiddler-editor-border-image: #ffffff\ntiddler-editor-border: #cccccc\ntiddler-editor-fields-even: #e0e8e0\ntiddler-editor-fields-odd: #f0f4f0\ntiddler-info-background: #f8f8f8\ntiddler-info-border: #dddddd\ntiddler-info-tab-background: #f8f8f8\ntiddler-link-background: <<colour background>>\ntiddler-link-foreground: <<colour primary>>\ntiddler-subtitle-foreground: #c0c0c0\ntiddler-title-foreground: #182955\ntoolbar-new-button:\ntoolbar-options-button:\ntoolbar-save-button:\ntoolbar-info-button:\ntoolbar-edit-button:\ntoolbar-close-button:\ntoolbar-delete-button:\ntoolbar-cancel-button:\ntoolbar-done-button:\nuntagged-background: #999999\nvery-muted-foreground: #888888\nwikilist-background: #e5e5e5\nwikilist-item: #fff\nwikilist-info: #000\nwikilist-title: #666\nwikilist-title-svg: <<colour wikilist-title>>\nwikilist-url: #aaa\nwikilist-button-open: #4fb82b\nwikilist-button-open-hover: green\nwikilist-button-reveal: #5778d8\nwikilist-button-reveal-hover: blue\nwikilist-button-remove: #d85778\nwikilist-button-remove-hover: red\nwikilist-toolbar-background: #d3d3d3\nwikilist-toolbar-foreground: #888\nwikilist-droplink-dragover: rgba(255,192,192,0.5)\nwikilist-button-background: #acacac\nwikilist-button-foreground: #000\n"
        },
        "$:/core/readme": {
            "title": "$:/core/readme",
            "text": "This plugin contains TiddlyWiki's core components, comprising:\n\n* JavaScript code modules\n* Icons\n* Templates needed to create TiddlyWiki's user interface\n* British English (''en-GB'') translations of the localisable strings used by the core\n"
        },
        "$:/library/sjcl.js/license": {
            "title": "$:/library/sjcl.js/license",
            "type": "text/plain",
            "text": "SJCL is open. You can use, modify and redistribute it under a BSD\nlicense or under the GNU GPL, version 2.0.\n\n---------------------------------------------------------------------\n\nhttp://opensource.org/licenses/BSD-2-Clause\n\nCopyright (c) 2009-2015, Emily Stark, Mike Hamburg and Dan Boneh at\nStanford University. All rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are\nmet:\n\n1. Redistributions of source code must retain the above copyright\nnotice, this list of conditions and the following disclaimer.\n\n2. Redistributions in binary form must reproduce the above copyright\nnotice, this list of conditions and the following disclaimer in the\ndocumentation and/or other materials provided with the distribution.\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS\nIS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED\nTO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A\nPARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\nHOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\nSPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED\nTO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR\nPROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF\nLIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING\nNEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS\nSOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n\n---------------------------------------------------------------------\n\nhttp://opensource.org/licenses/GPL-2.0\n\nThe Stanford Javascript Crypto Library (hosted here on GitHub) is a\nproject by the Stanford Computer Security Lab to build a secure,\npowerful, fast, small, easy-to-use, cross-browser library for\ncryptography in Javascript.\n\nCopyright (c) 2009-2015, Emily Stark, Mike Hamburg and Dan Boneh at\nStanford University.\n\nThis program is free software; you can redistribute it and/or modify it\nunder the terms of the GNU General Public License as published by the\nFree Software Foundation; either version 2 of the License, or (at your\noption) any later version.\n\nThis program is distributed in the hope that it will be useful, but\nWITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General\nPublic License for more details.\n\nYou should have received a copy of the GNU General Public License along\nwith this program; if not, write to the Free Software Foundation, Inc.,\n59 Temple Place, Suite 330, Boston, MA 02111-1307 USA"
        },
        "$:/core/templates/MOTW.html": {
            "title": "$:/core/templates/MOTW.html",
            "text": "\\rules only filteredtranscludeinline transcludeinline entity\n<!-- The following comment is called a MOTW comment and is necessary for the TiddlyIE Internet Explorer extension -->\n<!-- saved from url=(0021)https://tiddlywiki.com -->&#13;&#10;"
        },
        "$:/core/templates/alltiddlers.template.html": {
            "title": "$:/core/templates/alltiddlers.template.html",
            "type": "text/vnd.tiddlywiki-html",
            "text": "<!-- This template is provided for backwards compatibility with older versions of TiddlyWiki -->\n\n<$set name=\"exportFilter\" value=\"[!is[system]sort[title]]\">\n\n{{$:/core/templates/exporters/StaticRiver}}\n\n</$set>\n"
        },
        "$:/core/templates/canonical-uri-external-image": {
            "title": "$:/core/templates/canonical-uri-external-image",
            "text": "<!--\n\nThis template is used to assign the ''_canonical_uri'' field to external images.\n\nChange the `./images/` part to a different base URI. The URI can be relative or absolute.\n\n-->\n./images/<$view field=\"title\" format=\"doubleurlencoded\"/>"
        },
        "$:/core/templates/canonical-uri-external-raw": {
            "title": "$:/core/templates/canonical-uri-external-raw",
            "text": "<!--\n\nThis template is used to assign the ''_canonical_uri'' field to external raw files that are stored in the same directory\n\n-->\n<$view field=\"title\" format=\"doubleurlencoded\"/>"
        },
        "$:/core/templates/canonical-uri-external-text": {
            "title": "$:/core/templates/canonical-uri-external-text",
            "text": "<!--\n\nThis template is used to assign the ''_canonical_uri'' field to external text files.\n\nChange the `./text/` part to a different base URI. The URI can be relative or absolute.\n\n-->\n./text/<$view field=\"title\" format=\"doubleurlencoded\"/>.tid"
        },
        "$:/core/templates/css-tiddler": {
            "title": "$:/core/templates/css-tiddler",
            "text": "<!--\n\nThis template is used for saving CSS tiddlers as a style tag with data attributes representing the tiddler fields.\n\n-->`<style`<$fields template=' data-tiddler-$name$=\"$encoded_value$\"'></$fields>` type=\"text/css\">`<$view field=\"text\" format=\"text\" />`</style>`"
        },
        "$:/core/templates/exporters/CsvFile": {
            "title": "$:/core/templates/exporters/CsvFile",
            "tags": "$:/tags/Exporter",
            "description": "{{$:/language/Exporters/CsvFile}}",
            "extension": ".csv",
            "text": "<$macrocall $name=\"csvtiddlers\" filter=<<exportFilter>> format=\"quoted-comma-sep\" $output=\"text/raw\"/>\n"
        },
        "$:/core/templates/exporters/JsonFile": {
            "title": "$:/core/templates/exporters/JsonFile",
            "tags": "$:/tags/Exporter",
            "description": "{{$:/language/Exporters/JsonFile}}",
            "extension": ".json",
            "text": "<$macrocall $name=\"jsontiddlers\" filter=<<exportFilter>> $output=\"text/raw\"/>\n"
        },
        "$:/core/templates/exporters/StaticRiver": {
            "title": "$:/core/templates/exporters/StaticRiver",
            "tags": "$:/tags/Exporter",
            "description": "{{$:/language/Exporters/StaticRiver}}",
            "extension": ".html",
            "text": "\\define tv-wikilink-template() #$uri_encoded$\n\\define tv-config-toolbar-icons() no\n\\define tv-config-toolbar-text() no\n\\define tv-config-toolbar-class() tc-btn-invisible\n\\rules only filteredtranscludeinline transcludeinline\n<!doctype html>\n<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html;charset=utf-8\" />\n<meta name=\"generator\" content=\"TiddlyWiki\" />\n<meta name=\"tiddlywiki-version\" content=\"{{$:/core/templates/version}}\" />\n<meta name=\"format-detection\" content=\"telephone=no\">\n<link id=\"faviconLink\" rel=\"shortcut icon\" href=\"favicon.ico\">\n<title>{{$:/core/wiki/title}}</title>\n<div id=\"styleArea\">\n{{$:/boot/boot.css||$:/core/templates/css-tiddler}}\n</div>\n<style type=\"text/css\">\n{{$:/core/ui/PageStylesheet||$:/core/templates/wikified-tiddler}}\n</style>\n</head>\n<body class=\"tc-body\">\n{{$:/StaticBanner||$:/core/templates/html-tiddler}}\n<section class=\"tc-story-river tc-static-story-river\">\n{{$:/core/templates/exporters/StaticRiver/Content||$:/core/templates/html-tiddler}}\n</section>\n</body>\n</html>\n"
        },
        "$:/core/templates/exporters/StaticRiver/Content": {
            "title": "$:/core/templates/exporters/StaticRiver/Content",
            "text": "\\define renderContent()\n{{{ $(exportFilter)$ ||$:/core/templates/static-tiddler}}}\n\\end\n\\import [[$:/core/ui/PageMacros]] [all[shadows+tiddlers]tag[$:/tags/Macro]!has[draft.of]]\n<<renderContent>>\n"
        },
        "$:/core/templates/exporters/TidFile": {
            "title": "$:/core/templates/exporters/TidFile",
            "tags": "$:/tags/Exporter",
            "description": "{{$:/language/Exporters/TidFile}}",
            "extension": ".tid",
            "condition": "[<count>compare:lte[1]]",
            "text": "\\define renderContent()\n{{{ $(exportFilter)$ +[limit[1]] ||$:/core/templates/tid-tiddler}}}\n\\end\n\\import [[$:/core/ui/PageMacros]] [all[shadows+tiddlers]tag[$:/tags/Macro]!has[draft.of]]\n<<renderContent>>"
        },
        "$:/core/save/all-external-js": {
            "title": "$:/core/save/all-external-js",
            "text": "\\import [[$:/core/ui/PageMacros]] [all[shadows+tiddlers]tag[$:/tags/Macro]!has[draft.of]]\n\\define saveTiddlerFilter()\n[is[tiddler]] -[prefix[$:/state/popup/]] -[prefix[$:/temp/]] -[prefix[$:/HistoryList]] -[status[pending]plugin-type[import]] -[[$:/core]] -[[$:/boot/boot.css]] -[type[application/javascript]library[yes]] -[[$:/boot/boot.js]] -[[$:/boot/bootprefix.js]] +[sort[title]] $(publishFilter)$\n\\end\n{{$:/core/templates/tiddlywiki5-external-js.html}}\n"
        },
        "$:/core/templates/tiddlywiki5.js": {
            "title": "$:/core/templates/tiddlywiki5.js",
            "text": "\\rules only filteredtranscludeinline transcludeinline codeinline\n\n/*\n{{ $:/core/copyright.txt ||$:/core/templates/plain-text-tiddler}}\n`*/\n`<!--~~ Library modules ~~-->\n{{{ [is[system]type[application/javascript]library[yes]] ||$:/core/templates/plain-text-tiddler}}}\n<!--~~ Boot prefix ~~-->\n{{ $:/boot/bootprefix.js ||$:/core/templates/plain-text-tiddler}}\n<!--~~ Core plugin ~~-->\n{{$:/core/templates/tiddlywiki5.js/tiddlers}}\n<!--~~ Boot kernel ~~-->\n{{ $:/boot/boot.js ||$:/core/templates/plain-text-tiddler}}\n"
        },
        "$:/core/templates/tiddlywiki5.js/tiddlers": {
            "title": "$:/core/templates/tiddlywiki5.js/tiddlers",
            "text": "`\n$tw.preloadTiddlerArray(`<$text text=<<jsontiddlers \"[[$:/core]]\">>/>`);\n`\n"
        },
        "$:/core/templates/tiddlywiki5-external-js.html": {
            "title": "$:/core/templates/tiddlywiki5-external-js.html",
            "text": "\\rules only filteredtranscludeinline transcludeinline\n<!doctype html>\n{{$:/core/templates/MOTW.html}}<html lang=\"`<$text text={{{ [{$:/language}get[name]] }}}/>`\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html;charset=utf-8\" />\n<!--~~ Raw markup for the top of the head section ~~-->\n{{{ [all[shadows+tiddlers]tag[$:/tags/RawMarkupWikified/TopHead]] ||$:/core/templates/raw-static-tiddler}}}\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=Edge\"/>\n<meta name=\"application-name\" content=\"TiddlyWiki\" />\n<meta name=\"generator\" content=\"TiddlyWiki\" />\n<meta name=\"tiddlywiki-version\" content=\"{{$:/core/templates/version}}\" />\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\" />\n<meta name=\"apple-mobile-web-app-capable\" content=\"yes\" />\n<meta name=\"apple-mobile-web-app-status-bar-style\" content=\"black-translucent\" />\n<meta name=\"mobile-web-app-capable\" content=\"yes\"/>\n<meta name=\"format-detection\" content=\"telephone=no\" />\n<meta name=\"copyright\" content=\"{{$:/core/copyright.txt}}\" />\n<link id=\"faviconLink\" rel=\"shortcut icon\" href=\"favicon.ico\">\n<title>{{$:/core/wiki/title}}</title>\n<!--~~ This is a Tiddlywiki file. The points of interest in the file are marked with this pattern ~~-->\n\n<!--~~ Raw markup ~~-->\n{{{ [all[shadows+tiddlers]tag[$:/core/wiki/rawmarkup]] [all[shadows+tiddlers]tag[$:/tags/RawMarkup]] ||$:/core/templates/plain-text-tiddler}}}\n{{{ [all[shadows+tiddlers]tag[$:/tags/RawMarkupWikified]] ||$:/core/templates/raw-static-tiddler}}}\n</head>\n<body class=\"tc-body\">\n<!--~~ Raw markup for the top of the body section ~~-->\n{{{ [all[shadows+tiddlers]tag[$:/tags/RawMarkupWikified/TopBody]] ||$:/core/templates/raw-static-tiddler}}}\n<!--~~ Static styles ~~-->\n<div id=\"styleArea\">\n{{$:/boot/boot.css||$:/core/templates/css-tiddler}}\n</div>\n<!--~~ Static content for Google and browsers without JavaScript ~~-->\n<noscript>\n<div id=\"splashArea\">\n{{$:/core/templates/static.area}}\n</div>\n</noscript>\n<!--~~ Ordinary tiddlers ~~-->\n{{$:/core/templates/store.area.template.html}}\n<!--~~ Raw markup for the bottom of the body section ~~-->\n{{{ [all[shadows+tiddlers]tag[$:/tags/RawMarkupWikified/BottomBody]] ||$:/core/templates/raw-static-tiddler}}}\n</body>\n<script src=\"%24%3A%2Fcore%2Ftemplates%2Ftiddlywiki5.js\" onerror=\"alert('Error: Cannot load tiddlywiki.js');\"></script>\n</html>\n"
        },
        "$:/core/templates/html-div-skinny-tiddler": {
            "title": "$:/core/templates/html-div-skinny-tiddler",
            "text": "<!--\n\nThis template is a variant of $:/core/templates/html-div-tiddler used for saving skinny tiddlers (with no text field)\n\n-->`<div`<$fields template=' $name$=\"$encoded_value$\"'></$fields>`>\n<pre></pre>\n</div>`\n"
        },
        "$:/core/templates/html-div-tiddler": {
            "title": "$:/core/templates/html-div-tiddler",
            "text": "<!--\n\nThis template is used for saving tiddlers as an HTML DIV tag with attributes representing the tiddler fields.\n\n-->`<div`<$fields template=' $name$=\"$encoded_value$\"'></$fields>`>\n<pre>`<$view field=\"text\" format=\"htmlencoded\" />`</pre>\n</div>`\n"
        },
        "$:/core/templates/html-tiddler": {
            "title": "$:/core/templates/html-tiddler",
            "text": "<!--\n\nThis template is used for saving tiddlers as raw HTML\n\n--><$view field=\"text\" format=\"htmlwikified\" />"
        },
        "$:/core/templates/javascript-tiddler": {
            "title": "$:/core/templates/javascript-tiddler",
            "text": "<!--\n\nThis template is used for saving JavaScript tiddlers as a script tag with data attributes representing the tiddler fields.\n\n-->`<script`<$fields template=' data-tiddler-$name$=\"$encoded_value$\"'></$fields>` type=\"text/javascript\">`<$view field=\"text\" format=\"text\" />`</script>`"
        },
        "$:/core/templates/json-tiddler": {
            "title": "$:/core/templates/json-tiddler",
            "text": "<!--\n\nThis template is used for saving tiddlers as raw JSON\n\n--><$text text=<<jsontiddler>>/>"
        },
        "$:/core/templates/module-tiddler": {
            "title": "$:/core/templates/module-tiddler",
            "text": "<!--\n\nThis template is used for saving JavaScript tiddlers as a script tag with data attributes representing the tiddler fields. The body of the tiddler is wrapped in a call to the `$tw.modules.define` function in order to define the body of the tiddler as a module\n\n-->`<script`<$fields template=' data-tiddler-$name$=\"$encoded_value$\"'></$fields>` type=\"text/javascript\" data-module=\"yes\">$tw.modules.define(\"`<$view field=\"title\" format=\"jsencoded\" />`\",\"`<$view field=\"module-type\" format=\"jsencoded\" />`\",function(module,exports,require) {`<$view field=\"text\" format=\"text\" />`});\n</script>`"
        },
        "$:/core/templates/plain-text-tiddler": {
            "title": "$:/core/templates/plain-text-tiddler",
            "text": "<$view field=\"text\" format=\"text\" />"
        },
        "$:/core/templates/raw-static-tiddler": {
            "title": "$:/core/templates/raw-static-tiddler",
            "text": "<!--\n\nThis template is used for saving tiddlers as static HTML\n\n--><$view field=\"text\" format=\"plainwikified\" />"
        },
        "$:/core/save/all": {
            "title": "$:/core/save/all",
            "text": "\\import [[$:/core/ui/PageMacros]] [all[shadows+tiddlers]tag[$:/tags/Macro]!has[draft.of]]\n\\define saveTiddlerFilter()\n[is[tiddler]] -[prefix[$:/state/popup/]] -[prefix[$:/temp/]] -[prefix[$:/HistoryList]] -[status[pending]plugin-type[import]] -[[$:/boot/boot.css]] -[type[application/javascript]library[yes]] -[[$:/boot/boot.js]] -[[$:/boot/bootprefix.js]] +[sort[title]] $(publishFilter)$\n\\end\n{{$:/core/templates/tiddlywiki5.html}}\n"
        },
        "$:/core/save/empty": {
            "title": "$:/core/save/empty",
            "text": "\\define saveTiddlerFilter()\n[is[system]] -[prefix[$:/state/popup/]] -[[$:/boot/boot.css]] -[type[application/javascript]library[yes]] -[[$:/boot/boot.js]] -[[$:/boot/bootprefix.js]] +[sort[title]]\n\\end\n{{$:/core/templates/tiddlywiki5.html}}\n"
        },
        "$:/core/save/lazy-all": {
            "title": "$:/core/save/lazy-all",
            "text": "\\define saveTiddlerFilter()\n[is[system]] -[prefix[$:/state/popup/]] -[[$:/HistoryList]] -[[$:/boot/boot.css]] -[type[application/javascript]library[yes]] -[[$:/boot/boot.js]] -[[$:/boot/bootprefix.js]] +[sort[title]] \n\\end\n\\define skinnySaveTiddlerFilter()\n[!is[system]]\n\\end\n{{$:/core/templates/tiddlywiki5.html}}\n"
        },
        "$:/core/save/lazy-images": {
            "title": "$:/core/save/lazy-images",
            "text": "\\define saveTiddlerFilter()\n[is[tiddler]] -[prefix[$:/state/popup/]] -[[$:/HistoryList]] -[[$:/boot/boot.css]] -[type[application/javascript]library[yes]] -[[$:/boot/boot.js]] -[[$:/boot/bootprefix.js]] -[!is[system]is[image]] +[sort[title]] \n\\end\n\\define skinnySaveTiddlerFilter()\n[is[image]]\n\\end\n{{$:/core/templates/tiddlywiki5.html}}\n"
        },
        "$:/core/templates/server/static.sidebar.wikitext": {
            "title": "$:/core/templates/server/static.sidebar.wikitext",
            "text": "\\whitespace trim\n<div class=\"tc-sidebar-scrollable\" style=\"overflow: auto;\">\n<div class=\"tc-sidebar-header\">\n<h1 class=\"tc-site-title\">\n<$transclude tiddler=\"$:/SiteTitle\"/>\n</h1>\n<div class=\"tc-site-subtitle\">\n<$transclude tiddler=\"$:/SiteSubtitle\"/>\n</div>\n<h2>\n</h2>\n<div class=\"tc-sidebar-lists\">\n<$list filter={{$:/DefaultTiddlers}}>\n<div class=\"tc-menu-list-subitem\">\n<$link><$text text=<<currentTiddler>>/></$link>\n</div>\n</$list>\n</div>\n<!-- Currently disabled the recent list as it is unweildy when the responsive narrow view kicks in\n<h2>\n{{$:/language/SideBar/Recent/Caption}}\n</h2>\n<div class=\"tc-sidebar-lists\">\n<$macrocall $name=\"timeline\" format={{$:/language/RecentChanges/DateFormat}}/>\n</div>\n</div>\n</div>\n-->\n"
        },
        "$:/core/templates/server/static.tiddler.html": {
            "title": "$:/core/templates/server/static.tiddler.html",
            "text": "\\whitespace trim\n\\define tv-wikilink-template() $uri_encoded$\n\\import [[$:/core/ui/PageMacros]] [all[shadows+tiddlers]tag[$:/tags/Macro]!has[draft.of]]\n<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html;charset=utf-8\" />\n<meta name=\"generator\" content=\"TiddlyWiki\" />\n<meta name=\"tiddlywiki-version\" content={{$:/core/templates/version}} />\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\" />\n<meta name=\"apple-mobile-web-app-capable\" content=\"yes\" />\n<meta name=\"apple-mobile-web-app-status-bar-style\" content=\"black-translucent\" />\n<meta name=\"mobile-web-app-capable\" content=\"yes\"/>\n<meta name=\"format-detection\" content=\"telephone=no\">\n<link id=\"faviconLink\" rel=\"shortcut icon\" href=\"favicon.ico\">\n<link rel=\"stylesheet\" href=\"%24%3A%2Fcore%2Ftemplates%2Fstatic.template.css\">\n<title><$view field=\"caption\" format=\"plainwikified\"><$view field=\"title\"/></$view>: <$view tiddler=\"$:/core/wiki/title\" format=\"plainwikified\"/></title>\n</head>\n<body class=\"tc-body\">\n<$transclude tiddler=\"$:/core/templates/server/static.sidebar.wikitext\" mode=\"inline\"/>\n<section class=\"tc-story-river\">\n<div class=\"tc-tiddler-frame\">\n<$transclude tiddler=\"$:/core/templates/server/static.tiddler.wikitext\" mode=\"inline\"/>\n</div>\n</section>\n</body>\n</html>"
        },
        "$:/core/templates/server/static.tiddler.wikitext": {
            "title": "$:/core/templates/server/static.tiddler.wikitext",
            "text": "\\whitespace trim\n<div class=\"tc-tiddler-title\">\n<div class=\"tc-titlebar\">\n<h2><$text text=<<currentTiddler>>/></h2>\n</div>\n</div>\n<div class=\"tc-subtitle\">\n<$link to={{!!modifier}}>\n<$view field=\"modifier\"/>\n</$link> <$view field=\"modified\" format=\"date\" template={{$:/language/Tiddler/DateFormat}}/>\n</div>\n<div class=\"tc-tags-wrapper\">\n<$list filter=\"[all[current]tags[]sort[title]]\">\n<a href={{{ [<currentTiddler>encodeuricomponent[]] }}}>\n<$macrocall $name=\"tag-pill\" tag=<<currentTiddler>>/>\n</a>\n</$list>\n</div>\n<div class=\"tc-tiddler-body\">\n<$transclude mode=\"block\"/>\n</div>\n"
        },
        "$:/core/templates/single.tiddler.window": {
            "title": "$:/core/templates/single.tiddler.window",
            "text": "\\whitespace trim\n\\define containerClasses()\ntc-page-container tc-page-view-$(storyviewTitle)$ tc-language-$(languageTitle)$\n\\end\n\\import [[$:/core/ui/PageMacros]] [all[shadows+tiddlers]tag[$:/tags/Macro]!has[draft.of]]\n\n<$vars\n\ttv-config-toolbar-icons={{$:/config/Toolbar/Icons}}\n\ttv-config-toolbar-text={{$:/config/Toolbar/Text}}\n\ttv-config-toolbar-class={{$:/config/Toolbar/ButtonClass}}\n\ttv-show-missing-links={{$:/config/MissingLinks}}\n\tstoryviewTitle={{$:/view}}\n\tlanguageTitle={{{ [{$:/language}get[name]] }}}>\n\n<div class=<<containerClasses>>>\n\n<$navigator story=\"$:/StoryList\" history=\"$:/HistoryList\">\n\n<$transclude mode=\"block\"/>\n\n</$navigator>\n\n</div>\n\n</$vars>\n"
        },
        "$:/core/templates/split-recipe": {
            "title": "$:/core/templates/split-recipe",
            "text": "<$list filter=\"[!is[system]]\">\ntiddler: <$view field=\"title\" format=\"urlencoded\"/>.tid\n</$list>\n"
        },
        "$:/core/templates/static-tiddler": {
            "title": "$:/core/templates/static-tiddler",
            "text": "<a name=<<currentTiddler>>>\n<$transclude tiddler=\"$:/core/ui/ViewTemplate\"/>\n</a>"
        },
        "$:/core/templates/static.area": {
            "title": "$:/core/templates/static.area",
            "text": "<$reveal type=\"nomatch\" state=\"$:/isEncrypted\" text=\"yes\">\n{{{ [all[shadows+tiddlers]tag[$:/tags/RawStaticContent]!has[draft.of]] ||$:/core/templates/raw-static-tiddler}}}\n{{$:/core/templates/static.content||$:/core/templates/html-tiddler}}\n</$reveal>\n<$reveal type=\"match\" state=\"$:/isEncrypted\" text=\"yes\">\nThis file contains an encrypted ~TiddlyWiki. Enable ~JavaScript and enter the decryption password when prompted.\n</$reveal>\n<!-- ensure splash screen isn't shown when JS is disabled -->\n`<style>\n.tc-remove-when-wiki-loaded {display: none;}\n</style>`\n"
        },
        "$:/core/templates/static.content": {
            "title": "$:/core/templates/static.content",
            "text": "<!-- For Google, and people without JavaScript-->\nThis [[TiddlyWiki|https://tiddlywiki.com]] contains the following tiddlers:\n\n<ul>\n<$list filter=<<saveTiddlerFilter>>>\n<li><$view field=\"title\" format=\"text\"></$view></li>\n</$list>\n</ul>\n"
        },
        "$:/core/templates/static.template.css": {
            "title": "$:/core/templates/static.template.css",
            "text": "{{$:/boot/boot.css||$:/core/templates/plain-text-tiddler}}\n\n{{$:/core/ui/PageStylesheet||$:/core/templates/wikified-tiddler}}\n"
        },
        "$:/core/templates/static.template.html": {
            "title": "$:/core/templates/static.template.html",
            "type": "text/vnd.tiddlywiki-html",
            "text": "\\define tv-wikilink-template() static/$uri_doubleencoded$.html\n\\define tv-config-toolbar-icons() no\n\\define tv-config-toolbar-text() no\n\\define tv-config-toolbar-class() tc-btn-invisible\n\\rules only filteredtranscludeinline transcludeinline\n<!doctype html>\n<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html;charset=utf-8\" />\n<meta name=\"generator\" content=\"TiddlyWiki\" />\n<meta name=\"tiddlywiki-version\" content=\"{{$:/core/templates/version}}\" />\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\" />\n<meta name=\"apple-mobile-web-app-capable\" content=\"yes\" />\n<meta name=\"apple-mobile-web-app-status-bar-style\" content=\"black-translucent\" />\n<meta name=\"mobile-web-app-capable\" content=\"yes\"/>\n<meta name=\"format-detection\" content=\"telephone=no\">\n<link id=\"faviconLink\" rel=\"shortcut icon\" href=\"favicon.ico\">\n<title>{{$:/core/wiki/title}}</title>\n<div id=\"styleArea\">\n{{$:/boot/boot.css||$:/core/templates/css-tiddler}}\n</div>\n<style type=\"text/css\">\n{{$:/core/ui/PageStylesheet||$:/core/templates/wikified-tiddler}}\n</style>\n</head>\n<body class=\"tc-body\">\n{{$:/StaticBanner||$:/core/templates/html-tiddler}}\n{{$:/core/ui/PageTemplate||$:/core/templates/html-tiddler}}\n</body>\n</html>\n"
        },
        "$:/core/templates/static.tiddler.html": {
            "title": "$:/core/templates/static.tiddler.html",
            "text": "\\define tv-wikilink-template() $uri_doubleencoded$.html\n\\define tv-config-toolbar-icons() no\n\\define tv-config-toolbar-text() no\n\\define tv-config-toolbar-class() tc-btn-invisible\n\\import [[$:/core/ui/PageMacros]] [all[shadows+tiddlers]tag[$:/tags/Macro]!has[draft.of]]\n`<!doctype html>\n<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html;charset=utf-8\" />\n<meta name=\"generator\" content=\"TiddlyWiki\" />\n<meta name=\"tiddlywiki-version\" content=\"`{{$:/core/templates/version}}`\" />\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\" />\n<meta name=\"apple-mobile-web-app-capable\" content=\"yes\" />\n<meta name=\"apple-mobile-web-app-status-bar-style\" content=\"black-translucent\" />\n<meta name=\"mobile-web-app-capable\" content=\"yes\"/>\n<meta name=\"format-detection\" content=\"telephone=no\">\n<link id=\"faviconLink\" rel=\"shortcut icon\" href=\"favicon.ico\">\n<link rel=\"stylesheet\" href=\"static.css\">\n<title>`<$view field=\"caption\"><$view field=\"title\"/></$view>: {{$:/core/wiki/title}}`</title>\n</head>\n<body class=\"tc-body\">\n`{{$:/StaticBanner||$:/core/templates/html-tiddler}}`\n<section class=\"tc-story-river tc-static-story-river\">\n`<$view tiddler=\"$:/core/ui/ViewTemplate\" format=\"htmlwikified\"/>`\n</section>\n</body>\n</html>\n`\n"
        },
        "$:/core/templates/store.area.template.html": {
            "title": "$:/core/templates/store.area.template.html",
            "text": "<$reveal type=\"nomatch\" state=\"$:/isEncrypted\" text=\"yes\">\n`<div id=\"storeArea\" style=\"display:none;\">`\n<$list filter=<<saveTiddlerFilter>> template=\"$:/core/templates/html-div-tiddler\"/>\n<$list filter={{{ [<skinnySaveTiddlerFilter>] }}} template=\"$:/core/templates/html-div-skinny-tiddler\"/>\n`</div>`\n</$reveal>\n<$reveal type=\"match\" state=\"$:/isEncrypted\" text=\"yes\">\n`<!--~~ Encrypted tiddlers ~~-->`\n`<pre id=\"encryptedStoreArea\" type=\"text/plain\" style=\"display:none;\">`\n<$encrypt filter=<<saveTiddlerFilter>>/>\n`</pre>`\n</$reveal>"
        },
        "$:/core/templates/tid-tiddler": {
            "title": "$:/core/templates/tid-tiddler",
            "text": "<!--\n\nThis template is used for saving tiddlers in TiddlyWeb *.tid format\n\n--><$fields exclude='text bag' template='$name$: $value$\n'></$fields>`\n`<$view field=\"text\" format=\"text\" />"
        },
        "$:/core/templates/tiddler-metadata": {
            "title": "$:/core/templates/tiddler-metadata",
            "text": "<!--\n\nThis template is used for saving tiddler metadata *.meta files\n\n--><$fields exclude='text bag' template='$name$: $value$\n'></$fields>"
        },
        "$:/core/templates/tiddlywiki5.html": {
            "title": "$:/core/templates/tiddlywiki5.html",
            "text": "<$set name=\"saveTiddlerAndShadowsFilter\" filter=\"[subfilter<saveTiddlerFilter>] [subfilter<saveTiddlerFilter>plugintiddlers[]]\">\n`<!doctype html>\n`{{$:/core/templates/MOTW.html}}`<html lang=\"`<$text text={{{ [{$:/language}get[name]] }}}/>`\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html;charset=utf-8\" />\n<!--~~ Raw markup for the top of the head section ~~-->\n`{{{ [<saveTiddlerAndShadowsFilter>tag[$:/tags/RawMarkupWikified/TopHead]] ||$:/core/templates/raw-static-tiddler}}}`\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=Edge\"/>\n<meta name=\"application-name\" content=\"TiddlyWiki\" />\n<meta name=\"generator\" content=\"TiddlyWiki\" />\n<meta name=\"tiddlywiki-version\" content=\"`{{$:/core/templates/version}}`\" />\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\" />\n<meta name=\"apple-mobile-web-app-capable\" content=\"yes\" />\n<meta name=\"apple-mobile-web-app-status-bar-style\" content=\"black-translucent\" />\n<meta name=\"mobile-web-app-capable\" content=\"yes\"/>\n<meta name=\"format-detection\" content=\"telephone=no\" />\n<meta name=\"copyright\" content=\"`{{$:/core/copyright.txt}}`\" />\n<link id=\"faviconLink\" rel=\"shortcut icon\" href=\"favicon.ico\">\n<title>`{{$:/core/wiki/title}}`</title>\n<!--~~ This is a Tiddlywiki file. The points of interest in the file are marked with this pattern ~~-->\n\n<!--~~ Raw markup ~~-->\n`{{{ [enlist<saveTiddlerAndShadowsFilter>tag[$:/core/wiki/rawmarkup]] ||$:/core/templates/plain-text-tiddler}}}\n{{{ [enlist<saveTiddlerAndShadowsFilter>tag[$:/tags/RawMarkup]] ||$:/core/templates/plain-text-tiddler}}}\n{{{ [enlist<saveTiddlerAndShadowsFilter>tag[$:/tags/RawMarkupWikified]] ||$:/core/templates/raw-static-tiddler}}}`\n</head>\n<body class=\"tc-body\">\n<!--~~ Raw markup for the top of the body section ~~-->\n`{{{ [enlist<saveTiddlerAndShadowsFilter>tag[$:/tags/RawMarkupWikified/TopBody]] ||$:/core/templates/raw-static-tiddler}}}`\n<!--~~ Static styles ~~-->\n<div id=\"styleArea\">\n`{{$:/boot/boot.css||$:/core/templates/css-tiddler}}`\n</div>\n<!--~~ Static content for Google and browsers without JavaScript ~~-->\n<noscript>\n<div id=\"splashArea\">\n`{{$:/core/templates/static.area}}`\n</div>\n</noscript>\n<!--~~ Ordinary tiddlers ~~-->\n`{{$:/core/templates/store.area.template.html}}`\n<!--~~ Library modules ~~-->\n<div id=\"libraryModules\" style=\"display:none;\">\n`{{{ [is[system]type[application/javascript]library[yes]] ||$:/core/templates/javascript-tiddler}}}`\n</div>\n<!--~~ Boot kernel prologue ~~-->\n<div id=\"bootKernelPrefix\" style=\"display:none;\">\n`{{ $:/boot/bootprefix.js ||$:/core/templates/javascript-tiddler}}`\n</div>\n<!--~~ Boot kernel ~~-->\n<div id=\"bootKernel\" style=\"display:none;\">\n`{{ $:/boot/boot.js ||$:/core/templates/javascript-tiddler}}`\n</div>\n<!--~~ Raw markup for the bottom of the body section ~~-->\n`{{{ [enlist<saveTiddlerAndShadowsFilter>tag[$:/tags/RawMarkupWikified/BottomBody]] ||$:/core/templates/raw-static-tiddler}}}`\n</body>\n</html>`\n"
        },
        "$:/core/templates/version": {
            "title": "$:/core/templates/version",
            "text": "<<version>>"
        },
        "$:/core/templates/wikified-tiddler": {
            "title": "$:/core/templates/wikified-tiddler",
            "text": "<$transclude />"
        },
        "$:/core/ui/AboveStory/tw2-plugin-check": {
            "title": "$:/core/ui/AboveStory/tw2-plugin-check",
            "tags": "$:/tags/AboveStory",
            "text": "\\define lingo-base() $:/language/AboveStory/ClassicPlugin/\n<$list filter=\"[all[system+tiddlers]tag[systemConfig]limit[1]]\">\n\n<div class=\"tc-message-box\">\n\n<<lingo Warning>>\n\n<ul>\n\n<$list filter=\"[all[system+tiddlers]tag[systemConfig]]\">\n\n<li>\n\n<$link><$view field=\"title\"/></$link>\n\n</li>\n\n</$list>\n\n</ul>\n\n</div>\n\n</$list>\n"
        },
        "$:/core/ui/Actions/new-image": {
            "title": "$:/core/ui/Actions/new-image",
            "tags": "$:/tags/Actions",
            "description": "create a new image tiddler",
            "text": "\\define get-type()\nimage/$(imageType)$\n\\end\n\\define get-tags() $(textFieldTags)$ $(tagsFieldTags)$\n<$vars imageType={{$:/config/NewImageType}} textFieldTags={{$:/config/NewJournal/Tags}} tagsFieldTags={{$:/config/NewJournal/Tags!!tags}}>\n<$action-sendmessage $message=\"tm-new-tiddler\" type=<<get-type>> tags=<<get-tags>>/>\n</$vars>\n"
        },
        "$:/core/ui/Actions/new-journal": {
            "title": "$:/core/ui/Actions/new-journal",
            "tags": "$:/tags/Actions",
            "description": "create a new journal tiddler",
            "text": "\\define get-tags() $(textFieldTags)$ $(tagsFieldTags)$\n<$vars journalTitleTemplate={{$:/config/NewJournal/Title}} textFieldTags={{$:/config/NewJournal/Tags}} tagsFieldTags={{$:/config/NewJournal/Tags!!tags}} journalText={{$:/config/NewJournal/Text}}>\n<$wikify name=\"journalTitle\" text=\"\"\"<$macrocall $name=\"now\" format=<<journalTitleTemplate>>/>\"\"\">\n<$reveal type=\"nomatch\" state=<<journalTitle>> text=\"\">\n<$action-sendmessage $message=\"tm-new-tiddler\" title=<<journalTitle>> tags=<<get-tags>> text={{{ [<journalTitle>get[]] }}}/>\n</$reveal>\n<$reveal type=\"match\" state=<<journalTitle>> text=\"\">\n<$action-sendmessage $message=\"tm-new-tiddler\" title=<<journalTitle>> tags=<<get-tags>> text=<<journalText>>/>\n</$reveal>\n</$wikify>\n</$vars>\n"
        },
        "$:/core/ui/Actions/new-tiddler": {
            "title": "$:/core/ui/Actions/new-tiddler",
            "tags": "$:/tags/Actions",
            "description": "create a new empty tiddler",
            "text": "\\define get-tags() $(textFieldTags)$ $(tagsFieldTags)$\n<$vars textFieldTags={{$:/config/NewTiddler/Tags}} tagsFieldTags={{$:/config/NewTiddler/Tags!!tags}}>\n<$action-sendmessage $message=\"tm-new-tiddler\" tags=<<get-tags>>/>\n</$vars>\n"
        },
        "$:/core/ui/AdvancedSearch/Filter": {
            "title": "$:/core/ui/AdvancedSearch/Filter",
            "tags": "$:/tags/AdvancedSearch",
            "caption": "{{$:/language/Search/Filter/Caption}}",
            "text": "\\define lingo-base() $:/language/Search/\n\\define set-next-input-tab(beforeafter:\"after\") <$macrocall $name=\"change-input-tab\" stateTitle=\"$:/state/tab--1498284803\" tag=\"$:/tags/AdvancedSearch\" beforeafter=\"$beforeafter$\" defaultState=\"$:/core/ui/AdvancedSearch/System\" actions=\"\"\"<$action-setfield $tiddler=\"$:/state/advancedsearch/currentTab\" text=<<nextTab>>/>\"\"\"/>\n\n\\define cancel-search-actions() <$list filter=\"[{$:/temp/advancedsearch/input}!match{$:/temp/advancedsearch}]\" emptyMessage=\"\"\"<$action-deletetiddler $filter=\"[[$:/temp/advancedsearch]] [[$:/temp/advancedsearch/input]] [[$:/temp/advancedsearch/selected-item]]\" />\"\"\"><$action-setfield $tiddler=\"$:/temp/advancedsearch/input\" text={{$:/temp/advancedsearch}}/><$action-setfield $tiddler=\"$:/temp/advancedsearch/refresh\" text=\"yes\"/></$list>\n\n\\define input-accept-actions() <$list filter=\"[{$:/config/Search/NavigateOnEnter/enable}match[yes]]\" emptyMessage=\"\"\"<$list filter=\"[<__tiddler__>get[text]!is[missing]] ~[<__tiddler__>get[text]is[shadow]]\"><$action-navigate $to={{{ [<__tiddler__>get[text]] }}}/></$list>\"\"\"><$action-navigate $to={{{ [<__tiddler__>get[text]] }}}/></$list>\n\n\\define input-accept-variant-actions() <$list filter=\"[{$:/config/Search/NavigateOnEnter/enable}match[yes]]\" emptyMessage=\"\"\"<$list filter=\"[<__tiddler__>get[text]!is[missing]] ~[<__tiddler__>get[text]is[shadow]]\"><$list filter=\"[<__tiddler__>get[text]minlength[1]]\"><$action-sendmessage $message=\"tm-edit-tiddler\" $param={{{  [<__tiddler__>get[text]] }}}/></$list></$list>\"\"\"><$list filter=\"[<__tiddler__>get[text]minlength[1]]\"><$action-sendmessage $message=\"tm-edit-tiddler\" $param={{{  [<__tiddler__>get[text]] }}}/></$list></$list>\n\n<<lingo Filter/Hint>>\n\n<div class=\"tc-search tc-advanced-search\">\n<$keyboard key=\"((input-tab-right))\" actions=<<set-next-input-tab>>>\n<$keyboard key=\"((input-tab-left))\" actions=<<set-next-input-tab \"before\">>>\n<$macrocall $name=\"keyboard-driven-input\" tiddler=\"$:/temp/advancedsearch/input\" storeTitle=\"$:/temp/advancedsearch\" \n\t\trefreshTitle=\"$:/temp/advancedsearch/refresh\" selectionStateTitle=\"$:/temp/advancedsearch/selected-item\" type=\"search\" \n\t\ttag=\"input\" focus={{$:/config/Search/AutoFocus}} configTiddlerFilter=\"[[$:/temp/advancedsearch]]\" firstSearchFilterField=\"text\" \n\t\tinputAcceptActions=<<input-accept-actions>> inputAcceptVariantActions=<<input-accept-variant-actions>> \n\t\tinputCancelActions=<<cancel-search-actions>>/>\n</$keyboard>\n</$keyboard>\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/AdvancedSearch/FilterButton]!has[draft.of]]\"><$transclude/></$list>\n</div>\n\n<$reveal state=\"$:/temp/advancedsearch\" type=\"nomatch\" text=\"\">\n<$set name=\"resultCount\" value=\"\"\"<$count filter={{$:/temp/advancedsearch}}/>\"\"\">\n<div class=\"tc-search-results\">\n<<lingo Filter/Matches>>\n<$list filter={{$:/temp/advancedsearch}}>\n<span class={{{[<currentTiddler>addsuffix[-primaryList]] -[[$:/temp/advancedsearch/selected-item]get[text]] +[then[]else[tc-list-item-selected]] }}}>\n<$transclude tiddler=\"$:/core/ui/ListItemTemplate\"/>\n</span>\n</$list>\n</div>\n</$set>\n</$reveal>\n"
        },
        "$:/core/ui/AdvancedSearch/Filter/FilterButtons/clear": {
            "title": "$:/core/ui/AdvancedSearch/Filter/FilterButtons/clear",
            "tags": "$:/tags/AdvancedSearch/FilterButton",
            "text": "<$reveal state=\"$:/temp/advancedsearch\" type=\"nomatch\" text=\"\">\n<$button class=\"tc-btn-invisible\">\n<<cancel-search-actions>>\n<$action-sendmessage $message=\"tm-focus-selector\" $param=\"\"\".tc-advanced-search input\"\"\" />\n{{$:/core/images/close-button}}\n</$button>\n</$reveal>\n"
        },
        "$:/core/ui/AdvancedSearch/Filter/FilterButtons/delete": {
            "title": "$:/core/ui/AdvancedSearch/Filter/FilterButtons/delete",
            "tags": "$:/tags/AdvancedSearch/FilterButton",
            "text": "<$reveal state=\"$:/temp/advancedsearch\" type=\"nomatch\" text=\"\">\n<$button popup=<<qualify \"$:/state/filterDeleteDropdown\">> class=\"tc-btn-invisible\">\n{{$:/core/images/delete-button}}\n</$button>\n</$reveal>\n\n<$reveal state=<<qualify \"$:/state/filterDeleteDropdown\">> type=\"popup\" position=\"belowleft\" animate=\"yes\">\n<div class=\"tc-block-dropdown-wrapper\">\n<div class=\"tc-block-dropdown tc-edit-type-dropdown\">\n<div class=\"tc-dropdown-item-plain\">\n<$set name=\"resultCount\" value=\"\"\"<$count filter={{$:/temp/advancedsearch}}/>\"\"\">\nAre you sure you wish to delete <<resultCount>> tiddler(s)?\n</$set>\n</div>\n<div class=\"tc-dropdown-item-plain\">\n<$button class=\"tc-btn\">\n<$action-deletetiddler $filter={{$:/temp/advancedsearch}}/>\nDelete these tiddlers\n</$button>\n</div>\n</div>\n</div>\n</$reveal>\n"
        },
        "$:/core/ui/AdvancedSearch/Filter/FilterButtons/dropdown": {
            "title": "$:/core/ui/AdvancedSearch/Filter/FilterButtons/dropdown",
            "tags": "$:/tags/AdvancedSearch/FilterButton",
            "text": "<span class=\"tc-popup-keep\">\n<$button popup=<<qualify \"$:/state/filterDropdown\">> class=\"tc-btn-invisible\">\n{{$:/core/images/down-arrow}}\n</$button>\n</span>\n\n<$reveal state=<<qualify \"$:/state/filterDropdown\">> type=\"popup\" position=\"belowleft\" animate=\"yes\">\n<$set name=\"tv-show-missing-links\" value=\"yes\">\n<$linkcatcher actions=\"\"\"<$action-setfield $tiddler=\"$:/temp/advancedsearch\" text=<<navigateTo>>/><$action-setfield $tiddler=\"$:/temp/advancedsearch/input\" text=<<navigateTo>>/><$action-setfield $tiddler=\"$:/temp/advancedsearch/refresh\" text=\"yes\"/><$action-sendmessage $message=\"tm-focus-selector\" $param='.tc-advanced-search input' />\"\"\">\n<div class=\"tc-block-dropdown-wrapper\">\n<div class=\"tc-block-dropdown tc-edit-type-dropdown\">\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/Filter]]\"><$link to={{!!filter}}><$transclude field=\"description\"/></$link>\n</$list>\n</div>\n</div>\n</$linkcatcher>\n</$set>\n</$reveal>\n"
        },
        "$:/core/ui/AdvancedSearch/Filter/FilterButtons/export": {
            "title": "$:/core/ui/AdvancedSearch/Filter/FilterButtons/export",
            "tags": "$:/tags/AdvancedSearch/FilterButton",
            "text": "<$reveal state=\"$:/temp/advancedsearch\" type=\"nomatch\" text=\"\">\n<$macrocall $name=\"exportButton\" exportFilter={{$:/temp/advancedsearch}} lingoBase=\"$:/language/Buttons/ExportTiddlers/\"/>\n</$reveal>\n"
        },
        "$:/core/ui/AdvancedSearch/Shadows": {
            "title": "$:/core/ui/AdvancedSearch/Shadows",
            "tags": "$:/tags/AdvancedSearch",
            "caption": "{{$:/language/Search/Shadows/Caption}}",
            "first-search-filter": "[all[shadows]search<userInput>sort[title]limit[250]] -[[$:/temp/advancedsearch]] -[[$:/temp/advancedsearch/input]]",
            "text": "\\define lingo-base() $:/language/Search/\n\n\\define set-next-input-tab(beforeafter:\"after\") <$macrocall $name=\"change-input-tab\" stateTitle=\"$:/state/tab--1498284803\" tag=\"$:/tags/AdvancedSearch\" beforeafter=\"$beforeafter$\" defaultState=\"$:/core/ui/AdvancedSearch/System\" actions=\"\"\"<$action-setfield $tiddler=\"$:/state/advancedsearch/currentTab\" text=<<nextTab>>/>\"\"\"/>\n\n\\define cancel-search-actions() <$list filter=\"[{$:/temp/advancedsearch}!match{$:/temp/advancedsearch/input}]\" emptyMessage=\"\"\"<$action-deletetiddler $filter=\"[[$:/temp/advancedsearch]] [[$:/temp/advancedsearch/input]] [[$:/temp/advancedsearch/selected-item]]\" />\"\"\"><$action-setfield $tiddler=\"$:/temp/advancedsearch/input\" text={{$:/temp/advancedsearch}}/><$action-setfield $tiddler=\"$:/temp/advancedsearch/refresh\" text=\"yes\"/></$list><$action-sendmessage $message=\"tm-focus-selector\" $param=\"\"\".tc-advanced-search input\"\"\"/>\n\n\\define input-accept-actions() <$list filter=\"[{$:/config/Search/NavigateOnEnter/enable}match[yes]]\" emptyMessage=\"\"\"<$list filter=\"[<__tiddler__>get[text]!is[missing]] ~[<__tiddler__>get[text]is[shadow]]\"><$action-navigate $to={{{ [<__tiddler__>get[text]] }}}/></$list>\"\"\"><$action-navigate $to={{{ [<__tiddler__>get[text]] }}}/></$list>\n\n\\define input-accept-variant-actions() <$list filter=\"[{$:/config/Search/NavigateOnEnter/enable}match[yes]]\" emptyMessage=\"\"\"<$list filter=\"[<__tiddler__>get[text]!is[missing]] ~[<__tiddler__>get[text]is[shadow]]\"><$list filter=\"[<__tiddler__>get[text]minlength[1]]\"><$action-sendmessage $message=\"tm-edit-tiddler\" $param={{{  [<__tiddler__>get[text]] }}}/></$list></$list>\"\"\"><$list filter=\"[<__tiddler__>get[text]minlength[1]]\"><$action-sendmessage $message=\"tm-edit-tiddler\" $param={{{  [<__tiddler__>get[text]] }}}/></$list></$list>\n\n<<lingo Shadows/Hint>>\n\n<div class=\"tc-search\">\n<$keyboard key=\"((input-tab-right))\" actions=<<set-next-input-tab>>>\n<$keyboard key=\"((input-tab-left))\" actions=<<set-next-input-tab \"before\">>>\n<$macrocall $name=\"keyboard-driven-input\" tiddler=\"$:/temp/advancedsearch/input\" storeTitle=\"$:/temp/advancedsearch\"\n\t\trefreshTitle=\"$:/temp/advancedsearch/refresh\" selectionStateTitle=\"$:/temp/advancedsearch/selected-item\" type=\"search\"\n\t\ttag=\"input\" focus={{$:/config/Search/AutoFocus}} configTiddlerFilter=\"[[$:/core/ui/AdvancedSearch/Shadows]]\"\n\t\tinputCancelActions=<<cancel-search-actions>> inputAcceptActions=<<input-accept-actions>> \n\t\tinputAcceptVariantActions=<<input-accept-variant-actions>>  filterMinLength={{$:/config/Search/MinLength}}/>\n</$keyboard>\n</$keyboard>\n<$reveal state=\"$:/temp/advancedsearch\" type=\"nomatch\" text=\"\">\n<$button class=\"tc-btn-invisible\">\n<<cancel-search-actions>>\n{{$:/core/images/close-button}}\n</$button>\n</$reveal>\n</div>\n\n<$reveal state=\"$:/temp/advancedsearch\" type=\"nomatch\" text=\"\">\n\n<$list filter=\"[{$:/temp/advancedsearch}minlength{$:/config/Search/MinLength}limit[1]]\" emptyMessage=\"\"\"<div class=\"tc-search-results\">{{$:/language/Search/Search/TooShort}}</div>\"\"\" variable=\"listItem\">\n\n<$set name=\"resultCount\" value=\"\"\"<$count filter=\"[all[shadows]search{$:/temp/advancedsearch}] -[[$:/temp/advancedsearch]] -[[$:/temp/advancedsearch/input]]\"/>\"\"\">\n\n<div class=\"tc-search-results\">\n\n<<lingo Shadows/Matches>>\n\n<$list filter=\"[all[shadows]search{$:/temp/advancedsearch}sort[title]limit[250]] -[[$:/temp/advancedsearch]] -[[$:/temp/advancedsearch/input]]\">\n<span class={{{[<currentTiddler>addsuffix[-primaryList]] -[[$:/temp/advancedsearch/selected-item]get[text]] +[then[]else[tc-list-item-selected]] }}}>\n<$transclude tiddler=\"$:/core/ui/ListItemTemplate\"/>\n</span>\n</$list>\n\n</div>\n\n</$set>\n\n</$list>\n\n</$reveal>\n\n<$reveal state=\"$:/temp/advancedsearch\" type=\"match\" text=\"\">\n\n</$reveal>\n"
        },
        "$:/core/ui/AdvancedSearch/Standard": {
            "title": "$:/core/ui/AdvancedSearch/Standard",
            "tags": "$:/tags/AdvancedSearch",
            "caption": "{{$:/language/Search/Standard/Caption}}",
            "text": "\\define lingo-base() $:/language/Search/\n\\define set-next-input-tab(beforeafter:\"after\") <$macrocall $name=\"change-input-tab\" stateTitle=\"$:/state/tab--1498284803\" tag=\"$:/tags/AdvancedSearch\" beforeafter=\"$beforeafter$\" defaultState=\"$:/core/ui/AdvancedSearch/System\" actions=\"\"\"<$action-setfield $tiddler=\"$:/state/advancedsearch/currentTab\" text=<<nextTab>>/>\"\"\"/>\n\n\\define next-search-tab(beforeafter:\"after\") <$macrocall $name=\"change-input-tab\" stateTitle=\"$:/state/tab/search-results/advancedsearch\" tag=\"$:/tags/SearchResults\" beforeafter=\"$beforeafter$\" defaultState={{$:/config/SearchResults/Default}} actions=\"\"\"<$action-setfield $tiddler=\"$:/state/advancedsearch/standard/currentTab\" text=<<nextTab>>/>\"\"\"/>\n\n\\define cancel-search-actions() <$list filter=\"[{$:/temp/advancedsearch}!match{$:/temp/advancedsearch/input}]\" emptyMessage=\"\"\"<$action-deletetiddler $filter=\"[[$:/temp/advancedsearch]] [[$:/temp/advancedsearch/input]] [[$:/temp/advancedsearch/selected-item]]\" />\"\"\"><$action-setfield $tiddler=\"$:/temp/advancedsearch/input\" text={{$:/temp/advancedsearch}}/><$action-setfield $tiddler=\"$:/temp/advancedsearch/refresh\" text=\"yes\"/></$list><$action-sendmessage $message=\"tm-focus-selector\" $param=\"\"\".tc-advanced-search input\"\"\"/>\n\n\\define input-accept-actions() <$list filter=\"[{$:/config/Search/NavigateOnEnter/enable}match[yes]]\" emptyMessage=\"\"\"<$list filter=\"[<__tiddler__>get[text]!is[missing]] ~[<__tiddler__>get[text]is[shadow]]\"><$action-navigate $to={{{ [<__tiddler__>get[text]] }}}/></$list>\"\"\"><$action-navigate $to={{{ [<__tiddler__>get[text]] }}}/></$list>\n\n\\define input-accept-variant-actions() <$list filter=\"[{$:/config/Search/NavigateOnEnter/enable}match[yes]]\" emptyMessage=\"\"\"<$list filter=\"[<__tiddler__>get[text]!is[missing]] ~[<__tiddler__>get[text]is[shadow]]\"><$list filter=\"[<__tiddler__>get[text]minlength[1]]\"><$action-sendmessage $message=\"tm-edit-tiddler\" $param={{{  [<__tiddler__>get[text]] }}}/></$list></$list>\"\"\"><$list filter=\"[<__tiddler__>get[text]minlength[1]]\"><$action-sendmessage $message=\"tm-edit-tiddler\" $param={{{  [<__tiddler__>get[text]] }}}/></$list></$list>\n\n<<lingo Standard/Hint>>\n\n<div class=\"tc-search\">\n<$keyboard key=\"((input-tab-right))\" actions=<<set-next-input-tab>>>\n<$keyboard key=\"((input-tab-left))\" actions=<<set-next-input-tab \"before\">>>\n<$keyboard key=\"shift-alt-Right\" actions=<<next-search-tab>>>\n<$keyboard key=\"shift-alt-Left\" actions=<<next-search-tab \"before\">>>\n<$macrocall $name=\"keyboard-driven-input\" tiddler=\"$:/temp/advancedsearch/input\" storeTitle=\"$:/temp/advancedsearch\"\n\t\trefreshTitle=\"$:/temp/advancedsearch/refresh\" selectionStateTitle=\"$:/temp/advancedsearch/selected-item\" type=\"search\"\n\t\ttag=\"input\" focus={{$:/config/Search/AutoFocus}} inputCancelActions=<<cancel-search-actions>> \n\t\tinputAcceptActions=<<input-accept-actions>> inputAcceptVariantActions=<<input-accept-variant-actions>> \n\t\tconfigTiddlerFilter=\"[[$:/state/search/currentTab]!is[missing]get[text]] ~[{$:/config/SearchResults/Default}]\"\n\t\tfilterMinLength={{$:/config/Search/MinLength}}/>\n</$keyboard>\n</$keyboard>\n</$keyboard>\n</$keyboard>\n<$reveal state=\"$:/temp/advancedsearch\" type=\"nomatch\" text=\"\">\n<$button class=\"tc-btn-invisible\">\n<<cancel-search-actions>>\n{{$:/core/images/close-button}}\n</$button>\n</$reveal>\n</div>\n\n<$reveal state=\"$:/temp/advancedsearch\" type=\"nomatch\" text=\"\">\n<$list filter=\"[{$:/temp/advancedsearch}minlength{$:/config/Search/MinLength}limit[1]]\" emptyMessage=\"\"\"<div class=\"tc-search-results\">{{$:/language/Search/Search/TooShort}}</div>\"\"\" variable=\"listItem\">\n<$vars userInput={{{ [[$:/temp/advancedsearch]get[text]] }}} configTiddler={{{ [[$:/state/search/currentTab]!is[missing]get[text]] ~[{$:/config/SearchResults/Default}] }}} searchListState=\"$:/temp/advancedsearch/selected-item\">\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/SearchResults]!has[draft.of]butfirst[]limit[1]]\" emptyMessage=\"\"\"\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/SearchResults]!has[draft.of]]\">\n<$transclude/>\n</$list>\n\"\"\">\n<$macrocall $name=\"tabs\" tabsList=\"[all[shadows+tiddlers]tag[$:/tags/SearchResults]!has[draft.of]]\" default={{$:/config/SearchResults/Default}} actions=\"\"\"<$action-setfield $tiddler=\"$:/state/advancedsearch/standard/currentTab\" text=<<currentTab>>/>\"\"\" explicitState=\"$:/state/tab/search-results/advancedsearch\" />\n</$list>\n</$vars>\n</$list>\n</$reveal>\n"
        },
        "$:/core/ui/AdvancedSearch/System": {
            "title": "$:/core/ui/AdvancedSearch/System",
            "tags": "$:/tags/AdvancedSearch",
            "caption": "{{$:/language/Search/System/Caption}}",
            "first-search-filter": "[is[system]search<userInput>sort[title]limit[250]] -[[$:/temp/advancedsearch]] -[[$:/temp/advancedsearch/input]] -[[$:/temp/advancedsearch/selected-item]]",
            "text": "\\define lingo-base() $:/language/Search/\n\\define set-next-input-tab(beforeafter:\"after\",stateTitle,tag,defaultState,currentTabTiddler) <$macrocall $name=\"change-input-tab\" stateTitle=\"$:/state/tab--1498284803\" tag=\"$:/tags/AdvancedSearch\" beforeafter=\"$beforeafter$\" defaultState=\"$:/core/ui/AdvancedSearch/System\" actions=\"\"\"<$action-setfield $tiddler=\"$:/state/advancedsearch/currentTab\" text=<<nextTab>>/>\"\"\"/>\n\n\\define cancel-search-actions() <$list filter=\"[{$:/temp/advancedsearch}!match{$:/temp/advancedsearch/input}]\" emptyMessage=\"\"\"<$action-deletetiddler $filter=\"[[$:/temp/advancedsearch]] [[$:/temp/advancedsearch/input]] [[$:/temp/advancedsearch/selected-item]]\" />\"\"\"><$action-setfield $tiddler=\"$:/temp/advancedsearch/input\" text={{$:/temp/advancedsearch}}/><$action-setfield $tiddler=\"$:/temp/advancedsearch/refresh\" text=\"yes\"/></$list><$action-sendmessage $message=\"tm-focus-selector\" $param=\"\"\".tc-advanced-search input\"\"\"/>\n\n\\define input-accept-actions() <$list filter=\"[{$:/config/Search/NavigateOnEnter/enable}match[yes]]\" emptyMessage=\"\"\"<$list filter=\"[<__tiddler__>get[text]!is[missing]] ~[<__tiddler__>get[text]is[shadow]]\"><$action-navigate $to={{{ [<__tiddler__>get[text]] }}}/></$list>\"\"\"><$action-navigate $to={{{ [<__tiddler__>get[text]] }}}/></$list>\n\n\\define input-accept-variant-actions() <$list filter=\"[{$:/config/Search/NavigateOnEnter/enable}match[yes]]\" emptyMessage=\"\"\"<$list filter=\"[<__tiddler__>get[text]!is[missing]] ~[<__tiddler__>get[text]is[shadow]]\"><$list filter=\"[<__tiddler__>get[text]minlength[1]]\"><$action-sendmessage $message=\"tm-edit-tiddler\" $param={{{  [<__tiddler__>get[text]] }}}/></$list></$list>\"\"\"><$list filter=\"[<__tiddler__>get[text]minlength[1]]\"><$action-sendmessage $message=\"tm-edit-tiddler\" $param={{{  [<__tiddler__>get[text]] }}}/></$list></$list>\n\n<<lingo System/Hint>>\n\n<div class=\"tc-search\">\n<$keyboard key=\"((input-tab-right))\" actions=<<set-next-input-tab>>>\n<$keyboard key=\"((input-tab-left))\" actions=<<set-next-input-tab \"before\">>>\n<$macrocall $name=\"keyboard-driven-input\" tiddler=\"$:/temp/advancedsearch/input\" storeTitle=\"$:/temp/advancedsearch\"\n\t\trefreshTitle=\"$:/temp/advancedsearch/refresh\" selectionStateTitle=\"$:/temp/advancedsearch/selected-item\"\n\t\ttype=\"search\" tag=\"input\" focus={{$:/config/Search/AutoFocus}} configTiddlerFilter=\"[[$:/core/ui/AdvancedSearch/System]]\"\n\t\tinputCancelActions=<<cancel-search-actions>> inputAcceptActions=<<input-accept-actions>> \n\t\tinputAcceptVariantActions=<<input-accept-variant-actions>> filterMinLength={{$:/config/Search/MinLength}}/>\n</$keyboard>\n</$keyboard>\n<$reveal state=\"$:/temp/advancedsearch\" type=\"nomatch\" text=\"\">\n<$button class=\"tc-btn-invisible\">\n<<cancel-search-actions>>\n{{$:/core/images/close-button}}\n</$button>\n</$reveal>\n</div>\n\n<$reveal state=\"$:/temp/advancedsearch\" type=\"nomatch\" text=\"\">\n\n<$list filter=\"[{$:/temp/advancedsearch}minlength{$:/config/Search/MinLength}limit[1]]\" emptyMessage=\"\"\"<div class=\"tc-search-results\">{{$:/language/Search/Search/TooShort}}</div>\"\"\" variable=\"listItem\">\n\n<$set name=\"resultCount\" value=\"\"\"<$count filter=\"[is[system]search{$:/temp/advancedsearch}] -[[$:/temp/advancedsearch]] -[[$:/temp/advancedsearch/input]] -[[$:/temp/advancedsearch/selected-item]]\"/>\"\"\">\n\n<div class=\"tc-search-results\">\n\n<<lingo System/Matches>>\n\n<$list filter=\"[is[system]search{$:/temp/advancedsearch}sort[title]limit[250]] -[[$:/temp/advancedsearch]] -[[$:/temp/advancedsearch/input]] -[[$:/temp/advancedsearch/selected-item]]\">\n<span class={{{[<currentTiddler>addsuffix[-primaryList]] -[[$:/temp/advancedsearch/selected-item]get[text]] +[then[]else[tc-list-item-selected]] }}}>\n<$transclude tiddler=\"$:/core/ui/ListItemTemplate\"/>\n</span>\n</$list>\n\n</div>\n\n</$set>\n\n</$list>\n\n</$reveal>\n\n<$reveal state=\"$:/temp/advancedsearch\" type=\"match\" text=\"\">\n\n</$reveal>\n"
        },
        "$:/AdvancedSearch": {
            "title": "$:/AdvancedSearch",
            "icon": "$:/core/images/advanced-search-button",
            "color": "#bbb",
            "text": "<div class=\"tc-advanced-search\">\n<$macrocall $name=\"tabs\" tabsList=\"[all[shadows+tiddlers]tag[$:/tags/AdvancedSearch]!has[draft.of]]\" default=\"$:/core/ui/AdvancedSearch/System\" actions=\"\"\"<$action-setfield $tiddler=\"$:/state/advancedsearch/currentTab\" text=<<currentTab>>/>\"\"\" explicitState=\"$:/state/tab--1498284803\"/>\n</div>\n"
        },
        "$:/core/ui/AlertTemplate": {
            "title": "$:/core/ui/AlertTemplate",
            "text": "<div class=\"tc-alert\">\n<div class=\"tc-alert-toolbar\">\n<$button class=\"tc-btn-invisible\"><$action-deletetiddler $tiddler=<<currentTiddler>>/>{{$:/core/images/cancel-button}}</$button>\n</div>\n<div class=\"tc-alert-subtitle\">\n<$wikify name=\"format\" text=<<lingo Tiddler/DateFormat>>>\n<$view field=\"component\"/> - <$view field=\"modified\" format=\"date\" template=<<format>>/> <$reveal type=\"nomatch\" state=\"!!count\" text=\"\"><span class=\"tc-alert-highlight\">({{$:/language/Count}}: <$view field=\"count\"/>)</span></$reveal>\n</$wikify>\n</div>\n<div class=\"tc-alert-body\">\n\n<$transclude/>\n\n</div>\n</div>\n"
        },
        "$:/core/ui/BinaryWarning": {
            "title": "$:/core/ui/BinaryWarning",
            "text": "\\define lingo-base() $:/language/BinaryWarning/\n<<lingo Prompt>>\n"
        },
        "$:/core/ui/Components/plugin-info": {
            "title": "$:/core/ui/Components/plugin-info",
            "text": "\\define lingo-base() $:/language/ControlPanel/Plugins/\n\n\\define popup-state-macro()\n$(qualified-state)$-$(currentTiddler)$\n\\end\n\n\\define tabs-state-macro()\n$(popup-state)$-$(pluginInfoType)$\n\\end\n\n\\define plugin-icon-title()\n$(currentTiddler)$/icon\n\\end\n\n\\define plugin-disable-title()\n$:/config/Plugins/Disabled/$(currentTiddler)$\n\\end\n\n\\define plugin-table-body(type,disabledMessage,default-popup-state)\n<div class=\"tc-plugin-info-chunk tc-plugin-info-toggle\">\n<$reveal type=\"nomatch\" state=<<popup-state>> text=\"yes\" default=\"\"\"$default-popup-state$\"\"\">\n<$button class=\"tc-btn-invisible tc-btn-dropdown\" set=<<popup-state>> setTo=\"yes\">\n{{$:/core/images/chevron-right}}\n</$button>\n</$reveal>\n<$reveal type=\"match\" state=<<popup-state>> text=\"yes\" default=\"\"\"$default-popup-state$\"\"\">\n<$button class=\"tc-btn-invisible tc-btn-dropdown\" set=<<popup-state>> setTo=\"no\">\n{{$:/core/images/chevron-down}}\n</$button>\n</$reveal>\n</div>\n<div class=\"tc-plugin-info-chunk tc-plugin-info-icon\">\n<$transclude tiddler=<<currentTiddler>> subtiddler=<<plugin-icon-title>>>\n<$transclude tiddler=\"$:/core/images/plugin-generic-$type$\"/>\n</$transclude>\n</div>\n<div class=\"tc-plugin-info-chunk tc-plugin-info-description\">\n<h1>\n''<$text text={{{ [<currentTiddler>get[name]] ~[<currentTiddler>split[/]last[1]] }}}/>'': <$view field=\"description\"><$view field=\"title\"/></$view> $disabledMessage$\n</h1>\n<h2>\n<$view field=\"title\"/>\n</h2>\n<h2>\n<div><em><$view field=\"version\"/></em></div>\n</h2>\n</div>\n\\end\n\n\\define plugin-info(type,default-popup-state)\n<$set name=\"popup-state\" value=<<popup-state-macro>>>\n<$reveal type=\"nomatch\" state=<<plugin-disable-title>> text=\"yes\">\n<$link to={{!!title}} class=\"tc-plugin-info\">\n<<plugin-table-body type:\"$type$\" default-popup-state:\"\"\"$default-popup-state$\"\"\">>\n</$link>\n</$reveal>\n<$reveal type=\"match\" state=<<plugin-disable-title>> text=\"yes\">\n<$link to={{!!title}} class=\"tc-plugin-info tc-plugin-info-disabled\">\n<<plugin-table-body type:\"$type$\" default-popup-state:\"\"\"$default-popup-state$\"\"\" disabledMessage:\"<$macrocall $name='lingo' title='Disabled/Status'/>\">>\n</$link>\n</$reveal>\n<$reveal type=\"match\" text=\"yes\" state=<<popup-state>> default=\"\"\"$default-popup-state$\"\"\">\n<div class=\"tc-plugin-info-dropdown\">\n<div class=\"tc-plugin-info-dropdown-body\">\n<$list filter=\"[all[current]] -[[$:/core]]\">\n<div style=\"float:right;\">\n<$reveal type=\"nomatch\" state=<<plugin-disable-title>> text=\"yes\">\n<$button set=<<plugin-disable-title>> setTo=\"yes\" tooltip={{$:/language/ControlPanel/Plugins/Disable/Hint}} aria-label={{$:/language/ControlPanel/Plugins/Disable/Caption}}>\n<<lingo Disable/Caption>>\n</$button>\n</$reveal>\n<$reveal type=\"match\" state=<<plugin-disable-title>> text=\"yes\">\n<$button set=<<plugin-disable-title>> setTo=\"no\" tooltip={{$:/language/ControlPanel/Plugins/Enable/Hint}} aria-label={{$:/language/ControlPanel/Plugins/Enable/Caption}}>\n<<lingo Enable/Caption>>\n</$button>\n</$reveal>\n</div>\n</$list>\n<$set name=\"tabsList\" filter=\"[<currentTiddler>list[]] contents\">\n<$macrocall $name=\"tabs\" state=<<tabs-state-macro>> tabsList=<<tabsList>> default={{{ [enlist<tabsList>] }}} template=\"$:/core/ui/PluginInfo\"/>\n</$set>\n</div>\n</div>\n</$reveal>\n</$set>\n\\end\n\n<$macrocall $name=\"plugin-info\" type=<<plugin-type>> default-popup-state=<<default-popup-state>>/>\n"
        },
        "$:/core/ui/Components/tag-link": {
            "title": "$:/core/ui/Components/tag-link",
            "text": "<$link>\n<$set name=\"backgroundColor\" value={{!!color}}>\n<span style=<<tag-styles>> class=\"tc-tag-label\">\n<$view field=\"title\" format=\"text\"/>\n</span>\n</$set>\n</$link>"
        },
        "$:/core/ui/ControlPanel/Advanced": {
            "title": "$:/core/ui/ControlPanel/Advanced",
            "tags": "$:/tags/ControlPanel/Info",
            "caption": "{{$:/language/ControlPanel/Advanced/Caption}}",
            "text": "{{$:/language/ControlPanel/Advanced/Hint}}\n\n<div class=\"tc-control-panel\">\n<$macrocall $name=\"tabs\" tabsList=\"[all[shadows+tiddlers]tag[$:/tags/ControlPanel/Advanced]!has[draft.of]]\" default=\"$:/core/ui/ControlPanel/TiddlerFields\" explicitState=\"$:/state/tab--959111941\"/>\n</div>\n"
        },
        "$:/core/ui/ControlPanel/Appearance": {
            "title": "$:/core/ui/ControlPanel/Appearance",
            "tags": "$:/tags/ControlPanel",
            "caption": "{{$:/language/ControlPanel/Appearance/Caption}}",
            "text": "{{$:/language/ControlPanel/Appearance/Hint}}\n\n<div class=\"tc-control-panel\">\n<$macrocall $name=\"tabs\" tabsList=\"[all[shadows+tiddlers]tag[$:/tags/ControlPanel/Appearance]!has[draft.of]]\" default=\"$:/core/ui/ControlPanel/Theme\" explicitState=\"$:/state/tab--1963855381\"/>\n</div>\n"
        },
        "$:/core/ui/ControlPanel/Basics": {
            "title": "$:/core/ui/ControlPanel/Basics",
            "tags": "$:/tags/ControlPanel/Info",
            "caption": "{{$:/language/ControlPanel/Basics/Caption}}",
            "text": "\\define lingo-base() $:/language/ControlPanel/Basics/\n\n\\define show-filter-count(filter)\n<$button class=\"tc-btn-invisible\">\n<$action-setfield $tiddler=\"$:/temp/advancedsearch\" $value=\"\"\"$filter$\"\"\"/>\n<$action-setfield $tiddler=\"$:/temp/advancedsearch/input\" $value=\"\"\"$filter$\"\"\"/>\n<$action-setfield $tiddler=\"$:/temp/advancedsearch/refresh\" text=\"yes\"/>\n<$action-setfield $tiddler=\"$:/state/tab--1498284803\" $value=\"$:/core/ui/AdvancedSearch/Filter\"/>\n<$action-navigate $to=\"$:/AdvancedSearch\"/>\n<$action-sendmessage $message=\"tm-focus-selector\" $param=\".tc-advanced-search input\"/>\n''<$count filter=\"\"\"$filter$\"\"\"/>''\n{{$:/core/images/advanced-search-button}}\n</$button>\n\\end\n\n|<<lingo Version/Prompt>> |''<<version>>'' |\n|<$link to=\"$:/SiteTitle\"><<lingo Title/Prompt>></$link> |<$edit-text tiddler=\"$:/SiteTitle\" default=\"\" tag=\"input\"/> |\n|<$link to=\"$:/SiteSubtitle\"><<lingo Subtitle/Prompt>></$link> |<$edit-text tiddler=\"$:/SiteSubtitle\" default=\"\" tag=\"input\"/> |\n|<$link to=\"$:/status/UserName\"><<lingo Username/Prompt>></$link> |<$edit-text tiddler=\"$:/status/UserName\" default=\"\" tag=\"input\"/> |\n|<$link to=\"$:/config/AnimationDuration\"><<lingo AnimDuration/Prompt>></$link> |<$edit-text tiddler=\"$:/config/AnimationDuration\" default=\"\" tag=\"input\"/> |\n|<$link to=\"$:/DefaultTiddlers\"><<lingo DefaultTiddlers/Prompt>></$link> |<<lingo DefaultTiddlers/TopHint>><br> <$edit tag=\"textarea\" tiddler=\"$:/DefaultTiddlers\" class=\"tc-edit-texteditor\"/><br>//<<lingo DefaultTiddlers/BottomHint>>// |\n|<$link to=\"$:/language/DefaultNewTiddlerTitle\"><<lingo NewTiddler/Title/Prompt>></$link> |<$edit-text tiddler=\"$:/language/DefaultNewTiddlerTitle\" default=\"\" tag=\"input\"/> |\n|<$link to=\"$:/config/NewJournal/Title\"><<lingo NewJournal/Title/Prompt>></$link> |<$edit-text tiddler=\"$:/config/NewJournal/Title\" default=\"\" tag=\"input\"/> |\n|<$link to=\"$:/config/NewJournal/Text\"><<lingo NewJournal/Text/Prompt>></$link> |<$edit tiddler=\"$:/config/NewJournal/Text\" tag=\"textarea\" class=\"tc-edit-texteditor\" default=\"\"/> |\n|<$link to=\"$:/config/NewTiddler/Tags\"><<lingo NewTiddler/Tags/Prompt>></$link> |<$vars currentTiddler=\"$:/config/NewTiddler/Tags\" tagField=\"text\">{{||$:/core/ui/EditTemplate/tags}}<$list filter=\"[<currentTiddler>tags[]] +[limit[1]]\" variable=\"ignore\"><$button tooltip={{$:/language/ControlPanel/Basics/RemoveTags/Hint}}><<lingo RemoveTags>><$action-listops $tiddler=<<currentTiddler>> $field=\"text\" $subfilter={{{ [<currentTiddler>get[tags]] }}}/><$action-setfield $tiddler=<<currentTiddler>> tags=\"\"/></$button></$list></$vars> |\n|<$link to=\"$:/config/NewJournal/Tags\"><<lingo NewJournal/Tags/Prompt>></$link> |<$vars currentTiddler=\"$:/config/NewJournal/Tags\" tagField=\"text\">{{||$:/core/ui/EditTemplate/tags}}<$list filter=\"[<currentTiddler>tags[]] +[limit[1]]\" variable=\"ignore\"><$button tooltip={{$:/language/ControlPanel/Basics/RemoveTags/Hint}}><<lingo RemoveTags>><$action-listops $tiddler=<<currentTiddler>> $field=\"text\" $subfilter={{{ [<currentTiddler>get[tags]] }}}/><$action-setfield $tiddler=<<currentTiddler>> tags=\"\"/></$button></$list></$vars> |\n|<$link to=\"$:/config/AutoFocus\"><<lingo AutoFocus/Prompt>></$link> |{{$:/snippets/minifocusswitcher}} |\n|<<lingo Language/Prompt>> |{{$:/snippets/minilanguageswitcher}} |\n|<<lingo Tiddlers/Prompt>> |<<show-filter-count \"[!is[system]sort[title]]\">> |\n|<<lingo Tags/Prompt>> |<<show-filter-count \"[tags[]sort[title]]\">> |\n|<<lingo SystemTiddlers/Prompt>> |<<show-filter-count \"[is[system]sort[title]]\">> |\n|<<lingo ShadowTiddlers/Prompt>> |<<show-filter-count \"[all[shadows]sort[title]]\">> |\n|<<lingo OverriddenShadowTiddlers/Prompt>> |<<show-filter-count \"[is[tiddler]is[shadow]sort[title]]\">> |\n"
        },
        "$:/core/ui/ControlPanel/EditorTypes": {
            "title": "$:/core/ui/ControlPanel/EditorTypes",
            "tags": "$:/tags/ControlPanel/Advanced",
            "caption": "{{$:/language/ControlPanel/EditorTypes/Caption}}",
            "text": "\\define lingo-base() $:/language/ControlPanel/EditorTypes/\n\n<<lingo Hint>>\n\n<table>\n<tbody>\n<tr>\n<th><<lingo Type/Caption>></th>\n<th><<lingo Editor/Caption>></th>\n</tr>\n<$list filter=\"[all[shadows+tiddlers]prefix[$:/config/EditorTypeMappings/]sort[title]]\">\n<tr>\n<td>\n<$link>\n<$list filter=\"[all[current]removeprefix[$:/config/EditorTypeMappings/]]\">\n<$text text={{!!title}}/>\n</$list>\n</$link>\n</td>\n<td>\n<$view field=\"text\"/>\n</td>\n</tr>\n</$list>\n</tbody>\n</table>\n"
        },
        "$:/core/ui/ControlPanel/Info": {
            "title": "$:/core/ui/ControlPanel/Info",
            "tags": "$:/tags/ControlPanel",
            "caption": "{{$:/language/ControlPanel/Info/Caption}}",
            "text": "{{$:/language/ControlPanel/Info/Hint}}\n\n<div class=\"tc-control-panel\">\n<$macrocall $name=\"tabs\" tabsList=\"[all[shadows+tiddlers]tag[$:/tags/ControlPanel/Info]!has[draft.of]]\" default=\"$:/core/ui/ControlPanel/Basics\" explicitState=\"$:/state/tab--2112689675\"/>\n</div>\n"
        },
        "$:/core/ui/ControlPanel/KeyboardShortcuts": {
            "title": "$:/core/ui/ControlPanel/KeyboardShortcuts",
            "tags": "$:/tags/ControlPanel",
            "caption": "{{$:/language/ControlPanel/KeyboardShortcuts/Caption}}",
            "text": "\\define lingo-base() $:/language/ControlPanel/KeyboardShortcuts/\n\n\\define new-shortcut(title)\n<div class=\"tc-dropdown-item-plain\">\n<$edit-shortcut tiddler=\"$title$\" placeholder={{$:/language/ControlPanel/KeyboardShortcuts/Add/Prompt}} focus=\"true\" style=\"width:auto;\"/> <$button>\n<<lingo Add/Caption>>\n<$action-listops\n\t$tiddler=\"$(shortcutTitle)$\"\n\t$field=\"text\"\n\t$subfilter=\"[{$title$}]\"\n/>\n<$action-deletetiddler\n\t$tiddler=\"$title$\"\n/>\n</$button>\n</div>\n\\end\n\n\\define shortcut-list-item(caption)\n<td>\n</td>\n<td style=\"text-align:right;font-size:0.7em;\">\n<<lingo Platform/$caption$>>\n</td>\n<td>\n<div style=\"position:relative;\">\n<$button popup=<<qualify \"$:/state/dropdown/$(shortcutTitle)$\">> class=\"tc-btn-invisible\">\n{{$:/core/images/edit-button}}\n</$button>\n<$macrocall $name=\"displayshortcuts\" $output=\"text/html\" shortcuts={{$(shortcutTitle)$}} prefix=\"<kbd>\" separator=\"</kbd> <kbd>\" suffix=\"</kbd>\"/>\n\n<$reveal state=<<qualify \"$:/state/dropdown/$(shortcutTitle)$\">> type=\"popup\" position=\"below\" animate=\"yes\">\n<div class=\"tc-block-dropdown-wrapper\">\n<div class=\"tc-block-dropdown tc-edit-type-dropdown tc-popup-keep\">\n<$list filter=\"[list[$(shortcutTitle)$!!text]sort[title]]\" variable=\"shortcut\" emptyMessage=\"\"\"\n<div class=\"tc-dropdown-item-plain\">\n//<<lingo NoShortcuts/Caption>>//\n</div>\n\"\"\">\n<div class=\"tc-dropdown-item-plain\">\n<$button class=\"tc-btn-invisible\" tooltip={{$:/language/ControlPanel/KeyboardShortcuts/Remove/Hint}}>\n<$action-listops\n\t$tiddler=\"$(shortcutTitle)$\"\n\t$field=\"text\"\n\t$subfilter=\"+[remove<shortcut>]\"\n/>\n<small>{{$:/core/images/close-button}}</small>\n</$button>\n<kbd>\n<$macrocall $name=\"displayshortcuts\" $output=\"text/html\" shortcuts=<<shortcut>>/>\n</kbd>\n</div>\n</$list>\n<hr/>\n<$macrocall $name=\"new-shortcut\" title=<<qualify \"$:/state/new-shortcut/$(shortcutTitle)$\">>/>\n</div>\n</div>\n</$reveal>\n</div>\n</td>\n\\end\n\n\\define shortcut-list(caption,prefix)\n<tr>\n<$list filter=\"[[$prefix$$(shortcutName)$]]\" variable=\"shortcutTitle\">\n<<shortcut-list-item \"$caption$\">>\n</$list>\n</tr>\n\\end\n\n\\define shortcut-editor()\n<<shortcut-list \"All\" \"$:/config/shortcuts/\">>\n<<shortcut-list \"Mac\" \"$:/config/shortcuts-mac/\">>\n<<shortcut-list \"NonMac\" \"$:/config/shortcuts-not-mac/\">>\n<<shortcut-list \"Linux\" \"$:/config/shortcuts-linux/\">>\n<<shortcut-list \"NonLinux\" \"$:/config/shortcuts-not-linux/\">>\n<<shortcut-list \"Windows\" \"$:/config/shortcuts-windows/\">>\n<<shortcut-list \"NonWindows\" \"$:/config/shortcuts-not-windows/\">>\n\\end\n\n\\define shortcut-preview()\n<$macrocall $name=\"displayshortcuts\" $output=\"text/html\" shortcuts={{$(shortcutPrefix)$$(shortcutName)$}} prefix=\"<kbd>\" separator=\"</kbd> <kbd>\" suffix=\"</kbd>\"/>\n\\end\n\n\\define shortcut-item-inner()\n<tr>\n<td>\n<$reveal type=\"nomatch\" state=<<dropdownStateTitle>> text=\"open\">\n<$button class=\"tc-btn-invisible\">\n<$action-setfield\n\t$tiddler=<<dropdownStateTitle>>\n\t$value=\"open\"\n/>\n{{$:/core/images/right-arrow}}\n</$button>\n</$reveal>\n<$reveal type=\"match\" state=<<dropdownStateTitle>> text=\"open\">\n<$button class=\"tc-btn-invisible\">\n<$action-setfield\n\t$tiddler=<<dropdownStateTitle>>\n\t$value=\"close\"\n/>\n{{$:/core/images/down-arrow}}\n</$button>\n</$reveal>\n''<$text text=<<shortcutName>>/>''\n</td>\n<td>\n<$transclude tiddler=\"$:/config/ShortcutInfo/$(shortcutName)$\"/>\n</td>\n<td>\n<$list filter=\"$:/config/shortcuts/ $:/config/shortcuts-mac/ $:/config/shortcuts-not-mac/ $:/config/shortcuts-linux/ $:/config/shortcuts-not-linux/ $:/config/shortcuts-windows/ $:/config/shortcuts-not-windows/\" variable=\"shortcutPrefix\">\n<<shortcut-preview>>\n</$list>\n</td>\n</tr>\n<$set name=\"dropdownState\" value={{$(dropdownStateTitle)$}}>\n<$list filter=\"[<dropdownState>match[open]]\" variable=\"listItem\">\n<<shortcut-editor>>\n</$list>\n</$set>\n\\end\n\n\\define shortcut-item()\n<$set name=\"dropdownStateTitle\" value=<<qualify \"$:/state/dropdown/keyboardshortcut/$(shortcutName)$\">>>\n<<shortcut-item-inner>>\n</$set>\n\\end\n\n<table>\n<tbody>\n<$list filter=\"[all[shadows+tiddlers]removeprefix[$:/config/ShortcutInfo/]]\" variable=\"shortcutName\">\n<<shortcut-item>>\n</$list>\n</tbody>\n</table>\n"
        },
        "$:/core/ui/ControlPanel/LoadedModules": {
            "title": "$:/core/ui/ControlPanel/LoadedModules",
            "tags": "$:/tags/ControlPanel/Advanced",
            "caption": "{{$:/language/ControlPanel/LoadedModules/Caption}}",
            "text": "\\define lingo-base() $:/language/ControlPanel/\n<<lingo LoadedModules/Hint>>\n\n{{$:/snippets/modules}}\n"
        },
        "$:/core/ui/ControlPanel/Modals/AddPlugins": {
            "title": "$:/core/ui/ControlPanel/Modals/AddPlugins",
            "subtitle": "{{$:/core/images/download-button}} {{$:/language/ControlPanel/Plugins/Add/Caption}}",
            "text": "\\define install-plugin-actions()\n<$action-sendmessage $message=\"tm-load-plugin-from-library\" url={{!!url}} title={{$(assetInfo)$!!original-title}}/>\n<$set name=\"url\" value={{!!url}}>\n<$set name=\"currentTiddler\" value=<<assetInfo>>>\n<$list filter=\"[enlist{!!dependents}] [{!!parent-plugin}] +[sort[name]]\" variable=\"dependency\">\n<$action-sendmessage $message=\"tm-load-plugin-from-library\" url=<<url>> title=<<dependency>>/>\n</$list>\n</$set>\n</$set>\n\\end\n\n\\define install-plugin-button()\n<div>\n<$set name=\"libraryVersion\" value={{{ [<assetInfo>get[version]] }}}>\n<$set name=\"installedVersion\" value={{{ [<assetInfo>get[original-title]get[version]] }}}>\n<$set name=\"reinstall-type\" value={{{ [<libraryVersion>compare:version:eq<installedVersion>then[tc-reinstall]] [<libraryVersion>compare:version:gt<installedVersion>then[tc-reinstall-upgrade]] [<libraryVersion>compare:version:lt<installedVersion>then[tc-reinstall-downgrade]] }}}>\n<$button actions=<<install-plugin-actions>> class={{{ [<assetInfo>get[original-title]has[version]then<reinstall-type>] tc-btn-invisible tc-install-plugin +[join[ ]] }}}>\n{{$:/core/images/download-button}}\n<$list filter=\"[<assetInfo>get[original-title]get[version]]\" variable=\"ignore\" emptyMessage=\"{{$:/language/ControlPanel/Plugins/Install/Caption}}\">\n<$list filter=\"[<libraryVersion>compare:version:gt<installedVersion>]\" variable=\"ignore\" emptyMessage=\"\"\"\n<$list filter=\"[<libraryVersion>compare:version:lt<installedVersion>]\" variable=\"ignore\" emptyMessage=\"{{$:/language/ControlPanel/Plugins/Reinstall/Caption}}\">\n{{$:/language/ControlPanel/Plugins/Downgrade/Caption}}\n</$list>\n\"\"\">\n{{$:/language/ControlPanel/Plugins/Update/Caption}}\n</$list>\n</$list>\n</$button>\n<div>\n</div>\n<$reveal stateTitle=<<assetInfo>> stateField=\"requires-reload\" type=\"match\" text=\"yes\">{{$:/language/ControlPanel/Plugins/PluginWillRequireReload}}</$reveal>\n</$set>\n</$set>\n</$set>\n</div>\n\\end\n\n\\define popup-state-macro()\n$:/state/add-plugin-info/$(connectionTiddler)$/$(assetInfo)$\n\\end\n\n\\define display-plugin-info(type)\n<$set name=\"popup-state\" value=<<popup-state-macro>>>\n<div class=\"tc-plugin-info\">\n<div class=\"tc-plugin-info-chunk tc-plugin-info-toggle\">\n<$reveal type=\"nomatch\" state=<<popup-state>> text=\"yes\">\n<$button class=\"tc-btn-invisible tc-btn-dropdown\" set=<<popup-state>> setTo=\"yes\">\n{{$:/core/images/chevron-right}}\n</$button>\n</$reveal>\n<$reveal type=\"match\" state=<<popup-state>> text=\"yes\">\n<$button class=\"tc-btn-invisible tc-btn-dropdown\" set=<<popup-state>> setTo=\"no\">\n{{$:/core/images/chevron-down}}\n</$button>\n</$reveal>\n</div>\n<div class=\"tc-plugin-info-chunk tc-plugin-info-icon\">\n<$list filter=\"[<assetInfo>has[icon]]\" emptyMessage=\"\"\"<$transclude tiddler=\"$:/core/images/plugin-generic-$type$\"/>\"\"\">\n<img src={{$(assetInfo)$!!icon}}/>\n</$list>\n</div>\n<div class=\"tc-plugin-info-chunk tc-plugin-info-description\">\n<h1><strong><$text text={{{ [<assetInfo>get[name]] ~[<assetInfo>get[original-title]split[/]last[1]] }}}/></strong>: <$view tiddler=<<assetInfo>> field=\"description\"/></h1>\n<h2><$view tiddler=<<assetInfo>> field=\"original-title\"/></h2>\n<div><em><$view tiddler=<<assetInfo>> field=\"version\"/></em></div>\n<$list filter=\"[<assetInfo>get[original-title]get[version]]\" variable=\"installedVersion\"><div><em>{{$:/language/ControlPanel/Plugins/AlreadyInstalled/Hint}}</em></div></$list>\n</div>\n<div class=\"tc-plugin-info-chunk tc-plugin-info-buttons\">\n<<install-plugin-button>>\n</div>\n</div>\n<$set name=\"original-title\" value={{{ [<assetInfo>get[original-title]] }}}>\n<$reveal type=\"match\" text=\"yes\" state=<<popup-state>>>\n<div class=\"tc-plugin-info-dropdown\">\n<$list filter=\"[enlist{!!dependents}] [<currentTiddler>get[parent-plugin]] +[limit[1]] ~[<assetInfo>get[original-title]!is[tiddler]]\" variable=\"ignore\">\n<div class=\"tc-plugin-info-dropdown-message\">\n<$list filter=\"[<assetInfo>get[original-title]!is[tiddler]]\">\n{{$:/language/ControlPanel/Plugins/NotInstalled/Hint}}\n</$list>\n<$set name=\"currentTiddler\" value=<<assetInfo>>>\n<$list filter=\"[enlist{!!dependents}] [<currentTiddler>get[parent-plugin]] +[limit[1]]\" variable=\"ignore\">\n<div>\n{{$:/language/ControlPanel/Plugins/AlsoRequires}}\n<$list filter=\"[enlist{!!dependents}] [{!!parent-plugin}] +[sort[name]]\" variable=\"dependency\">\n<$text text=<<dependency>>/>\n</$list>\n</div>\n</$list>\n</$set>\n</div>\n</$list>\n<div class=\"tc-plugin-info-dropdown-body\">\n<$transclude tiddler=<<assetInfo>> field=\"readme\" mode=\"block\"/>\n</div>\n<$list filter=\"[all[tiddlers+shadows]tag[$:/tags/RemoteAssetInfo]server-url{!!url}original-plugin-type[$type$]has[parent-plugin]parent-plugin<original-title>limit[1]]\" variable=\"ignore\">\n<div class=\"tc-plugin-info-sub-plugins\">\n<$list filter=\"[all[tiddlers+shadows]tag[$:/tags/RemoteAssetInfo]server-url{!!url}original-plugin-type[$type$]has[parent-plugin]parent-plugin<original-title>sort[name]]\" variable=\"assetInfo\">\n<<display-plugin-info \"$type$\">>\n</$list>\n</div>\n</$list>\n</div>\n</$reveal>\n<$list filter=\"[all[tiddlers+shadows]tag[$:/tags/RemoteAssetInfo]server-url{!!url}original-plugin-type[$type$]has[parent-plugin]parent-plugin<original-title>limit[1]]\" variable=\"ignore\">\n<$reveal type=\"nomatch\" text=\"yes\" state=<<popup-state>> tag=\"div\" class=\"tc-plugin-info-sub-plugin-indicator\">\n<$wikify name=\"count\" text=\"\"\"<$count filter=\"[all[tiddlers+shadows]tag[$:/tags/RemoteAssetInfo]server-url{!!url}original-plugin-type[$type$]has[parent-plugin]parent-plugin<original-title>]\"/>\"\"\">\n<$button class=\"tc-btn-invisible\" set=<<popup-state>> setTo=\"yes\">\n{{$:/language/ControlPanel/Plugins/SubPluginPrompt}}\n</$button>\n</$wikify>\n</$reveal>\n</$list>\n</$set>\n</$set>\n\\end\n\n\\define load-plugin-library-button()\n<$list filter=\"[<currentTiddler>get[enabled]else[yes]match[yes]]\" variable=\"ignore\">\n<$button class=\"tc-btn-big-green\">\n<$action-sendmessage $message=\"tm-load-plugin-library\" url={{!!url}} infoTitlePrefix=\"$:/temp/RemoteAssetInfo/\"/>\n{{$:/core/images/chevron-right}} {{$:/language/ControlPanel/Plugins/OpenPluginLibrary}}\n</$button>\n</$list>\n\\end\n\n\\define display-server-assets(type)\n{{$:/language/Search/Search}}: <$edit-text tiddler=\"\"\"$:/temp/RemoteAssetSearch/$(currentTiddler)$\"\"\" default=\"\" type=\"search\" tag=\"input\"/>\n<$reveal state=\"\"\"$:/temp/RemoteAssetSearch/$(currentTiddler)$\"\"\" type=\"nomatch\" text=\"\">\n<$button class=\"tc-btn-invisible\">\n<$action-setfield $tiddler=\"\"\"$:/temp/RemoteAssetSearch/$(currentTiddler)$\"\"\" $field=\"text\" $value=\"\"/>\n{{$:/core/images/close-button}}\n</$button>\n</$reveal>\n<div class=\"tc-plugin-library-listing\">\n<$list filter=\"[all[tiddlers+shadows]tag[$:/tags/RemoteAssetInfo]server-url{!!url}original-plugin-type[$type$]search:author,description,original-title,readme,title{$:/temp/RemoteAssetSearch/$(currentTiddler)$}sort[name]]\" variable=\"assetInfo\">\n<$list filter=\"[[$:/temp/RemoteAssetSearch/$(currentTiddler)$]has[text]] ~[<assetInfo>!has[parent-plugin]]\" variable=\"ignore\"><!-- Hide sub-plugins if we're not searching -->\n<<display-plugin-info \"$type$\">>\n</$list>\n</$list>\n</div>\n\\end\n\n\\define display-server-connection()\n<$list filter=\"[all[tiddlers+shadows]tag[$:/tags/ServerConnection]suffix{!!url}]\" variable=\"connectionTiddler\" emptyMessage=<<load-plugin-library-button>>>\n\n<$set name=\"transclusion\" value=<<connectionTiddler>>>\n\n<<tabs \"[[$:/core/ui/ControlPanel/Plugins/Add/Updates]] [[$:/core/ui/ControlPanel/Plugins/Add/Plugins]] [[$:/core/ui/ControlPanel/Plugins/Add/Themes]] [[$:/core/ui/ControlPanel/Plugins/Add/Languages]]\" \"$:/core/ui/ControlPanel/Plugins/Add/Plugins\">>\n\n</$set>\n\n</$list>\n\\end\n\n\\define close-library-button()\n<$reveal type='nomatch' state='$:/temp/ServerConnection/$(PluginLibraryURL)$' text=''>\n<$button class='tc-btn-big-green'>\n<$action-sendmessage $message=\"tm-unload-plugin-library\" url={{!!url}}/>\n{{$:/core/images/chevron-left}} {{$:/language/ControlPanel/Plugins/ClosePluginLibrary}}\n<$action-deletetiddler $filter=\"[prefix[$:/temp/ServerConnection/$(PluginLibraryURL)$]][prefix[$:/temp/RemoteAssetInfo/$(PluginLibraryURL)$]]\"/>\n</$button>\n</$reveal>\n\\end\n\n\\define plugin-library-listing()\n<div class=\"tc-tab-set\">\n<$set name=\"defaultTab\" value={{{ [all[tiddlers+shadows]tag[$:/tags/PluginLibrary]] }}}>\n<div class=\"tc-tab-buttons\">\n<$list filter=\"[all[tiddlers+shadows]tag[$:/tags/PluginLibrary]]\">\n<$button set=<<qualify \"$:/state/addplugins/tab\">> setTo=<<currentTiddler>> default=<<defaultTab>> selectedClass=\"tc-tab-selected\">\n<$set name=\"tv-wikilinks\" value=\"no\">\n<$transclude field=\"caption\"/>\n</$set>\n</$button>\n</$list>\n</div>\n<div class=\"tc-tab-divider\"/>\n<div class=\"tc-tab-content\">\n<$list filter=\"[all[tiddlers+shadows]tag[$:/tags/PluginLibrary]]\">\n<$reveal type=\"match\" state=<<qualify \"$:/state/addplugins/tab\">> text=<<currentTiddler>> default=<<defaultTab>>>\n<h2><$link><$transclude field=\"caption\"><$view field=\"title\"/></$transclude></$link></h2>\n//<$view field=\"url\"/>//\n<$transclude mode=\"block\"/>\n<$set name=PluginLibraryURL value={{!!url}}>\n<<close-library-button>>\n</$set>\n<<display-server-connection>>\n</$reveal>\n</$list>\n</div>\n</$set>\n</div>\n\\end\n\n\\import [[$:/core/ui/PageMacros]] [all[shadows+tiddlers]tag[$:/tags/Macro]!has[draft.of]]\n\n<div>\n<<plugin-library-listing>>\n</div>\n"
        },
        "$:/core/ui/ControlPanel/Palette": {
            "title": "$:/core/ui/ControlPanel/Palette",
            "tags": "$:/tags/ControlPanel/Appearance",
            "caption": "{{$:/language/ControlPanel/Palette/Caption}}",
            "text": "\\define lingo-base() $:/language/ControlPanel/Palette/\n\n{{$:/snippets/paletteswitcher}}\n\n<$reveal type=\"nomatch\" state=\"$:/state/ShowPaletteEditor\" text=\"yes\">\n\n<$button set=\"$:/state/ShowPaletteEditor\" setTo=\"yes\"><<lingo ShowEditor/Caption>></$button>\n\n</$reveal>\n\n<$reveal type=\"match\" state=\"$:/state/ShowPaletteEditor\" text=\"yes\">\n\n<$button set=\"$:/state/ShowPaletteEditor\" setTo=\"no\"><<lingo HideEditor/Caption>></$button>\n{{$:/PaletteManager}}\n\n</$reveal>\n\n"
        },
        "$:/core/ui/ControlPanel/Parsing": {
            "title": "$:/core/ui/ControlPanel/Parsing",
            "tags": "$:/tags/ControlPanel/Advanced",
            "caption": "{{$:/language/ControlPanel/Parsing/Caption}}",
            "text": "\\define lingo-base() $:/language/ControlPanel/Parsing/\n\n\\define toggle(Type)\n<$checkbox\ntiddler=\"\"\"$:/config/WikiParserRules/$Type$/$(rule)$\"\"\"\nfield=\"text\"\nchecked=\"enable\"\nunchecked=\"disable\"\ndefault=\"enable\">\n<<rule>>\n</$checkbox>\n\\end\n\n\\define rules(type,Type)\n<$list filter=\"[wikiparserrules[$type$]]\" variable=\"rule\">\n<dd><<toggle $Type$>></dd>\n</$list>\n\\end\n\n<<lingo Hint>>\n\n<dl>\n<dt><<lingo Pragma/Caption>></dt>\n<<rules pragma Pragma>>\n<dt><<lingo Inline/Caption>></dt>\n<<rules inline Inline>>\n<dt><<lingo Block/Caption>></dt>\n<<rules block Block>>\n</dl>"
        },
        "$:/core/ui/ControlPanel/Plugins/Add/Languages": {
            "title": "$:/core/ui/ControlPanel/Plugins/Add/Languages",
            "caption": "{{$:/language/ControlPanel/Plugins/Languages/Caption}} (<$count filter=\"[all[tiddlers+shadows]tag[$:/tags/RemoteAssetInfo]server-url{!!url}original-plugin-type[language]]\"/>)",
            "text": "<<display-server-assets language>>\n"
        },
        "$:/core/ui/ControlPanel/Plugins/Add/Plugins": {
            "title": "$:/core/ui/ControlPanel/Plugins/Add/Plugins",
            "caption": "{{$:/language/ControlPanel/Plugins/Plugins/Caption}}  (<$count filter=\"[all[tiddlers+shadows]tag[$:/tags/RemoteAssetInfo]server-url{!!url}original-plugin-type[plugin]]\"/>)",
            "text": "<<display-server-assets plugin>>\n"
        },
        "$:/core/ui/ControlPanel/Plugins/Add/Themes": {
            "title": "$:/core/ui/ControlPanel/Plugins/Add/Themes",
            "caption": "{{$:/language/ControlPanel/Plugins/Themes/Caption}}  (<$count filter=\"[all[tiddlers+shadows]tag[$:/tags/RemoteAssetInfo]server-url{!!url}original-plugin-type[theme]]\"/>)",
            "text": "<<display-server-assets theme>>\n"
        },
        "$:/core/ui/ControlPanel/Plugins/Add/Updates": {
            "title": "$:/core/ui/ControlPanel/Plugins/Add/Updates",
            "caption": "<$importvariables filter=\"$:/core/ui/ControlPanel/Plugins/Add/Updates\">{{$:/language/ControlPanel/Plugins/Updates/Caption}} (<<update-count>>)</$importvariables>",
            "text": "\\define each-updateable-plugin(body)\n<$list filter=\"[all[tiddlers+shadows]tag[$:/tags/RemoteAssetInfo]server-url{!!url}sort[title]]\" variable=\"assetInfo\">\n<$set name=\"libraryVersion\" value={{{ [<assetInfo>get[version]] }}}>\n<$list filter=\"[<assetInfo>get[original-title]has[version]!version<libraryVersion>]\" variable=\"ignore\">\n<$set name=\"installedVersion\" value={{{ [<assetInfo>get[original-title]get[version]] }}}>\n<$list filter=\"[<installedversion>!match<libraryVersion>]\" variable=\"ignore\">\n$body$\n</$list>\n</$set>\n</$list>\n</$set>\n</$list>\n\\end\n\n\\define update-all-actions()\n<$macrocall $name=\"each-updateable-plugin\" body=\"\"\"\n<<install-plugin-actions>>\n\"\"\"/>\n\\end\n\n\\define update-count()\n<$wikify name=\"count-filter\" text=<<each-updateable-plugin \"&#91;&#91;<$text text=<<assetInfo>>/>]]\">>><$count filter=<<count-filter>>/></$wikify>\n\\end\n\n<$button actions=<<update-all-actions>> class=\"tc-btn-invisible tc-install-plugin tc-reinstall-upgrade\">\n{{$:/core/images/download-button}} {{||$:/language/ControlPanel/Plugins/Updates/UpdateAll/Caption}}\n</$button>\n\n<div class=\"tc-plugin-library-listing\">\n<$macrocall $name=\"each-updateable-plugin\" body=\"\"\"\n<$macrocall $name=\"display-plugin-info\" type={{{ [<assetInfo>get[original-plugin-type]] }}}/>\n\"\"\"/>\n</div>\n"
        },
        "$:/core/ui/ControlPanel/Plugins/AddPlugins": {
            "title": "$:/core/ui/ControlPanel/Plugins/AddPlugins",
            "text": "\\define lingo-base() $:/language/ControlPanel/Plugins/\n\n<$button message=\"tm-modal\" param=\"$:/core/ui/ControlPanel/Modals/AddPlugins\" tooltip={{$:/language/ControlPanel/Plugins/Add/Hint}} class=\"tc-btn-big-green tc-primary-btn\">\n{{$:/core/images/download-button}} <<lingo Add/Caption>>\n</$button>\n"
        },
        "$:/core/ui/ControlPanel/Plugins/Installed/Languages": {
            "title": "$:/core/ui/ControlPanel/Plugins/Installed/Languages",
            "caption": "{{$:/language/ControlPanel/Plugins/Languages/Caption}} (<$count filter=\"[!has[draft.of]plugin-type[language]]\"/>)",
            "text": "<<plugin-table language>>\n"
        },
        "$:/core/ui/ControlPanel/Plugins/Installed/Plugins": {
            "title": "$:/core/ui/ControlPanel/Plugins/Installed/Plugins",
            "caption": "{{$:/language/ControlPanel/Plugins/Plugins/Caption}} (<$count filter=\"[!has[draft.of]plugin-type[plugin]]\"/>)",
            "text": "<<plugin-table plugin>>\n"
        },
        "$:/core/ui/ControlPanel/Plugins/Installed/Themes": {
            "title": "$:/core/ui/ControlPanel/Plugins/Installed/Themes",
            "caption": "{{$:/language/ControlPanel/Plugins/Themes/Caption}} (<$count filter=\"[!has[draft.of]plugin-type[theme]]\"/>)",
            "text": "<<plugin-table theme>>\n"
        },
        "$:/core/ui/ControlPanel/Plugins": {
            "title": "$:/core/ui/ControlPanel/Plugins",
            "tags": "$:/tags/ControlPanel",
            "caption": "{{$:/language/ControlPanel/Plugins/Caption}}",
            "text": "\\define lingo-base() $:/language/ControlPanel/Plugins/\n\n\\define plugin-table(type)\n<$set name=\"plugin-type\" value=\"\"\"$type$\"\"\">\n<$set name=\"qualified-state\" value=<<qualify \"$:/state/plugin-info\">>>\n<$list filter=\"[!has[draft.of]plugin-type[$type$]sort[name]]\" emptyMessage=<<lingo \"Empty/Hint\">> template=\"$:/core/ui/Components/plugin-info\"/>\n</$set>\n</$set>\n\\end\n\n{{$:/core/ui/ControlPanel/Plugins/AddPlugins}}\n\n<<lingo Installed/Hint>>\n\n<$macrocall $name=\"tabs\" tabsList=\"[[$:/core/ui/ControlPanel/Plugins/Installed/Plugins]] [[$:/core/ui/ControlPanel/Plugins/Installed/Themes]] [[$:/core/ui/ControlPanel/Plugins/Installed/Languages]]\" default=\"$:/core/ui/ControlPanel/Plugins/Installed/Plugins\" explicitState=\"$:/state/tab--86143343\"/>\n"
        },
        "$:/core/ui/ControlPanel/Saving/DownloadSaver": {
            "title": "$:/core/ui/ControlPanel/Saving/DownloadSaver",
            "tags": "$:/tags/ControlPanel/Saving",
            "caption": "{{$:/language/ControlPanel/Saving/DownloadSaver/Caption}}",
            "text": "\\define lingo-base() $:/language/ControlPanel/Saving/DownloadSaver/\n\n<<lingo Hint>>\n\n!! <$link to=\"$:/config/DownloadSaver/AutoSave\"><<lingo AutoSave/Hint>></$link>\n\n<$checkbox tiddler=\"$:/config/DownloadSaver/AutoSave\" field=\"text\" checked=\"yes\" unchecked=\"no\" default=\"no\"> <<lingo AutoSave/Description>> </$checkbox>\n"
        },
        "$:/core/ui/ControlPanel/Saving/General": {
            "title": "$:/core/ui/ControlPanel/Saving/General",
            "tags": "$:/tags/ControlPanel/Saving",
            "caption": "{{$:/language/ControlPanel/Saving/General/Caption}}",
            "list-before": "",
            "text": "\\define lingo-base() $:/language/ControlPanel/Settings/\n\n{{$:/language/ControlPanel/Saving/General/Hint}}\n\n!! <$link to=\"$:/config/AutoSave\"><<lingo AutoSave/Caption>></$link>\n\n<<lingo AutoSave/Hint>>\n\n<$radio tiddler=\"$:/config/AutoSave\" value=\"yes\"> <<lingo AutoSave/Enabled/Description>> </$radio>\n\n<$radio tiddler=\"$:/config/AutoSave\" value=\"no\"> <<lingo AutoSave/Disabled/Description>> </$radio>\n"
        },
        "$:/core/ui/ControlPanel/Saving/GitHub": {
            "title": "$:/core/ui/ControlPanel/Saving/GitHub",
            "tags": "$:/tags/ControlPanel/Saving",
            "caption": "{{$:/language/ControlPanel/Saving/GitService/GitHub/Caption}}",
            "text": "\\define lingo-base() $:/language/ControlPanel/Saving/GitService/\n\\define service-name() ~GitHub\n\n<<lingo Description>>\n\n|<<lingo UserName>> |<$edit-text tiddler=\"$:/GitHub/Username\" default=\"\" tag=\"input\"/> |\n|<<lingo GitHub/Password>> |<$password name=\"github\"/> |\n|<<lingo Repo>> |<$edit-text tiddler=\"$:/GitHub/Repo\" default=\"\" tag=\"input\"/> |\n|<<lingo Branch>> |<$edit-text tiddler=\"$:/GitHub/Branch\" default=\"master\" tag=\"input\"/> |\n|<<lingo Path>> |<$edit-text tiddler=\"$:/GitHub/Path\" default=\"\" tag=\"input\"/> |\n|<<lingo Filename>> |<$edit-text tiddler=\"$:/GitHub/Filename\" default=\"\" tag=\"input\"/> |\n|<<lingo ServerURL>> |<$edit-text tiddler=\"$:/GitHub/ServerURL\" default=\"https://api.github.com\" tag=\"input\"/> |"
        },
        "$:/core/ui/ControlPanel/Saving/GitLab": {
            "title": "$:/core/ui/ControlPanel/Saving/GitLab",
            "tags": "$:/tags/ControlPanel/Saving",
            "caption": "{{$:/language/ControlPanel/Saving/GitService/GitLab/Caption}}",
            "text": "\\define lingo-base() $:/language/ControlPanel/Saving/GitService/\n\\define service-name() ~GitLab\n\n<<lingo Description>>\n\n|<<lingo UserName>> |<$edit-text tiddler=\"$:/GitLab/Username\" default=\"\" tag=\"input\"/> |\n|<<lingo GitLab/Password>> |<$password name=\"gitlab\"/> |\n|<<lingo Repo>> |<$edit-text tiddler=\"$:/GitLab/Repo\" default=\"\" tag=\"input\"/> |\n|<<lingo Branch>> |<$edit-text tiddler=\"$:/GitLab/Branch\" default=\"master\" tag=\"input\"/> |\n|<<lingo Path>> |<$edit-text tiddler=\"$:/GitLab/Path\" default=\"\" tag=\"input\"/> |\n|<<lingo Filename>> |<$edit-text tiddler=\"$:/GitLab/Filename\" default=\"\" tag=\"input\"/> |\n|<<lingo ServerURL>> |<$edit-text tiddler=\"$:/GitLab/ServerURL\" default=\"https://gitlab.com/api/v4\" tag=\"input\"/> |"
        },
        "$:/core/ui/ControlPanel/Saving/TiddlySpot": {
            "title": "$:/core/ui/ControlPanel/Saving/TiddlySpot",
            "tags": "$:/tags/ControlPanel/Saving",
            "caption": "{{$:/language/ControlPanel/Saving/TiddlySpot/Caption}}",
            "text": "\\define lingo-base() $:/language/ControlPanel/Saving/TiddlySpot/\n\n\\define siteURL(path)\nhttp://$(userName)$.tiddlyspot.com/$path$/\n\\end\n\\define siteLink(path)\n<$reveal type=\"nomatch\" state=\"$:/UploadName\" text=\"\">\n<$set name=\"userName\" value={{$:/UploadName}}>\n<$reveal type=\"match\" state=\"$:/UploadURL\" text=\"\">\n<<siteURL $path$>>\n</$reveal>\n<$reveal type=\"nomatch\" state=\"$:/UploadURL\" text=\"\">\n<$macrocall $name=resolvePath source={{$:/UploadBackupDir}} root={{$:/UploadURL}}>>\n</$reveal>\n</$set>\n</$reveal>\n\\end\n\n<div class=\"tc-message-box\">\n\n<<lingo ReadOnly>>\n\n</div>\n\n<<lingo Description>>\n\n|<<lingo UserName>> |<$edit-text tiddler=\"$:/UploadName\" default=\"\" tag=\"input\"/> |\n|<<lingo Password>> |<$password name=\"upload\"/> |\n|<<lingo Backups>> |<<siteLink backup>> |\n|<<lingo ControlPanel>> |<<siteLink controlpanel>> |\n\n''<<lingo Advanced/Heading>>''\n\n|<<lingo ServerURL>>  |<$edit-text tiddler=\"$:/UploadURL\" default=\"\" tag=\"input\"/> |\n|<<lingo Filename>> |<$edit-text tiddler=\"$:/UploadFilename\" default=\"index.html\" tag=\"input\"/> |\n|<<lingo UploadDir>> |<$edit-text tiddler=\"$:/UploadDir\" default=\".\" tag=\"input\"/> |\n|<<lingo BackupDir>> |<$edit-text tiddler=\"$:/UploadBackupDir\" default=\".\" tag=\"input\"/> |\n\n<<lingo TiddlySpot/Hint>>\n"
        },
        "$:/core/ui/ControlPanel/Saving/Gitea": {
            "title": "$:/core/ui/ControlPanel/Saving/Gitea",
            "tags": "$:/tags/ControlPanel/Saving",
            "caption": "{{$:/language/ControlPanel/Saving/GitService/Gitea/Caption}}",
            "text": "\\define lingo-base() $:/language/ControlPanel/Saving/GitService/\n\\define service-name() ~Gitea\n\n<<lingo Description>>\n\n|<<lingo UserName>> |<$edit-text tiddler=\"$:/Gitea/Username\" default=\"\" tag=\"input\"/> |\n|<<lingo Gitea/Password>> |<$password name=\"Gitea\"/> |\n|<<lingo Repo>> |<$edit-text tiddler=\"$:/Gitea/Repo\" default=\"\" tag=\"input\"/> |\n|<<lingo Branch>> |<$edit-text tiddler=\"$:/Gitea/Branch\" default=\"master\" tag=\"input\"/> |\n|<<lingo Path>> |<$edit-text tiddler=\"$:/Gitea/Path\" default=\"\" tag=\"input\"/> |\n|<<lingo Filename>> |<$edit-text tiddler=\"$:/Gitea/Filename\" default=\"\" tag=\"input\"/> |\n|<<lingo ServerURL>> |<$edit-text tiddler=\"$:/Gitea/ServerURL\" default=\"https://gitea/api/v1\" tag=\"input\"/> |\n"
        },
        "$:/core/ui/ControlPanel/Saving": {
            "title": "$:/core/ui/ControlPanel/Saving",
            "tags": "$:/tags/ControlPanel",
            "caption": "{{$:/language/ControlPanel/Saving/Caption}}",
            "text": "{{$:/language/ControlPanel/Saving/Hint}}\n\n<div class=\"tc-control-panel\">\n<$macrocall $name=\"tabs\" tabsList=\"[all[shadows+tiddlers]tag[$:/tags/ControlPanel/Saving]!has[draft.of]]\" default=\"$:/core/ui/ControlPanel/Saving/General\" explicitState=\"$:/state/tab-2065006209\"/>\n</div>\n"
        },
        "$:/core/buttonstyles/Borderless": {
            "title": "$:/core/buttonstyles/Borderless",
            "tags": "$:/tags/ToolbarButtonStyle",
            "caption": "{{$:/language/ControlPanel/Settings/ToolbarButtonStyle/Styles/Borderless}}",
            "text": "tc-btn-invisible"
        },
        "$:/core/buttonstyles/Boxed": {
            "title": "$:/core/buttonstyles/Boxed",
            "tags": "$:/tags/ToolbarButtonStyle",
            "caption": "{{$:/language/ControlPanel/Settings/ToolbarButtonStyle/Styles/Boxed}}",
            "text": "tc-btn-boxed"
        },
        "$:/core/buttonstyles/Rounded": {
            "title": "$:/core/buttonstyles/Rounded",
            "tags": "$:/tags/ToolbarButtonStyle",
            "caption": "{{$:/language/ControlPanel/Settings/ToolbarButtonStyle/Styles/Rounded}}",
            "text": "tc-btn-rounded"
        },
        "$:/core/ui/ControlPanel/Settings/CamelCase": {
            "title": "$:/core/ui/ControlPanel/Settings/CamelCase",
            "tags": "$:/tags/ControlPanel/Settings",
            "caption": "{{$:/language/ControlPanel/Settings/CamelCase/Caption}}",
            "text": "\\define lingo-base() $:/language/ControlPanel/Settings/CamelCase/\n<<lingo Hint>>\n\n<$checkbox tiddler=\"$:/config/WikiParserRules/Inline/wikilink\" field=\"text\" checked=\"enable\" unchecked=\"disable\" default=\"enable\"> <$link to=\"$:/config/WikiParserRules/Inline/wikilink\"><<lingo Description>></$link> </$checkbox>\n"
        },
        "$:/core/ui/ControlPanel/Settings/DefaultMoreSidebarTab": {
            "title": "$:/core/ui/ControlPanel/Settings/DefaultMoreSidebarTab",
            "caption": "{{$:/language/ControlPanel/Settings/DefaultMoreSidebarTab/Caption}}",
            "tags": "$:/tags/ControlPanel/Settings",
            "text": "\\define lingo-base() $:/language/ControlPanel/Settings/DefaultMoreSidebarTab/\n\n<$link to=\"$:/config/DefaultMoreSidebarTab\"><<lingo Hint>></$link>\n\n<$select tiddler=\"$:/config/DefaultMoreSidebarTab\">\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/MoreSideBar]!has[draft.of]]\">\n<option value=<<currentTiddler>>><$transclude field=\"caption\"><$text text=<<currentTiddler>>/></$transclude></option>\n</$list>\n</$select>\n"
        },
        "$:/core/ui/ControlPanel/Settings/DefaultSidebarTab": {
            "title": "$:/core/ui/ControlPanel/Settings/DefaultSidebarTab",
            "caption": "{{$:/language/ControlPanel/Settings/DefaultSidebarTab/Caption}}",
            "tags": "$:/tags/ControlPanel/Settings",
            "text": "\\define lingo-base() $:/language/ControlPanel/Settings/DefaultSidebarTab/\n\n<$link to=\"$:/config/DefaultSidebarTab\"><<lingo Hint>></$link>\n\n<$select tiddler=\"$:/config/DefaultSidebarTab\">\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/SideBar]!has[draft.of]]\">\n<option value=<<currentTiddler>>><$transclude field=\"caption\"><$text text=<<currentTiddler>>/></$transclude></option>\n</$list>\n</$select>\n"
        },
        "$:/core/ui/ControlPanel/Settings/EditorToolbar": {
            "title": "$:/core/ui/ControlPanel/Settings/EditorToolbar",
            "tags": "$:/tags/ControlPanel/Settings",
            "caption": "{{$:/language/ControlPanel/Settings/EditorToolbar/Caption}}",
            "text": "\\define lingo-base() $:/language/ControlPanel/Settings/EditorToolbar/\n<<lingo Hint>>\n\n<$checkbox tiddler=\"$:/config/TextEditor/EnableToolbar\" field=\"text\" checked=\"yes\" unchecked=\"no\" default=\"yes\"> <$link to=\"$:/config/TextEditor/EnableToolbar\"><<lingo Description>></$link> </$checkbox>\n\n"
        },
        "$:/core/ui/ControlPanel/Settings/InfoPanelMode": {
            "title": "$:/core/ui/ControlPanel/Settings/InfoPanelMode",
            "tags": "$:/tags/ControlPanel/Settings",
            "caption": "{{$:/language/ControlPanel/Settings/InfoPanelMode/Caption}}",
            "text": "\\define lingo-base() $:/language/ControlPanel/Settings/InfoPanelMode/\n<$link to=\"$:/config/TiddlerInfo/Mode\"><<lingo Hint>></$link>\n\n<$radio tiddler=\"$:/config/TiddlerInfo/Mode\" value=\"popup\"> <<lingo Popup/Description>> </$radio>\n\n<$radio tiddler=\"$:/config/TiddlerInfo/Mode\" value=\"sticky\"> <<lingo Sticky/Description>> </$radio>\n"
        },
        "$:/core/ui/ControlPanel/Settings/LinkToBehaviour": {
            "title": "$:/core/ui/ControlPanel/Settings/LinkToBehaviour",
            "tags": "$:/tags/ControlPanel/Settings",
            "caption": "{{$:/language/ControlPanel/Settings/LinkToBehaviour/Caption}}",
            "text": "\\define lingo-base() $:/language/ControlPanel/Settings/LinkToBehaviour/\n\n<$link to=\"$:/config/Navigation/openLinkFromInsideRiver\"><<lingo \"InsideRiver/Hint\">></$link>\n\n<$select tiddler=\"$:/config/Navigation/openLinkFromInsideRiver\">\n  <option value=\"above\"><<lingo \"OpenAbove\">></option>\n  <option value=\"below\"><<lingo \"OpenBelow\">></option>\n  <option value=\"top\"><<lingo \"OpenAtTop\">></option>\n  <option value=\"bottom\"><<lingo \"OpenAtBottom\">></option>\n</$select>\n\n<$link to=\"$:/config/Navigation/openLinkFromOutsideRiver\"><<lingo \"OutsideRiver/Hint\">></$link>\n\n<$select tiddler=\"$:/config/Navigation/openLinkFromOutsideRiver\">\n  <option value=\"top\"><<lingo \"OpenAtTop\">></option>\n  <option value=\"bottom\"><<lingo \"OpenAtBottom\">></option>\n</$select>\n"
        },
        "$:/core/ui/ControlPanel/Settings/MissingLinks": {
            "title": "$:/core/ui/ControlPanel/Settings/MissingLinks",
            "tags": "$:/tags/ControlPanel/Settings",
            "caption": "{{$:/language/ControlPanel/Settings/MissingLinks/Caption}}",
            "text": "\\define lingo-base() $:/language/ControlPanel/Settings/MissingLinks/\n<<lingo Hint>>\n\n<$checkbox tiddler=\"$:/config/MissingLinks\" field=\"text\" checked=\"yes\" unchecked=\"no\" default=\"yes\"> <$link to=\"$:/config/MissingLinks\"><<lingo Description>></$link> </$checkbox>\n\n"
        },
        "$:/core/ui/ControlPanel/Settings/NavigationAddressBar": {
            "title": "$:/core/ui/ControlPanel/Settings/NavigationAddressBar",
            "tags": "$:/tags/ControlPanel/Settings",
            "caption": "{{$:/language/ControlPanel/Settings/NavigationAddressBar/Caption}}",
            "text": "\\define lingo-base() $:/language/ControlPanel/Settings/NavigationAddressBar/\n\n<$link to=\"$:/config/Navigation/UpdateAddressBar\"><<lingo Hint>></$link>\n\n<$radio tiddler=\"$:/config/Navigation/UpdateAddressBar\" value=\"permaview\"> <<lingo Permaview/Description>> </$radio>\n\n<$radio tiddler=\"$:/config/Navigation/UpdateAddressBar\" value=\"permalink\"> <<lingo Permalink/Description>> </$radio>\n\n<$radio tiddler=\"$:/config/Navigation/UpdateAddressBar\" value=\"no\"> <<lingo No/Description>> </$radio>\n"
        },
        "$:/core/ui/ControlPanel/Settings/NavigationHistory": {
            "title": "$:/core/ui/ControlPanel/Settings/NavigationHistory",
            "tags": "$:/tags/ControlPanel/Settings",
            "caption": "{{$:/language/ControlPanel/Settings/NavigationHistory/Caption}}",
            "text": "\\define lingo-base() $:/language/ControlPanel/Settings/NavigationHistory/\n<$link to=\"$:/config/Navigation/UpdateHistory\"><<lingo Hint>></$link>\n\n<$radio tiddler=\"$:/config/Navigation/UpdateHistory\" value=\"yes\"> <<lingo Yes/Description>> </$radio>\n\n<$radio tiddler=\"$:/config/Navigation/UpdateHistory\" value=\"no\"> <<lingo No/Description>> </$radio>\n"
        },
        "$:/core/ui/ControlPanel/Settings/NavigationPermalinkviewMode": {
            "title": "$:/core/ui/ControlPanel/Settings/NavigationPermalinkviewMode",
            "tags": "$:/tags/ControlPanel/Settings",
            "caption": "{{$:/language/ControlPanel/Settings/NavigationPermalinkviewMode/Caption}}",
            "text": "\\define lingo-base() $:/language/ControlPanel/Settings/NavigationPermalinkviewMode/\n<<lingo Hint>>\n\n<$checkbox tiddler=\"$:/config/Navigation/Permalinkview/CopyToClipboard\" field=\"text\" checked=\"yes\" unchecked=\"no\" default=\"yes\"> <$link to=\"$:/config/Navigation/Permalinkview/CopyToClipboard\"><<lingo CopyToClipboard/Description>></$link> </$checkbox>\n\n<$checkbox tiddler=\"$:/config/Navigation/Permalinkview/UpdateAddressBar\" field=\"text\" checked=\"yes\" unchecked=\"no\" default=\"yes\"> <$link to=\"$:/config/Navigation/Permalinkview/UpdateAddressBar\"><<lingo UpdateAddressBar/Description>></$link> </$checkbox>\n"
        },
        "$:/core/ui/ControlPanel/Settings/PerformanceInstrumentation": {
            "title": "$:/core/ui/ControlPanel/Settings/PerformanceInstrumentation",
            "tags": "$:/tags/ControlPanel/Settings",
            "caption": "{{$:/language/ControlPanel/Settings/PerformanceInstrumentation/Caption}}",
            "text": "\\define lingo-base() $:/language/ControlPanel/Settings/PerformanceInstrumentation/\n<<lingo Hint>>\n\n<$checkbox tiddler=\"$:/config/Performance/Instrumentation\" field=\"text\" checked=\"yes\" unchecked=\"no\" default=\"no\"> <$link to=\"$:/config/Performance/Instrumentation\"><<lingo Description>></$link> </$checkbox>\n"
        },
        "$:/core/ui/ControlPanel/Settings/TitleLinks": {
            "title": "$:/core/ui/ControlPanel/Settings/TitleLinks",
            "tags": "$:/tags/ControlPanel/Settings",
            "caption": "{{$:/language/ControlPanel/Settings/TitleLinks/Caption}}",
            "text": "\\define lingo-base() $:/language/ControlPanel/Settings/TitleLinks/\n<$link to=\"$:/config/Tiddlers/TitleLinks\"><<lingo Hint>></$link>\n\n<$radio tiddler=\"$:/config/Tiddlers/TitleLinks\" value=\"yes\"> <<lingo Yes/Description>> </$radio>\n\n<$radio tiddler=\"$:/config/Tiddlers/TitleLinks\" value=\"no\"> <<lingo No/Description>> </$radio>\n"
        },
        "$:/core/ui/ControlPanel/Settings/ToolbarButtonStyle": {
            "title": "$:/core/ui/ControlPanel/Settings/ToolbarButtonStyle",
            "tags": "$:/tags/ControlPanel/Settings",
            "caption": "{{$:/language/ControlPanel/Settings/ToolbarButtonStyle/Caption}}",
            "text": "\\define lingo-base() $:/language/ControlPanel/Settings/ToolbarButtonStyle/\n<$link to=\"$:/config/Toolbar/ButtonClass\"><<lingo \"Hint\">></$link>\n\n<$select tiddler=\"$:/config/Toolbar/ButtonClass\">\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/ToolbarButtonStyle]]\">\n<option value={{!!text}}>{{!!caption}}</option>\n</$list>\n</$select>\n"
        },
        "$:/core/ui/ControlPanel/Settings/ToolbarButtons": {
            "title": "$:/core/ui/ControlPanel/Settings/ToolbarButtons",
            "tags": "$:/tags/ControlPanel/Settings",
            "caption": "{{$:/language/ControlPanel/Settings/ToolbarButtons/Caption}}",
            "text": "\\define lingo-base() $:/language/ControlPanel/Settings/ToolbarButtons/\n<<lingo Hint>>\n\n<$checkbox tiddler=\"$:/config/Toolbar/Icons\" field=\"text\" checked=\"yes\" unchecked=\"no\" default=\"yes\"> <$link to=\"$:/config/Toolbar/Icons\"><<lingo Icons/Description>></$link> </$checkbox>\n\n<$checkbox tiddler=\"$:/config/Toolbar/Text\" field=\"text\" checked=\"yes\" unchecked=\"no\" default=\"no\"> <$link to=\"$:/config/Toolbar/Text\"><<lingo Text/Description>></$link> </$checkbox>\n"
        },
        "$:/core/ui/ControlPanel/Settings": {
            "title": "$:/core/ui/ControlPanel/Settings",
            "tags": "$:/tags/ControlPanel",
            "caption": "{{$:/language/ControlPanel/Settings/Caption}}",
            "text": "\\define lingo-base() $:/language/ControlPanel/Settings/\n\n<<lingo Hint>>\n\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/ControlPanel/Settings]]\">\n\n<div style=\"border-top:1px solid #eee;\">\n\n!! <$link><$transclude field=\"caption\"/></$link>\n\n<$transclude/>\n\n</div>\n\n</$list>\n"
        },
        "$:/core/ui/ControlPanel/StoryView": {
            "title": "$:/core/ui/ControlPanel/StoryView",
            "tags": "$:/tags/ControlPanel/Appearance",
            "caption": "{{$:/language/ControlPanel/StoryView/Caption}}",
            "text": "{{$:/snippets/viewswitcher}}\n"
        },
        "$:/core/ui/ControlPanel/Stylesheets": {
            "title": "$:/core/ui/ControlPanel/Stylesheets",
            "tags": "$:/tags/ControlPanel/Advanced",
            "caption": "{{$:/language/ControlPanel/Stylesheets/Caption}}",
            "text": "\\define lingo-base() $:/language/ControlPanel/\n\n<<lingo Stylesheets/Hint>>\n\n{{$:/snippets/peek-stylesheets}}\n"
        },
        "$:/core/ui/ControlPanel/Theme": {
            "title": "$:/core/ui/ControlPanel/Theme",
            "tags": "$:/tags/ControlPanel/Appearance",
            "caption": "{{$:/language/ControlPanel/Theme/Caption}}",
            "text": "{{$:/snippets/themeswitcher}}\n"
        },
        "$:/core/ui/ControlPanel/TiddlerFields": {
            "title": "$:/core/ui/ControlPanel/TiddlerFields",
            "tags": "$:/tags/ControlPanel/Advanced",
            "caption": "{{$:/language/ControlPanel/TiddlerFields/Caption}}",
            "text": "\\define lingo-base() $:/language/ControlPanel/\n\n<<lingo TiddlerFields/Hint>>\n\n{{$:/snippets/allfields}}"
        },
        "$:/core/ui/ControlPanel/Toolbars/EditToolbar": {
            "title": "$:/core/ui/ControlPanel/Toolbars/EditToolbar",
            "tags": "$:/tags/ControlPanel/Toolbars",
            "caption": "{{$:/language/ControlPanel/Toolbars/EditToolbar/Caption}}",
            "text": "\\define lingo-base() $:/language/TiddlerInfo/\n\n\\define config-base() $:/config/EditToolbarButtons/Visibility/\n\n{{$:/language/ControlPanel/Toolbars/EditToolbar/Hint}}\n\n<$set name=\"tv-config-toolbar-icons\" value=\"yes\">\n\n<$set name=\"tv-config-toolbar-text\" value=\"yes\">\n\n<$macrocall $name=\"list-tagged-draggable\" tag=\"$:/tags/EditToolbar\" itemTemplate=\"$:/core/ui/ControlPanel/Toolbars/ItemTemplate\"/>\n\n</$set>\n\n</$set>"
        },
        "$:/core/ui/ControlPanel/Toolbars/EditorItemTemplate": {
            "title": "$:/core/ui/ControlPanel/Toolbars/EditorItemTemplate",
            "text": "\\define config-title()\n$(config-base)$$(currentTiddler)$\n\\end\n\n<$draggable tiddler=<<currentTiddler>>>\n<$checkbox tiddler=<<config-title>> field=\"text\" checked=\"show\" unchecked=\"hide\" default=\"show\"/> <span class=\"tc-icon-wrapper\"><$transclude tiddler={{!!icon}}/></span> <$transclude field=\"caption\"/> -- <i class=\"tc-muted\"><$transclude field=\"description\"/></i>\n</$draggable>\n"
        },
        "$:/core/ui/ControlPanel/Toolbars/EditorToolbar": {
            "title": "$:/core/ui/ControlPanel/Toolbars/EditorToolbar",
            "tags": "$:/tags/ControlPanel/Toolbars",
            "caption": "{{$:/language/ControlPanel/Toolbars/EditorToolbar/Caption}}",
            "text": "\\define lingo-base() $:/language/TiddlerInfo/\n\n\\define config-base() $:/config/EditorToolbarButtons/Visibility/\n\n{{$:/language/ControlPanel/Toolbars/EditorToolbar/Hint}}\n\n<$macrocall $name=\"list-tagged-draggable\" tag=\"$:/tags/EditorToolbar\" itemTemplate=\"$:/core/ui/ControlPanel/Toolbars/EditorItemTemplate\"/>\n"
        },
        "$:/core/ui/ControlPanel/Toolbars/ItemTemplate": {
            "title": "$:/core/ui/ControlPanel/Toolbars/ItemTemplate",
            "text": "\\define config-title()\n$(config-base)$$(currentTiddler)$\n\\end\n\n<$draggable tiddler=<<currentTiddler>>>\n<$checkbox tiddler=<<config-title>> field=\"text\" checked=\"show\" unchecked=\"hide\" default=\"show\"/> <span class=\"tc-icon-wrapper\"> <$transclude field=\"caption\"/> <i class=\"tc-muted\">-- <$transclude field=\"description\"/></i></span>\n</$draggable>\n"
        },
        "$:/core/ui/ControlPanel/Toolbars/PageControls": {
            "title": "$:/core/ui/ControlPanel/Toolbars/PageControls",
            "tags": "$:/tags/ControlPanel/Toolbars",
            "caption": "{{$:/language/ControlPanel/Toolbars/PageControls/Caption}}",
            "text": "\\define lingo-base() $:/language/TiddlerInfo/\n\n\\define config-base() $:/config/PageControlButtons/Visibility/\n\n{{$:/language/ControlPanel/Toolbars/PageControls/Hint}}\n\n<$set name=\"tv-config-toolbar-icons\" value=\"yes\">\n\n<$set name=\"tv-config-toolbar-text\" value=\"yes\">\n\n<$macrocall $name=\"list-tagged-draggable\" tag=\"$:/tags/PageControls\" itemTemplate=\"$:/core/ui/ControlPanel/Toolbars/ItemTemplate\"/>\n\n</$set>\n\n</$set>\n"
        },
        "$:/core/ui/ControlPanel/Toolbars/ViewToolbar": {
            "title": "$:/core/ui/ControlPanel/Toolbars/ViewToolbar",
            "tags": "$:/tags/ControlPanel/Toolbars",
            "caption": "{{$:/language/ControlPanel/Toolbars/ViewToolbar/Caption}}",
            "text": "\\define lingo-base() $:/language/TiddlerInfo/\n\n\\define config-base() $:/config/ViewToolbarButtons/Visibility/\n\n{{$:/language/ControlPanel/Toolbars/ViewToolbar/Hint}}\n\n<$set name=\"tv-config-toolbar-icons\" value=\"yes\">\n\n<$set name=\"tv-config-toolbar-text\" value=\"yes\">\n\n<$macrocall $name=\"list-tagged-draggable\" tag=\"$:/tags/ViewToolbar\" itemTemplate=\"$:/core/ui/ControlPanel/Toolbars/ItemTemplate\"/>\n\n</$set>\n\n</$set>\n"
        },
        "$:/core/ui/ControlPanel/Toolbars": {
            "title": "$:/core/ui/ControlPanel/Toolbars",
            "tags": "$:/tags/ControlPanel/Appearance",
            "caption": "{{$:/language/ControlPanel/Toolbars/Caption}}",
            "text": "{{$:/language/ControlPanel/Toolbars/Hint}}\n\n<div class=\"tc-control-panel\">\n<$macrocall $name=\"tabs\" tabsList=\"[all[shadows+tiddlers]tag[$:/tags/ControlPanel/Toolbars]!has[draft.of]]\" default=\"$:/core/ui/ControlPanel/Toolbars/ViewToolbar\" class=\"tc-vertical\" explicitState=\"$:/state/tabs/controlpanel/toolbars-1345989671\"/>\n</div>\n"
        },
        "$:/ControlPanel": {
            "title": "$:/ControlPanel",
            "icon": "$:/core/images/options-button",
            "color": "#bbb",
            "text": "<div class=\"tc-control-panel\">\n<$macrocall $name=\"tabs\" tabsList=\"[all[shadows+tiddlers]tag[$:/tags/ControlPanel]!has[draft.of]]\" default=\"$:/core/ui/ControlPanel/Info\" explicitState=\"$:/state/tab-1749438307\"/>\n</div>\n"
        },
        "$:/core/ui/DefaultSearchResultList": {
            "title": "$:/core/ui/DefaultSearchResultList",
            "tags": "$:/tags/SearchResults",
            "caption": "{{$:/language/Search/DefaultResults/Caption}}",
            "first-search-filter": "[!is[system]search:title<userInput>sort[title]limit[250]]",
            "second-search-filter": "[!is[system]search<userInput>sort[title]limit[250]]",
            "text": "\\define searchResultList()\n//<small>{{$:/language/Search/Matches/Title}}</small>//\n\n<$list filter=\"[<userInput>minlength[1]]\" variable=\"ignore\">\n<$list filter={{{ [<configTiddler>get[first-search-filter]] }}}>\n<span class={{{[<currentTiddler>addsuffix[-primaryList]] -[<searchListState>get[text]] +[then[]else[tc-list-item-selected]] }}}>\n<$transclude tiddler=\"$:/core/ui/ListItemTemplate\"/>\n</span>\n</$list>\n</$list>\n\n//<small>{{$:/language/Search/Matches/All}}</small>//\n\n<$list filter=\"[<userInput>minlength[1]]\" variable=\"ignore\">\n<$list filter={{{ [<configTiddler>get[second-search-filter]] }}}>\n<span class={{{[<currentTiddler>addsuffix[-secondaryList]] -[<searchListState>get[text]] +[then[]else[tc-list-item-selected]] }}}>\n<$transclude tiddler=\"$:/core/ui/ListItemTemplate\"/>\n</span>\n</$list>\n</$list>\n\n\\end\n<<searchResultList>>\n"
        },
        "$:/core/ui/EditTemplate/body/preview/diffs-current": {
            "title": "$:/core/ui/EditTemplate/body/preview/diffs-current",
            "tags": "$:/tags/EditPreview",
            "caption": "differences from current",
            "list-after": "$:/core/ui/EditTemplate/body/preview/output",
            "text": "<$list filter=\"[<currentTiddler>!is[image]]\" emptyMessage={{$:/core/ui/EditTemplate/body/preview/output}}>\n\n<$macrocall $name=\"compareTiddlerText\" sourceTiddlerTitle={{!!draft.of}} destTiddlerTitle=<<currentTiddler>>/>\n\n</$list>\n\n"
        },
        "$:/core/ui/EditTemplate/body/preview/diffs-shadow": {
            "title": "$:/core/ui/EditTemplate/body/preview/diffs-shadow",
            "tags": "$:/tags/EditPreview",
            "caption": "differences from shadow (if any)",
            "list-after": "$:/core/ui/EditTemplate/body/preview/output",
            "text": "<$list filter=\"[<currentTiddler>!is[image]]\" emptyMessage={{$:/core/ui/EditTemplate/body/preview/output}}>\n\n<$macrocall $name=\"compareTiddlerText\" sourceTiddlerTitle={{{ [{!!draft.of}shadowsource[]] }}} sourceSubTiddlerTitle={{!!draft.of}} destTiddlerTitle=<<currentTiddler>>/>\n\n</$list>\n\n"
        },
        "$:/core/ui/EditTemplate/body/preview/output": {
            "title": "$:/core/ui/EditTemplate/body/preview/output",
            "tags": "$:/tags/EditPreview",
            "caption": "{{$:/language/EditTemplate/Body/Preview/Type/Output}}",
            "text": "\\import [all[shadows+tiddlers]tag[$:/tags/Macro/View]!has[draft.of]]\n<$set name=\"tv-tiddler-preview\" value=\"yes\">\n\n<$transclude />\n\n</$set>\n"
        },
        "$:/state/showeditpreview": {
            "title": "$:/state/showeditpreview",
            "text": "no"
        },
        "$:/core/ui/EditTemplate/body/editor": {
            "title": "$:/core/ui/EditTemplate/body/editor",
            "text": "<$edit\n\n  field=\"text\"\n  class=\"tc-edit-texteditor tc-edit-texteditor-body\"\n  placeholder={{$:/language/EditTemplate/Body/Placeholder}}\n  tabindex={{$:/config/EditTabIndex}}\n  focus={{{ [{$:/config/AutoFocus}match[text]then[true]] ~[[false]] }}}\n  cancelPopups=\"yes\"\n\n><$set\n\n  name=\"targetTiddler\"\n  value=<<currentTiddler>>\n\n><$list\n\n  filter=\"[all[shadows+tiddlers]tag[$:/tags/EditorToolbar]!has[draft.of]]\"\n\n><$reveal\n\n  type=\"nomatch\"\n  state=<<config-visibility-title>>\n  text=\"hide\"\n  class=\"tc-text-editor-toolbar-item-wrapper\"\n\n><$transclude\n\n  tiddler=\"$:/core/ui/EditTemplate/body/toolbar/button\"\n  mode=\"inline\"\n\n/></$reveal></$list></$set></$edit>\n"
        },
        "$:/core/ui/EditTemplate/body/toolbar/button": {
            "title": "$:/core/ui/EditTemplate/body/toolbar/button",
            "text": "\\define toolbar-button-icon()\n<$list\n\n  filter=\"[all[current]!has[custom-icon]]\"\n  variable=\"no-custom-icon\"\n\n><$transclude\n\n  tiddler={{!!icon}}\n\n/></$list>\n\\end\n\n\\define toolbar-button-tooltip()\n{{!!description}}<$macrocall $name=\"displayshortcuts\" $output=\"text/plain\" shortcuts={{!!shortcuts}} prefix=\"` - [\" separator=\"] [\" suffix=\"]`\"/>\n\\end\n\n\\define toolbar-button()\n<$list\n\n  filter={{!!condition}}\n  variable=\"list-condition\"\n\n><$wikify\n\n  name=\"tooltip-text\"\n  text=<<toolbar-button-tooltip>>\n  mode=\"inline\"\n  output=\"text\"\n\n><$list\n\n  filter=\"[all[current]!has[dropdown]]\"\n  variable=\"no-dropdown\"\n\n><$button\n\n  class=\"tc-btn-invisible $(buttonClasses)$\"\n  tooltip=<<tooltip-text>>\n  actions={{!!actions}}\n\n><span\n\n  data-tw-keyboard-shortcut={{!!shortcuts}}\n\n/><<toolbar-button-icon>><$transclude\n\n  tiddler=<<currentTiddler>>\n  field=\"text\"\n\n/></$button></$list><$list\n\n  filter=\"[all[current]has[dropdown]]\"\n  variable=\"dropdown\"\n\n><$set\n\n  name=\"dropdown-state\"\n  value=<<qualify \"$:/state/EditorToolbarDropdown\">>\n\n><$button\n\n  popup=<<dropdown-state>>\n  class=\"tc-popup-keep tc-btn-invisible $(buttonClasses)$\"\n  selectedClass=\"tc-selected\"\n  tooltip=<<tooltip-text>>\n  actions={{!!actions}}\n\n><span\n\n  data-tw-keyboard-shortcut={{!!shortcuts}}\n\n/><<toolbar-button-icon>><$transclude\n\n  tiddler=<<currentTiddler>>\n  field=\"text\"\n\n/></$button><$reveal\n\n  state=<<dropdown-state>>\n  type=\"popup\"\n  position=\"below\"\n  animate=\"yes\"\n  tag=\"span\"\n\n><div\n\n  class=\"tc-drop-down tc-popup-keep\"\n\n><$transclude\n\n  tiddler={{!!dropdown}}\n  mode=\"block\"\n\n/></div></$reveal></$set></$list></$wikify></$list>\n\\end\n\n\\define toolbar-button-outer()\n<$set\n\n  name=\"buttonClasses\"\n  value={{!!button-classes}}\n\n><<toolbar-button>></$set>\n\\end\n\n<<toolbar-button-outer>>"
        },
        "$:/core/ui/EditTemplate/body": {
            "title": "$:/core/ui/EditTemplate/body",
            "tags": "$:/tags/EditTemplate",
            "text": "\\define lingo-base() $:/language/EditTemplate/Body/\n\\define config-visibility-title()\n$:/config/EditorToolbarButtons/Visibility/$(currentTiddler)$\n\\end\n<$list filter=\"[all[current]has[_canonical_uri]]\">\n\n<div class=\"tc-message-box\">\n\n<<lingo External/Hint>>\n\n<a href={{!!_canonical_uri}}><$text text={{!!_canonical_uri}}/></a>\n\n<$edit-text field=\"_canonical_uri\" class=\"tc-edit-fields\" tabindex={{$:/config/EditTabIndex}} cancelPopups=\"yes\"></$edit-text>\n\n</div>\n\n</$list>\n\n<$list filter=\"[all[current]!has[_canonical_uri]]\">\n\n<$reveal state=\"$:/state/showeditpreview\" type=\"match\" text=\"yes\">\n\n<div class=\"tc-tiddler-preview\">\n\n<$transclude tiddler=\"$:/core/ui/EditTemplate/body/editor\" mode=\"inline\"/>\n\n<div class=\"tc-tiddler-preview-preview\">\n\n<$transclude tiddler={{$:/state/editpreviewtype}} mode=\"inline\">\n\n<$transclude tiddler=\"$:/core/ui/EditTemplate/body/preview/output\" mode=\"inline\"/>\n\n</$transclude>\n\n</div>\n\n</div>\n\n</$reveal>\n\n<$reveal state=\"$:/state/showeditpreview\" type=\"nomatch\" text=\"yes\">\n\n<$transclude tiddler=\"$:/core/ui/EditTemplate/body/editor\" mode=\"inline\"/>\n\n</$reveal>\n\n</$list>\n"
        },
        "$:/core/ui/EditTemplate/controls": {
            "title": "$:/core/ui/EditTemplate/controls",
            "tags": "$:/tags/EditTemplate",
            "text": "\\define config-title()\n$:/config/EditToolbarButtons/Visibility/$(listItem)$\n\\end\n<div class=\"tc-tiddler-title tc-tiddler-edit-title\">\n<$view field=\"title\"/>\n<span class=\"tc-tiddler-controls tc-titlebar\"><$list filter=\"[all[shadows+tiddlers]tag[$:/tags/EditToolbar]!has[draft.of]]\" variable=\"listItem\"><$reveal type=\"nomatch\" state=<<config-title>> text=\"hide\"><$transclude tiddler=<<listItem>>/></$reveal></$list></span>\n<div style=\"clear: both;\"></div>\n</div>\n"
        },
        "$:/core/ui/EditTemplate/fields": {
            "title": "$:/core/ui/EditTemplate/fields",
            "tags": "$:/tags/EditTemplate",
            "text": "\\define lingo-base() $:/language/EditTemplate/\n\\define config-title()\n$:/config/EditTemplateFields/Visibility/$(currentField)$\n\\end\n\n\\define config-filter()\n[[hide]] -[title{$(config-title)$}]\n\\end\n\n\\define current-tiddler-new-field-selector()\n[data-tiddler-title=\"$(currentTiddlerCSSescaped)$\"] .tc-edit-field-add-name-wrapper input\n\\end\n\n\\define new-field-actions()\n<$action-sendmessage $message=\"tm-add-field\" $name={{{ [<newFieldNameTiddler>get[text]] }}} $value={{{ [<newFieldValueTiddler>get[text]] }}}/>\n<$action-deletetiddler $filter=\"[<newFieldNameTiddler>] [<newFieldValueTiddler>] [<storeTitle>] [<searchListState>]\"/>\n<$action-sendmessage $message=\"tm-focus-selector\" $param=<<current-tiddler-new-field-selector>>/>\n\\end\n\n\\define delete-state-tiddlers() <$action-deletetiddler $filter=\"[<newFieldNameTiddler>] [<storeTitle>] [<searchListState>]\"/>\n\n\\define cancel-search-actions-inner()\n<$list filter=\"[<storeTitle>has[text]] [<newFieldNameTiddler>has[text]]\" variable=\"ignore\" emptyMessage=\"\"\"<<cancel-delete-tiddler-actions \"cancel\">>\"\"\">\n<<delete-state-tiddlers>>\n</$list>\n\\end\n\n\\define cancel-search-actions()\n<$set name=\"userInput\" value={{{ [<storeTitle>get[text]] }}}>\n<$list filter=\"[<newFieldNameTiddler>get[text]!match<userInput>]\" emptyMessage=\"\"\"<<cancel-search-actions-inner>>\"\"\">\n<$action-setfield $tiddler=<<newFieldNameTiddler>> text=<<userInput>>/><$action-setfield $tiddler=<<refreshTitle>> text=\"yes\"/>\n</$list>\n</$set>\n\\end\n\n\\define new-field()\n<$vars name={{{ [<newFieldNameTiddler>get[text]] }}}>\n<$reveal type=\"nomatch\" text=\"\" default=<<name>>>\n<$button tooltip=<<lingo Fields/Add/Button/Hint>>>\n<$action-sendmessage $message=\"tm-add-field\"\n$name=<<name>>\n$value={{{ [<newFieldValueTiddler>get[text]] }}}/>\n<$action-deletetiddler $filter=\"[<newFieldNameTiddler>] [<newFieldValueTiddler>] [<storeTitle>] [<searchListState>]\"/>\n<<lingo Fields/Add/Button>>\n</$button>\n</$reveal>\n<$reveal type=\"match\" text=\"\" default=<<name>>>\n<$button>\n<<lingo Fields/Add/Button>>\n</$button>\n</$reveal>\n</$vars>\n\\end\n\\whitespace trim\n\n<div class=\"tc-edit-fields\">\n<table class={{{ [all[current]fields[]] :filter[lookup[$:/config/EditTemplateFields/Visibility/]!match[hide]] +[count[]!match[0]] +[then[tc-edit-fields]] ~[[tc-edit-fields tc-edit-fields-small]] }}}>\n<tbody>\n<$list filter=\"[all[current]fields[]] +[sort[title]]\" variable=\"currentField\" storyview=\"pop\">\n<$list filter=<<config-filter>> variable=\"temp\">\n<tr class=\"tc-edit-field\">\n<td class=\"tc-edit-field-name\">\n<$text text=<<currentField>>/>:</td>\n<td class=\"tc-edit-field-value\">\n<$keyboard key=\"((delete-field))\" actions=\"\"\"<$action-deletefield $field=<<currentField>>/><$set name=\"currentTiddlerCSSescaped\" value={{{ [<currentTiddler>escapecss[]] }}}><$action-sendmessage $message=\"tm-focus-selector\" $param=<<current-tiddler-new-field-selector>>/></$set>\"\"\">\n<$edit-text tiddler=<<currentTiddler>> field=<<currentField>> placeholder={{$:/language/EditTemplate/Fields/Add/Value/Placeholder}} tabindex={{$:/config/EditTabIndex}} cancelPopups=\"yes\"/>\n</$keyboard>\n</td>\n<td class=\"tc-edit-field-remove\">\n<$button class=\"tc-btn-invisible\" tooltip={{$:/language/EditTemplate/Field/Remove/Hint}} aria-label={{$:/language/EditTemplate/Field/Remove/Caption}}>\n<$action-deletefield $field=<<currentField>>/><$set name=\"currentTiddlerCSSescaped\" value={{{ [<currentTiddler>escapecss[]] }}}><$action-sendmessage $message=\"tm-focus-selector\" $param=<<current-tiddler-new-field-selector>>/></$set>\n{{$:/core/images/delete-button}}\n</$button>\n</td>\n</tr>\n</$list>\n</$list>\n</tbody>\n</table>\n</div>\n\n<$fieldmangler>\n<div class=\"tc-edit-field-add\">\n<em class=\"tc-edit tc-big-gap-right\">\n<<lingo Fields/Add/Prompt>>\n</em>\n<$vars refreshTitle=<<qualify \"$:/temp/fieldname/refresh\">> storeTitle=<<newFieldNameInputTiddler>> searchListState=<<newFieldNameSelectionTiddler>>>\n<div class=\"tc-edit-field-add-name-wrapper\">\n<$macrocall $name=\"keyboard-driven-input\" tiddler=<<newFieldNameTiddler>> storeTitle=<<storeTitle>> refreshTitle=<<refreshTitle>>\n\t\tselectionStateTitle=<<searchListState>> tag=\"input\" default=\"\" placeholder={{$:/language/EditTemplate/Fields/Add/Name/Placeholder}}\n\t\tfocusPopup=<<qualify \"$:/state/popup/field-dropdown\">> class=\"tc-edit-texteditor tc-popup-handle\" tabindex={{$:/config/EditTabIndex}}\n\t\tfocus={{{ [{$:/config/AutoFocus}match[fields]then[true]] ~[[false]] }}} cancelPopups=\"yes\"\n\t\tconfigTiddlerFilter=\"[[$:/config/EditMode/fieldname-filter]]\" inputCancelActions=<<cancel-search-actions>> />\n<$button popup=<<qualify \"$:/state/popup/field-dropdown\">> class=\"tc-btn-invisible tc-btn-dropdown tc-small-gap\" tooltip={{$:/language/EditTemplate/Field/Dropdown/Hint}} aria-label={{$:/language/EditTemplate/Field/Dropdown/Caption}}>{{$:/core/images/down-arrow}}</$button>\n<$reveal state=<<qualify \"$:/state/popup/field-dropdown\">> type=\"nomatch\" text=\"\" default=\"\">\n<div class=\"tc-block-dropdown tc-edit-type-dropdown\">\n<$set name=\"tv-show-missing-links\" value=\"yes\">\n<$linkcatcher to=<<newFieldNameTiddler>>>\n<div class=\"tc-dropdown-item\">\n<<lingo Fields/Add/Dropdown/User>>\n</div>\n<$set name=\"newFieldName\" value={{{ [<storeTitle>get[text]] }}}>\n<$list filter=\"[!is[shadow]!is[system]fields[]search:title<newFieldName>sort[]] -created -creator -draft.of -draft.title -modified -modifier -tags -text -title -type\"  variable=\"currentField\">\n<$list filter=\"[<currentField>addsuffix[-primaryList]] -[<searchListState>get[text]]\" emptyMessage=\"\"\"<$link to=<<currentField>> class=\"tc-list-item-selected\"><$text text=<<currentField>>/></$link>\"\"\">\n<$link to=<<currentField>>>\n<$text text=<<currentField>>/>\n</$link>\n</$list>\n</$list>\n<div class=\"tc-dropdown-item\">\n<<lingo Fields/Add/Dropdown/System>>\n</div>\n<$list filter=\"[fields[]search:title<newFieldName>sort[]] -[!is[shadow]!is[system]fields[]]\" variable=\"currentField\">\n<$list filter=\"[<currentField>addsuffix[-secondaryList]] -[<searchListState>get[text]]\" emptyMessage=\"\"\"<$link to=<<currentField>> class=\"tc-list-item-selected\"><$text text=<<currentField>>/></$link>\"\"\">\n<$link to=<<currentField>>>\n<$text text=<<currentField>>/>\n</$link>\n</$list>\n</$list>\n</$set>\n</$linkcatcher>\n</$set>\n</div>\n</$reveal>\n</div>\n<span class=\"tc-edit-field-add-value tc-small-gap-right\">\n<$set name=\"currentTiddlerCSSescaped\" value={{{ [<currentTiddler>escapecss[]] }}}>\n<$keyboard key=\"((add-field))\" actions=<<new-field-actions>>>\n<$edit-text tiddler=<<newFieldValueTiddler>> tag=\"input\" default=\"\" placeholder={{$:/language/EditTemplate/Fields/Add/Value/Placeholder}} class=\"tc-edit-texteditor\" tabindex={{$:/config/EditTabIndex}} cancelPopups=\"yes\"/>\n</$keyboard>\n</$set>\n</span>\n<span class=\"tc-edit-field-add-button\">\n<$macrocall $name=\"new-field\"/>\n</span>\n</$vars>\n</div>\n</$fieldmangler>\n"
        },
        "$:/core/ui/EditTemplate/shadow": {
            "title": "$:/core/ui/EditTemplate/shadow",
            "tags": "$:/tags/EditTemplate",
            "text": "\\define lingo-base() $:/language/EditTemplate/Shadow/\n\\define pluginLinkBody()\n<$link to=\"\"\"$(pluginTitle)$\"\"\">\n<$text text=\"\"\"$(pluginTitle)$\"\"\"/>\n</$link>\n\\end\n<$list filter=\"[all[current]get[draft.of]is[shadow]!is[tiddler]]\">\n\n<$list filter=\"[all[current]shadowsource[]]\" variable=\"pluginTitle\">\n\n<$set name=\"pluginLink\" value=<<pluginLinkBody>>>\n<div class=\"tc-message-box\">\n\n<<lingo Warning>>\n\n</div>\n</$set>\n</$list>\n\n</$list>\n\n<$list filter=\"[all[current]get[draft.of]is[shadow]is[tiddler]]\">\n\n<$list filter=\"[all[current]shadowsource[]]\" variable=\"pluginTitle\">\n\n<$set name=\"pluginLink\" value=<<pluginLinkBody>>>\n<div class=\"tc-message-box\">\n\n<<lingo OverriddenWarning>>\n\n</div>\n</$set>\n</$list>\n\n</$list>"
        },
        "$:/core/ui/EditTemplate/tags": {
            "title": "$:/core/ui/EditTemplate/tags",
            "tags": "$:/tags/EditTemplate",
            "text": "\\whitespace trim\n\n\\define lingo-base() $:/language/EditTemplate/\n\n\\define tag-styles()\nbackground-color:$(backgroundColor)$;\nfill:$(foregroundColor)$;\ncolor:$(foregroundColor)$;\n\\end\n\n\\define tag-body-inner(colour,fallbackTarget,colourA,colourB,icon,tagField:\"tags\")\n\\whitespace trim\n<$vars foregroundColor=<<contrastcolour target:\"\"\"$colour$\"\"\" fallbackTarget:\"\"\"$fallbackTarget$\"\"\" colourA:\"\"\"$colourA$\"\"\" colourB:\"\"\"$colourB$\"\"\">> backgroundColor=\"\"\"$colour$\"\"\">\n<span style=<<tag-styles>> class=\"tc-tag-label tc-tag-list-item\">\n<$transclude tiddler=\"\"\"$icon$\"\"\"/><$view field=\"title\" format=\"text\" />\n<$button class=\"tc-btn-invisible tc-remove-tag-button\"><$action-listops $tiddler=<<saveTiddler>> $field=<<__tagField__>> $subfilter=\"-[{!!title}]\"/>{{$:/core/images/close-button}}</$button>\n</span>\n</$vars>\n\\end\n\n\\define tag-body(colour,palette,icon,tagField:\"tags\")\n<$macrocall $name=\"tag-body-inner\" colour=\"\"\"$colour$\"\"\" fallbackTarget={{$palette$##tag-background}} colourA={{$palette$##foreground}} colourB={{$palette$##background}} icon=\"\"\"$icon$\"\"\" tagField=<<__tagField__>>/>\n\\end\n\n\\define edit-tags-template(tagField:\"tags\")\n\\whitespace trim\n<div class=\"tc-edit-tags\">\n<$list filter=\"[list[!!$tagField$]sort[title]]\" storyview=\"pop\">\n<$macrocall $name=\"tag-body\" colour={{!!color}} palette={{$:/palette}} icon={{!!icon}} tagField=<<__tagField__>>/>\n</$list>\n<$vars tabIndex={{$:/config/EditTabIndex}} cancelPopups=\"yes\">\n<$macrocall $name=\"tag-picker\" tagField=<<__tagField__>>/>\n</$vars>\n</div>\n\\end\n<$set name=\"saveTiddler\" value=<<currentTiddler>>>\n<$macrocall $name=\"edit-tags-template\" tagField=<<tagField>>/>\n</$set>\n"
        },
        "$:/core/ui/EditTemplate/title": {
            "title": "$:/core/ui/EditTemplate/title",
            "tags": "$:/tags/EditTemplate",
            "text": "<$edit-text field=\"draft.title\" class=\"tc-titlebar tc-edit-texteditor\" focus={{{ [{$:/config/AutoFocus}match[title]then[true]] ~[[false]] }}} tabindex={{$:/config/EditTabIndex}} cancelPopups=\"yes\"/>\n\n<$vars pattern=\"\"\"[\\|\\[\\]{}]\"\"\" bad-chars=\"\"\"`| [ ] { }`\"\"\">\n\n<$list filter=\"[all[current]regexp:draft.title<pattern>]\" variable=\"listItem\">\n\n<div class=\"tc-message-box\">\n\n{{$:/core/images/warning}} {{$:/language/EditTemplate/Title/BadCharacterWarning}}\n\n</div>\n\n</$list>\n\n</$vars>\n\n<$reveal state=\"!!draft.title\" type=\"nomatch\" text={{!!draft.of}} tag=\"div\">\n\n<$list filter=\"[{!!draft.title}!is[missing]]\" variable=\"listItem\">\n\n<div class=\"tc-message-box\">\n\n{{$:/core/images/warning}} {{$:/language/EditTemplate/Title/Exists/Prompt}}\n\n</div>\n\n</$list>\n\n<$list filter=\"[{!!draft.of}!is[missing]]\" variable=\"listItem\">\n\n<$vars fromTitle={{!!draft.of}} toTitle={{!!draft.title}}>\n\n<$checkbox tiddler=\"$:/config/RelinkOnRename\" field=\"text\" checked=\"yes\" unchecked=\"no\" default=\"no\"> {{$:/language/EditTemplate/Title/Relink/Prompt}}</$checkbox>\n\n<$list filter=\"[title<fromTitle>backlinks[]limit[1]]\" variable=\"listItem\">\n\n<$vars stateTiddler=<<qualify \"$:/state/edit/references\">> >\n\n<$reveal type=\"nomatch\" state=<<stateTiddler>> text=\"show\">\n<$button set=<<stateTiddler>> setTo=\"show\" class=\"tc-btn-invisible\">{{$:/core/images/right-arrow}} \n<<lingo EditTemplate/Title/References/Prompt>></$button>\n</$reveal>\n<$reveal type=\"match\" state=<<stateTiddler>> text=\"show\">\n<$button set=<<stateTiddler>> setTo=\"hide\" class=\"tc-btn-invisible\">{{$:/core/images/down-arrow}} \n<<lingo EditTemplate/Title/References/Prompt>></$button>\n</$reveal>\n\n<$reveal type=\"match\" state=<<stateTiddler>> text=\"show\">\n<$tiddler tiddler=<<fromTitle>> >\n<$transclude tiddler=\"$:/core/ui/TiddlerInfo/References\"/>\n</$tiddler>\n</$reveal>\n\n</$vars>\n\n</$list>\n\n</$vars>\n\n</$list>\n\n</$reveal>\n"
        },
        "$:/core/ui/EditTemplate/type": {
            "title": "$:/core/ui/EditTemplate/type",
            "tags": "$:/tags/EditTemplate",
            "first-search-filter": "[all[shadows+tiddlers]prefix[$:/language/Docs/Types/]sort[description]sort[group-sort]removeprefix[$:/language/Docs/Types/]search<userInput>]",
            "text": "\\define lingo-base() $:/language/EditTemplate/\n\\define input-cancel-actions() <$list filter=\"[<storeTitle>get[text]] [<currentTiddler>get[type]] +[limit[1]]\" emptyMessage=\"\"\"<<cancel-delete-tiddler-actions \"cancel\">>\"\"\"><$action-sendmessage $message=\"tm-remove-field\" $param=\"type\"/><$action-deletetiddler $filter=\"[<typeInputTiddler>] [<refreshTitle>] [<typeSelectionTiddler>]\"/></$list>\n\\whitespace trim\n<$set name=\"refreshTitle\" value=<<qualify \"$:/temp/type-search/refresh\">>>\n<div class=\"tc-edit-type-selector-wrapper\">\n<em class=\"tc-edit tc-big-gap-right\"><<lingo Type/Prompt>></em>\n<div class=\"tc-type-selector-dropdown-wrapper\">\n<div class=\"tc-type-selector\"><$fieldmangler>\n<$macrocall $name=\"keyboard-driven-input\" tiddler=<<currentTiddler>> storeTitle=<<typeInputTiddler>> refreshTitle=<<refreshTitle>> selectionStateTitle=<<typeSelectionTiddler>> field=\"type\" tag=\"input\" default=\"\" placeholder={{$:/language/EditTemplate/Type/Placeholder}} focusPopup=<<qualify \"$:/state/popup/type-dropdown\">> class=\"tc-edit-typeeditor tc-edit-texteditor tc-popup-handle\" tabindex={{$:/config/EditTabIndex}} focus={{{ [{$:/config/AutoFocus}match[type]then[true]] ~[[false]] }}} cancelPopups=\"yes\" configTiddlerFilter=\"[[$:/core/ui/EditTemplate/type]]\" inputCancelActions=<<input-cancel-actions>>/><$button popup=<<qualify \"$:/state/popup/type-dropdown\">> class=\"tc-btn-invisible tc-btn-dropdown tc-small-gap\" tooltip={{$:/language/EditTemplate/Type/Dropdown/Hint}} aria-label={{$:/language/EditTemplate/Type/Dropdown/Caption}}>{{$:/core/images/down-arrow}}</$button><$button message=\"tm-remove-field\" param=\"type\" class=\"tc-btn-invisible tc-btn-icon\" tooltip={{$:/language/EditTemplate/Type/Delete/Hint}} aria-label={{$:/language/EditTemplate/Type/Delete/Caption}}>{{$:/core/images/delete-button}}<$action-deletetiddler $filter=\"[<storeTitle>] [<refreshTitle>] [<selectionStateTitle>]\"/></$button>\n</$fieldmangler></div>\n\n<div class=\"tc-block-dropdown-wrapper\">\n<$set name=\"tv-show-missing-links\" value=\"yes\">\n<$reveal state=<<qualify \"$:/state/popup/type-dropdown\">> type=\"nomatch\" text=\"\" default=\"\">\n<div class=\"tc-block-dropdown tc-edit-type-dropdown\">\n<$linkcatcher to=\"!!type\">\n<$list filter='[all[shadows+tiddlers]prefix[$:/language/Docs/Types/]each[group]sort[group-sort]]'>\n<div class=\"tc-dropdown-item\">\n<$text text={{!!group}}/>\n</div>\n<$set name=\"userInput\" value={{{ [<typeInputTiddler>get[text]] }}}>\n<$list filter=\"[all[shadows+tiddlers]prefix[$:/language/Docs/Types/]group{!!group}] +[sort[description]] +[removeprefix[$:/language/Docs/Types/]] +[search<userInput>]\"><span class={{{ [<currentTiddler>addsuffix[-primaryList]] -[<typeSelectionTiddler>get[text]] +[then[]else[tc-list-item-selected]] }}}><$link to={{{ [<currentTiddler>addprefix[$:/language/Docs/Types/]get[name]] }}}><$view tiddler={{{ [<currentTiddler>addprefix[$:/language/Docs/Types/]] }}} field=\"description\"/> (<$view tiddler={{{ [<currentTiddler>addprefix[$:/language/Docs/Types/]] }}} field=\"name\"/>)</$link></span>\n</$list>\n</$set>\n</$list>\n</$linkcatcher>\n</div>\n</$reveal>\n</$set>\n</div>\n</div>\n</div>\n</$set>\n"
        },
        "$:/core/ui/EditTemplate": {
            "title": "$:/core/ui/EditTemplate",
            "text": "\\define delete-edittemplate-state-tiddlers() <$action-deletetiddler $filter=\"[<newFieldNameTiddler>] [<newFieldValueTiddler>] [<newFieldNameInputTiddler>] [<newFieldNameSelectionTiddler>] [<newTagNameTiddler>] [<newTagNameInputTiddler>] [<newTagNameSelectionTiddler>] [<typeInputTiddler>] [<typeSelectionTiddler>]\"/>\n\\define save-tiddler-actions()\n<$action-sendmessage $message=\"tm-add-tag\" $param={{{ [<newTagNameTiddler>get[text]] }}}/>\n<$action-sendmessage $message=\"tm-add-field\" $name={{{ [<newFieldNameTiddler>get[text]] }}} $value={{{ [<newFieldValueTiddler>get[text]] }}}/>\n<<delete-edittemplate-state-tiddlers>>\n<$action-sendmessage $message=\"tm-save-tiddler\"/>\n\\end\n\\define cancel-delete-tiddler-actions(message)\n<<delete-edittemplate-state-tiddlers>>\n<$action-sendmessage $message=\"tm-$message$-tiddler\"/>\n\\end\n<div data-tiddler-title=<<currentTiddler>> data-tags={{!!tags}} class={{{ tc-tiddler-frame tc-tiddler-edit-frame [<currentTiddler>is[tiddler]then[tc-tiddler-exists]] [<currentTiddler>is[missing]!is[shadow]then[tc-tiddler-missing]] [<currentTiddler>is[shadow]then[tc-tiddler-exists tc-tiddler-shadow]] [<currentTiddler>is[system]then[tc-tiddler-system]] [{!!class}] [<currentTiddler>tags[]encodeuricomponent[]addprefix[tc-tagged-]] +[join[ ]] }}}>\n<$fieldmangler>\n<$vars storyTiddler=<<currentTiddler>> newTagNameTiddler=<<qualify \"$:/temp/NewTagName\">> newFieldNameTiddler=<<qualify \"$:/temp/NewFieldName\">> newFieldValueTiddler=<<qualify \"$:/temp/NewFieldValue\">> newFieldNameInputTiddler=<<qualify \"$:/temp/NewFieldName/input\">> newFieldNameSelectionTiddler=<<qualify \"$:/temp/NewFieldName/selected-item\">> newTagNameInputTiddler=<<qualify \"$:/temp/NewTagName/input\">> newTagNameSelectionTiddler=<<qualify \"$:/temp/NewTagName/selected-item\">> typeInputTiddler=<<qualify \"$:/temp/Type/input\">> typeSelectionTiddler=<<qualify \"$:/temp/Type/selected-item\">>>\n<$keyboard key=\"((cancel-edit-tiddler))\" actions=<<cancel-delete-tiddler-actions \"cancel\">>>\n<$keyboard key=\"((save-tiddler))\" actions=<<save-tiddler-actions>>>\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/EditTemplate]!has[draft.of]]\" variable=\"listItem\">\n<$set name=\"tv-config-toolbar-class\" filter=\"[<tv-config-toolbar-class>] [<listItem>encodeuricomponent[]addprefix[tc-btn-]]\">\n<$transclude tiddler=<<listItem>>/>\n</$set>\n</$list>\n</$keyboard>\n</$keyboard>\n</$vars>\n</$fieldmangler>\n</div>\n"
        },
        "$:/core/ui/Buttons/cancel": {
            "title": "$:/core/ui/Buttons/cancel",
            "tags": "$:/tags/EditToolbar",
            "caption": "{{$:/core/images/cancel-button}} {{$:/language/Buttons/Cancel/Caption}}",
            "description": "{{$:/language/Buttons/Cancel/Hint}}",
            "text": "\\whitespace trim\n<$button actions=<<cancel-delete-tiddler-actions \"cancel\">> tooltip={{$:/language/Buttons/Cancel/Hint}} aria-label={{$:/language/Buttons/Cancel/Caption}} class=<<tv-config-toolbar-class>>>\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/cancel-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/Cancel/Caption}}/></span>\n</$list>\n</$button>\n"
        },
        "$:/core/ui/Buttons/delete": {
            "title": "$:/core/ui/Buttons/delete",
            "tags": "$:/tags/EditToolbar $:/tags/ViewToolbar",
            "caption": "{{$:/core/images/delete-button}} {{$:/language/Buttons/Delete/Caption}}",
            "description": "{{$:/language/Buttons/Delete/Hint}}",
            "text": "\\whitespace trim\n<$button actions=<<cancel-delete-tiddler-actions \"delete\">> tooltip={{$:/language/Buttons/Delete/Hint}} aria-label={{$:/language/Buttons/Delete/Caption}} class=<<tv-config-toolbar-class>>>\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/delete-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/Delete/Caption}}/></span>\n</$list>\n</$button>\n"
        },
        "$:/core/ui/Buttons/save": {
            "title": "$:/core/ui/Buttons/save",
            "tags": "$:/tags/EditToolbar",
            "caption": "{{$:/core/images/done-button}} {{$:/language/Buttons/Save/Caption}}",
            "description": "{{$:/language/Buttons/Save/Hint}}",
            "text": "\\define save-tiddler-button()\n\\whitespace trim\n<$fieldmangler><$button tooltip={{$:/language/Buttons/Save/Hint}} aria-label={{$:/language/Buttons/Save/Caption}} class=<<tv-config-toolbar-class>>>\n<<save-tiddler-actions>>\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/done-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/Save/Caption}}/></span>\n</$list>\n</$button></$fieldmangler>\n\\end\n<<save-tiddler-button>>\n"
        },
        "$:/core/ui/EditorToolbar/bold": {
            "title": "$:/core/ui/EditorToolbar/bold",
            "tags": "$:/tags/EditorToolbar",
            "icon": "$:/core/images/bold",
            "caption": "{{$:/language/Buttons/Bold/Caption}}",
            "description": "{{$:/language/Buttons/Bold/Hint}}",
            "condition": "[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]",
            "shortcuts": "((bold))",
            "text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"wrap-selection\"\n\tprefix=\"''\"\n\tsuffix=\"''\"\n/>\n"
        },
        "$:/core/ui/EditorToolbar/clear-dropdown": {
            "title": "$:/core/ui/EditorToolbar/clear-dropdown",
            "text": "''{{$:/language/Buttons/Clear/Hint}}''\n\n<div class=\"tc-colour-chooser\">\n\n<$macrocall $name=\"colour-picker\" actions=\"\"\"\n\n<$action-sendmessage\n\t$message=\"tm-edit-bitmap-operation\"\n\t$param=\"clear\"\n\tcolour=<<colour-picker-value>>\n/>\n\n<$action-deletetiddler\n\t$tiddler=<<dropdown-state>>\n/>\n\n\"\"\"/>\n\n</div>\n"
        },
        "$:/core/ui/EditorToolbar/clear": {
            "title": "$:/core/ui/EditorToolbar/clear",
            "tags": "$:/tags/EditorToolbar",
            "icon": "$:/core/images/erase",
            "caption": "{{$:/language/Buttons/Clear/Caption}}",
            "description": "{{$:/language/Buttons/Clear/Hint}}",
            "condition": "[<targetTiddler>is[image]] -[<targetTiddler>type[image/svg+xml]]",
            "dropdown": "$:/core/ui/EditorToolbar/clear-dropdown",
            "text": ""
        },
        "$:/core/ui/EditorToolbar/editor-height-dropdown": {
            "title": "$:/core/ui/EditorToolbar/editor-height-dropdown",
            "text": "\\define lingo-base() $:/language/Buttons/EditorHeight/\n''<<lingo Hint>>''\n\n<$radio tiddler=\"$:/config/TextEditor/EditorHeight/Mode\" value=\"auto\"> {{$:/core/images/auto-height}} <<lingo Caption/Auto>></$radio>\n\n<$radio tiddler=\"$:/config/TextEditor/EditorHeight/Mode\" value=\"fixed\"> {{$:/core/images/fixed-height}} <<lingo Caption/Fixed>> <$edit-text tag=\"input\" tiddler=\"$:/config/TextEditor/EditorHeight/Height\" default=\"100px\"/></$radio>\n"
        },
        "$:/core/ui/EditorToolbar/editor-height": {
            "title": "$:/core/ui/EditorToolbar/editor-height",
            "tags": "$:/tags/EditorToolbar",
            "icon": "$:/core/images/fixed-height",
            "custom-icon": "yes",
            "caption": "{{$:/language/Buttons/EditorHeight/Caption}}",
            "description": "{{$:/language/Buttons/EditorHeight/Hint}}",
            "condition": "[<targetTiddler>type[]] [<targetTiddler>get[type]prefix[text/]] [<targetTiddler>get[type]match[application/javascript]] [<targetTiddler>get[type]match[application/json]] [<targetTiddler>get[type]match[application/x-tiddler-dictionary]] [<targetTiddler>get[type]match[image/svg+xml]] +[first[]]",
            "dropdown": "$:/core/ui/EditorToolbar/editor-height-dropdown",
            "text": "<$reveal tag=\"span\" state=\"$:/config/TextEditor/EditorHeight/Mode\" type=\"match\" text=\"fixed\">\n{{$:/core/images/fixed-height}}\n</$reveal>\n<$reveal tag=\"span\" state=\"$:/config/TextEditor/EditorHeight/Mode\" type=\"match\" text=\"auto\">\n{{$:/core/images/auto-height}}\n</$reveal>\n"
        },
        "$:/core/ui/EditorToolbar/excise-dropdown": {
            "title": "$:/core/ui/EditorToolbar/excise-dropdown",
            "text": "\\define lingo-base() $:/language/Buttons/Excise/\n\n\\define body(config-title)\n''<<lingo Hint>>''\n\n<<lingo Caption/NewTitle>> <$edit-text tag=\"input\" tiddler=\"$config-title$/new-title\" default=\"\" focus=\"true\"/>\n\n<$set name=\"new-title\" value={{$config-title$/new-title}}>\n<$list filter=\"\"\"[<new-title>is[tiddler]]\"\"\">\n<div class=\"tc-error\">\n<<lingo Caption/TiddlerExists>>\n</div>\n</$list>\n</$set>\n\n<$checkbox tiddler=\"\"\"$config-title$/tagnew\"\"\" field=\"text\" checked=\"yes\" unchecked=\"no\" default=\"false\"> <<lingo Caption/Tag>></$checkbox>\n\n<<lingo Caption/Replace>> <$select tiddler=\"\"\"$config-title$/type\"\"\" default=\"transclude\">\n<option value=\"link\"><<lingo Caption/Replace/Link>></option>\n<option value=\"transclude\"><<lingo Caption/Replace/Transclusion>></option>\n<option value=\"macro\"><<lingo Caption/Replace/Macro>></option>\n</$select>\n\n<$reveal state=\"\"\"$config-title$/type\"\"\" type=\"match\" text=\"macro\">\n<<lingo Caption/MacroName>> <$edit-text tag=\"input\" tiddler=\"\"\"$config-title$/macro-title\"\"\" default=\"translink\"/>\n</$reveal>\n\n<$button>\n<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"excise\"\n\ttitle={{$config-title$/new-title}}\n\ttype={{$config-title$/type}}\n\tmacro={{$config-title$/macro-title}}\n\ttagnew={{$config-title$/tagnew}}\n/>\n<$action-deletetiddler\n\t$tiddler=\"$config-title$/new-title\"\n/>\n<$action-deletetiddler\n\t$tiddler=<<dropdown-state>>\n/>\n<<lingo Caption/Excise>>\n</$button>\n\\end\n\n<$macrocall $name=\"body\" config-title=<<qualify \"$:/state/Excise/\">>/>\n"
        },
        "$:/core/ui/EditorToolbar/excise": {
            "title": "$:/core/ui/EditorToolbar/excise",
            "tags": "$:/tags/EditorToolbar",
            "icon": "$:/core/images/excise",
            "caption": "{{$:/language/Buttons/Excise/Caption}}",
            "description": "{{$:/language/Buttons/Excise/Hint}}",
            "condition": "[<targetTiddler>type[]] [<targetTiddler>type[text/vnd.tiddlywiki]] +[first[]]",
            "shortcuts": "((excise))",
            "dropdown": "$:/core/ui/EditorToolbar/excise-dropdown",
            "text": ""
        },
        "$:/core/ui/EditorToolbar/heading-1": {
            "title": "$:/core/ui/EditorToolbar/heading-1",
            "tags": "$:/tags/EditorToolbar",
            "icon": "$:/core/images/heading-1",
            "caption": "{{$:/language/Buttons/Heading1/Caption}}",
            "description": "{{$:/language/Buttons/Heading1/Hint}}",
            "condition": "[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]",
            "button-classes": "tc-text-editor-toolbar-item-start-group",
            "shortcuts": "((heading-1))",
            "text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"prefix-lines\"\n\tcharacter=\"!\"\n\tcount=\"1\"\n/>\n"
        },
        "$:/core/ui/EditorToolbar/heading-2": {
            "title": "$:/core/ui/EditorToolbar/heading-2",
            "tags": "$:/tags/EditorToolbar",
            "icon": "$:/core/images/heading-2",
            "caption": "{{$:/language/Buttons/Heading2/Caption}}",
            "description": "{{$:/language/Buttons/Heading2/Hint}}",
            "condition": "[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]",
            "shortcuts": "((heading-2))",
            "text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"prefix-lines\"\n\tcharacter=\"!\"\n\tcount=\"2\"\n/>\n"
        },
        "$:/core/ui/EditorToolbar/heading-3": {
            "title": "$:/core/ui/EditorToolbar/heading-3",
            "tags": "$:/tags/EditorToolbar",
            "icon": "$:/core/images/heading-3",
            "caption": "{{$:/language/Buttons/Heading3/Caption}}",
            "description": "{{$:/language/Buttons/Heading3/Hint}}",
            "condition": "[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]",
            "shortcuts": "((heading-3))",
            "text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"prefix-lines\"\n\tcharacter=\"!\"\n\tcount=\"3\"\n/>\n"
        },
        "$:/core/ui/EditorToolbar/heading-4": {
            "title": "$:/core/ui/EditorToolbar/heading-4",
            "tags": "$:/tags/EditorToolbar",
            "icon": "$:/core/images/heading-4",
            "caption": "{{$:/language/Buttons/Heading4/Caption}}",
            "description": "{{$:/language/Buttons/Heading4/Hint}}",
            "condition": "[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]",
            "shortcuts": "((heading-4))",
            "text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"prefix-lines\"\n\tcharacter=\"!\"\n\tcount=\"4\"\n/>\n"
        },
        "$:/core/ui/EditorToolbar/heading-5": {
            "title": "$:/core/ui/EditorToolbar/heading-5",
            "tags": "$:/tags/EditorToolbar",
            "icon": "$:/core/images/heading-5",
            "caption": "{{$:/language/Buttons/Heading5/Caption}}",
            "description": "{{$:/language/Buttons/Heading5/Hint}}",
            "condition": "[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]",
            "shortcuts": "((heading-5))",
            "text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"prefix-lines\"\n\tcharacter=\"!\"\n\tcount=\"5\"\n/>\n"
        },
        "$:/core/ui/EditorToolbar/heading-6": {
            "title": "$:/core/ui/EditorToolbar/heading-6",
            "tags": "$:/tags/EditorToolbar",
            "icon": "$:/core/images/heading-6",
            "caption": "{{$:/language/Buttons/Heading6/Caption}}",
            "description": "{{$:/language/Buttons/Heading6/Hint}}",
            "condition": "[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]",
            "shortcuts": "((heading-6))",
            "text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"prefix-lines\"\n\tcharacter=\"!\"\n\tcount=\"6\"\n/>\n"
        },
        "$:/core/ui/EditorToolbar/italic": {
            "title": "$:/core/ui/EditorToolbar/italic",
            "tags": "$:/tags/EditorToolbar",
            "icon": "$:/core/images/italic",
            "caption": "{{$:/language/Buttons/Italic/Caption}}",
            "description": "{{$:/language/Buttons/Italic/Hint}}",
            "condition": "[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]",
            "shortcuts": "((italic))",
            "text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"wrap-selection\"\n\tprefix=\"//\"\n\tsuffix=\"//\"\n/>\n"
        },
        "$:/core/ui/EditorToolbar/line-width-dropdown": {
            "title": "$:/core/ui/EditorToolbar/line-width-dropdown",
            "text": "\\define lingo-base() $:/language/Buttons/LineWidth/\n\n\\define toolbar-line-width-inner()\n<$button tag=\"a\" tooltip=\"\"\"$(line-width)$\"\"\">\n\n<$action-setfield\n\t$tiddler=\"$:/config/BitmapEditor/LineWidth\"\n\t$value=\"$(line-width)$\"\n/>\n\n<$action-deletetiddler\n\t$tiddler=<<dropdown-state>>\n/>\n\n<div style=\"display: inline-block; margin: 4px calc(80px - $(line-width)$); background-color: #000; width: calc(100px + $(line-width)$ * 2); height: $(line-width)$; border-radius: 120px; vertical-align: middle;\"/>\n\n<span style=\"margin-left: 8px;\">\n\n<$text text=\"\"\"$(line-width)$\"\"\"/>\n\n<$reveal state=\"$:/config/BitmapEditor/LineWidth\" type=\"match\" text=\"\"\"$(line-width)$\"\"\" tag=\"span\">\n\n<$entity entity=\"&nbsp;\"/>\n\n<$entity entity=\"&#x2713;\"/>\n\n</$reveal>\n\n</span>\n\n</$button>\n\\end\n\n''<<lingo Hint>>''\n\n<$list filter={{$:/config/BitmapEditor/LineWidths}} variable=\"line-width\">\n\n<<toolbar-line-width-inner>>\n\n</$list>\n"
        },
        "$:/core/ui/EditorToolbar/line-width": {
            "title": "$:/core/ui/EditorToolbar/line-width",
            "tags": "$:/tags/EditorToolbar",
            "icon": "$:/core/images/line-width",
            "caption": "{{$:/language/Buttons/LineWidth/Caption}}",
            "description": "{{$:/language/Buttons/LineWidth/Hint}}",
            "condition": "[<targetTiddler>is[image]] -[<targetTiddler>type[image/svg+xml]]",
            "dropdown": "$:/core/ui/EditorToolbar/line-width-dropdown",
            "text": "<$text text={{$:/config/BitmapEditor/LineWidth}}/>\n"
        },
        "$:/core/ui/EditorToolbar/link-dropdown": {
            "title": "$:/core/ui/EditorToolbar/link-dropdown",
            "text": "\\define lingo-base() $:/language/Buttons/Link/\n\n\\define add-link-actions()\n<$action-sendmessage $message=\"tm-edit-text-operation\" $param=\"make-link\" text={{$(linkTiddler)$}} />\n<$action-deletetiddler $filter=\"[<dropdown-state>] [<searchTiddler>] [<linkTiddler>] [<storeTitle>] [<searchListState>]\"/>\n\\end\n\n\\define get-focus-selector() [data-tiddler-title=\"$(cssEscapedTitle)$\"] .tc-create-wikitext-link input\n\n\\define cancel-search-actions-inner()\n<$set name=\"userInput\" value={{{ [<storeTitle>get[text]] }}}><$list filter=\"[<searchTiddler>get[text]!match<userInput>]\" emptyMessage=\"\"\"<$action-deletetiddler $filter=\"[<searchTiddler>] [<linkTiddler>] [<storeTitle>] [<searchListState>]\"/>\"\"\"><$action-setfield $tiddler=<<searchTiddler>> text=<<userInput>>/><$action-setfield $tiddler=<<refreshTitle>> text=\"yes\"/></$list></$set>\n\\end\n\n\\define cancel-search-actions() <$list filter=\"[<storeTitle>!has[text]] +[<searchTiddler>!has[text]]\" emptyMessage=\"\"\"<<cancel-search-actions-inner>>\"\"\"><$action-sendmessage $message=\"tm-edit-text-operation\" $param=\"wrap-selection\" prefix=\"\" suffix=\"\"/></$list>\n\n\\define external-link()\n<$button class=\"tc-btn-invisible\" style=\"width: auto; display: inline-block; background-colour: inherit;\" actions=<<add-link-actions>>>\n{{$:/core/images/chevron-right}}\n</$button>\n\\end\n\n\\define set-next-input-tab(beforeafter:\"after\") <$macrocall $name=\"change-input-tab\" stateTitle=\"$:/state/tab/search-results/sidebar\" tag=\"$:/tags/SearchResults\" beforeafter=\"$beforeafter$\" defaultState={{$:/config/SearchResults/Default}} actions=\"\"\"<$action-setfield $tiddler=\"$:/state/search/currentTab\" text=<<nextTab>>/>\"\"\"/>\n\n\\define body(config-title)\n''<<lingo Hint>>''\n\n<$vars searchTiddler=\"\"\"$config-title$/search\"\"\" linkTiddler=\"\"\"$config-title$/link\"\"\" linktext=\"\" searchListState=<<qualify \"$:/temp/link-search/selected-item\">> refreshTitle=<<qualify \"$:/temp/link-search/refresh\">> storeTitle=<<qualify \"$:/temp/link-search/input\">>>\n\n<$vars linkTiddler=<<searchTiddler>>>\n<$keyboard key=\"((input-tab-right))\" actions=<<set-next-input-tab>>>\n<$keyboard key=\"((input-tab-left))\" actions=<<set-next-input-tab \"before\">> class=\"tc-create-wikitext-link\">\n<$macrocall $name=\"keyboard-driven-input\" tiddler=<<searchTiddler>> storeTitle=<<storeTitle>>\n\t\tselectionStateTitle=<<searchListState>> refreshTitle=<<refreshTitle>> type=\"search\" filterMinLength=\"1\"\n\t\ttag=\"input\" focus=\"true\" class=\"tc-popup-handle\" inputCancelActions=<<cancel-search-actions>> \n\t\tinputAcceptActions=<<add-link-actions>> placeholder={{$:/language/Search/Search}} default=\"\" \n\t\tconfigTiddlerFilter=\"[[$:/state/search/currentTab]!is[missing]get[text]] ~[{$:/config/SearchResults/Default}]\" />\n</$keyboard>\n</$keyboard>\n<$reveal tag=\"span\" state=<<storeTitle>> type=\"nomatch\" text=\"\">\n<<external-link>>\n<$button class=\"tc-btn-invisible\" style=\"width: auto; display: inline-block; background-colour: inherit;\">\n<<cancel-search-actions>><$set name=\"cssEscapedTitle\" value={{{ [<storyTiddler>escapecss[]] }}}><$action-sendmessage $message=\"tm-focus-selector\" $param=<<get-focus-selector>>/></$set>\n{{$:/core/images/close-button}}\n</$button>\n</$reveal>\n</$vars>\n\n<$reveal tag=\"div\" state=<<storeTitle>> type=\"nomatch\" text=\"\">\n\n<$linkcatcher actions=<<add-link-actions>> to=<<linkTiddler>>>\n\n<$vars userInput={{{ [<storeTitle>get[text]] }}} configTiddler={{{ [[$:/state/search/currentTab]!is[missing]get[text]] ~[{$:/config/SearchResults/Default}] }}}>\n\n{{$:/core/ui/SearchResults}}\n\n</$vars>\n\n</$linkcatcher>\n\n</$reveal>\n\n</$vars>\n\n\\end\n\n<$macrocall $name=\"body\" config-title=<<qualify \"$:/state/Link/\">>/>\n"
        },
        "$:/core/ui/EditorToolbar/link": {
            "title": "$:/core/ui/EditorToolbar/link",
            "tags": "$:/tags/EditorToolbar",
            "icon": "$:/core/images/link",
            "caption": "{{$:/language/Buttons/Link/Caption}}",
            "description": "{{$:/language/Buttons/Link/Hint}}",
            "condition": "[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]",
            "button-classes": "tc-text-editor-toolbar-item-start-group",
            "shortcuts": "((link))",
            "dropdown": "$:/core/ui/EditorToolbar/link-dropdown",
            "text": ""
        },
        "$:/core/ui/EditorToolbar/linkify": {
            "title": "$:/core/ui/EditorToolbar/linkify",
            "caption": "{{$:/language/Buttons/Linkify/Caption}}",
            "condition": "[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]",
            "description": "{{$:/language/Buttons/Linkify/Hint}}",
            "icon": "$:/core/images/linkify",
            "list-before": "$:/core/ui/EditorToolbar/mono-block",
            "shortcuts": "((linkify))",
            "tags": "$:/tags/EditorToolbar",
            "text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"wrap-selection\"\n\tprefix=\"[[\"\n\tsuffix=\"]]\"\n/>\n"
        },
        "$:/core/ui/EditorToolbar/list-bullet": {
            "title": "$:/core/ui/EditorToolbar/list-bullet",
            "tags": "$:/tags/EditorToolbar",
            "icon": "$:/core/images/list-bullet",
            "caption": "{{$:/language/Buttons/ListBullet/Caption}}",
            "description": "{{$:/language/Buttons/ListBullet/Hint}}",
            "condition": "[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]",
            "shortcuts": "((list-bullet))",
            "text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"prefix-lines\"\n\tcharacter=\"*\"\n\tcount=\"1\"\n/>\n"
        },
        "$:/core/ui/EditorToolbar/list-number": {
            "title": "$:/core/ui/EditorToolbar/list-number",
            "tags": "$:/tags/EditorToolbar",
            "icon": "$:/core/images/list-number",
            "caption": "{{$:/language/Buttons/ListNumber/Caption}}",
            "description": "{{$:/language/Buttons/ListNumber/Hint}}",
            "condition": "[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]",
            "shortcuts": "((list-number))",
            "text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"prefix-lines\"\n\tcharacter=\"#\"\n\tcount=\"1\"\n/>\n"
        },
        "$:/core/ui/EditorToolbar/mono-block": {
            "title": "$:/core/ui/EditorToolbar/mono-block",
            "tags": "$:/tags/EditorToolbar",
            "icon": "$:/core/images/mono-block",
            "caption": "{{$:/language/Buttons/MonoBlock/Caption}}",
            "description": "{{$:/language/Buttons/MonoBlock/Hint}}",
            "condition": "[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]",
            "button-classes": "tc-text-editor-toolbar-item-start-group",
            "shortcuts": "((mono-block))",
            "text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"wrap-lines\"\n\tprefix=\"\n```\"\n\tsuffix=\"```\"\n/>\n"
        },
        "$:/core/ui/EditorToolbar/mono-line": {
            "title": "$:/core/ui/EditorToolbar/mono-line",
            "tags": "$:/tags/EditorToolbar",
            "icon": "$:/core/images/mono-line",
            "caption": "{{$:/language/Buttons/MonoLine/Caption}}",
            "description": "{{$:/language/Buttons/MonoLine/Hint}}",
            "condition": "[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]",
            "shortcuts": "((mono-line))",
            "text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"wrap-selection\"\n\tprefix=\"`\"\n\tsuffix=\"`\"\n/>\n"
        },
        "$:/core/ui/EditorToolbar/more-dropdown": {
            "title": "$:/core/ui/EditorToolbar/more-dropdown",
            "text": "\\define config-title()\n$:/config/EditorToolbarButtons/Visibility/$(toolbarItem)$\n\\end\n\n\\define conditional-button()\n<$list filter={{$(toolbarItem)$!!condition}} variable=\"condition\">\n<$transclude tiddler=\"$:/core/ui/EditTemplate/body/toolbar/button\" mode=\"inline\"/> <$transclude tiddler=<<toolbarItem>> field=\"description\"/>\n</$list>\n\\end\n\n<div class=\"tc-text-editor-toolbar-more\">\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/EditorToolbar]!has[draft.of]] -[[$:/core/ui/EditorToolbar/more]]\">\n<$reveal type=\"match\" state=<<config-visibility-title>> text=\"hide\" tag=\"div\">\n<<conditional-button>>\n</$reveal>\n</$list>\n</div>\n"
        },
        "$:/core/ui/EditorToolbar/more": {
            "title": "$:/core/ui/EditorToolbar/more",
            "tags": "$:/tags/EditorToolbar",
            "icon": "$:/core/images/down-arrow",
            "caption": "{{$:/language/Buttons/More/Caption}}",
            "description": "{{$:/language/Buttons/More/Hint}}",
            "condition": "[<targetTiddler>]",
            "dropdown": "$:/core/ui/EditorToolbar/more-dropdown",
            "text": ""
        },
        "$:/core/ui/EditorToolbar/opacity-dropdown": {
            "title": "$:/core/ui/EditorToolbar/opacity-dropdown",
            "text": "\\define lingo-base() $:/language/Buttons/Opacity/\n\n\\define toolbar-opacity-inner()\n<$button tag=\"a\" tooltip=\"\"\"$(opacity)$\"\"\">\n\n<$action-setfield\n\t$tiddler=\"$:/config/BitmapEditor/Opacity\"\n\t$value=\"$(opacity)$\"\n/>\n\n<$action-deletetiddler\n\t$tiddler=<<dropdown-state>>\n/>\n\n<div style=\"display: inline-block; vertical-align: middle; background-color: $(current-paint-colour)$; opacity: $(opacity)$; width: 1em; height: 1em; border-radius: 50%;\"/>\n\n<span style=\"margin-left: 8px;\">\n\n<$text text=\"\"\"$(opacity)$\"\"\"/>\n\n<$reveal state=\"$:/config/BitmapEditor/Opacity\" type=\"match\" text=\"\"\"$(opacity)$\"\"\" tag=\"span\">\n\n<$entity entity=\"&nbsp;\"/>\n\n<$entity entity=\"&#x2713;\"/>\n\n</$reveal>\n\n</span>\n\n</$button>\n\\end\n\n\\define toolbar-opacity()\n''<<lingo Hint>>''\n\n<$list filter={{$:/config/BitmapEditor/Opacities}} variable=\"opacity\">\n\n<<toolbar-opacity-inner>>\n\n</$list>\n\\end\n\n<$set name=\"current-paint-colour\" value={{$:/config/BitmapEditor/Colour}}>\n\n<$set name=\"current-opacity\" value={{$:/config/BitmapEditor/Opacity}}>\n\n<<toolbar-opacity>>\n\n</$set>\n\n</$set>\n"
        },
        "$:/core/ui/EditorToolbar/opacity": {
            "title": "$:/core/ui/EditorToolbar/opacity",
            "tags": "$:/tags/EditorToolbar",
            "icon": "$:/core/images/opacity",
            "caption": "{{$:/language/Buttons/Opacity/Caption}}",
            "description": "{{$:/language/Buttons/Opacity/Hint}}",
            "condition": "[<targetTiddler>is[image]] -[<targetTiddler>type[image/svg+xml]]",
            "dropdown": "$:/core/ui/EditorToolbar/opacity-dropdown",
            "text": "<$text text={{$:/config/BitmapEditor/Opacity}}/>\n"
        },
        "$:/core/ui/EditorToolbar/paint-dropdown": {
            "title": "$:/core/ui/EditorToolbar/paint-dropdown",
            "text": "''{{$:/language/Buttons/Paint/Hint}}''\n\n<$macrocall $name=\"colour-picker\" actions=\"\"\"\n\n<$action-setfield\n\t$tiddler=\"$:/config/BitmapEditor/Colour\"\n\t$value=<<colour-picker-value>>\n/>\n\n<$action-deletetiddler\n\t$tiddler=<<dropdown-state>>\n/>\n\n\"\"\"/>\n"
        },
        "$:/core/ui/EditorToolbar/paint": {
            "title": "$:/core/ui/EditorToolbar/paint",
            "tags": "$:/tags/EditorToolbar",
            "icon": "$:/core/images/paint",
            "caption": "{{$:/language/Buttons/Paint/Caption}}",
            "description": "{{$:/language/Buttons/Paint/Hint}}",
            "condition": "[<targetTiddler>is[image]] -[<targetTiddler>type[image/svg+xml]]",
            "dropdown": "$:/core/ui/EditorToolbar/paint-dropdown",
            "text": "\\define toolbar-paint()\n<div style=\"display: inline-block; vertical-align: middle; background-color: $(colour-picker-value)$; width: 1em; height: 1em; border-radius: 50%;\"/>\n\\end\n<$set name=\"colour-picker-value\" value={{$:/config/BitmapEditor/Colour}}>\n<<toolbar-paint>>\n</$set>\n"
        },
        "$:/core/ui/EditorToolbar/picture-dropdown": {
            "title": "$:/core/ui/EditorToolbar/picture-dropdown",
            "text": "\\define replacement-text()\n[img[$(imageTitle)$]]\n\\end\n\n''{{$:/language/Buttons/Picture/Hint}}''\n\n<$macrocall $name=\"image-picker\" actions=\"\"\"\n\n<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"replace-selection\"\n\ttext=<<replacement-text>>\n/>\n\n<$action-deletetiddler\n\t$tiddler=<<dropdown-state>>\n/>\n\n\"\"\"/>\n"
        },
        "$:/core/ui/EditorToolbar/picture": {
            "title": "$:/core/ui/EditorToolbar/picture",
            "tags": "$:/tags/EditorToolbar",
            "icon": "$:/core/images/picture",
            "caption": "{{$:/language/Buttons/Picture/Caption}}",
            "description": "{{$:/language/Buttons/Picture/Hint}}",
            "condition": "[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]",
            "shortcuts": "((picture))",
            "dropdown": "$:/core/ui/EditorToolbar/picture-dropdown",
            "text": ""
        },
        "$:/core/ui/EditorToolbar/preview-type-dropdown": {
            "title": "$:/core/ui/EditorToolbar/preview-type-dropdown",
            "text": "\\define preview-type-button()\n<$button tag=\"a\">\n\n<$action-setfield $tiddler=\"$:/state/editpreviewtype\" $value=\"$(previewType)$\"/>\n\n<$action-deletetiddler\n\t$tiddler=<<dropdown-state>>\n/>\n\n<$transclude tiddler=<<previewType>> field=\"caption\" mode=\"inline\">\n\n<$view tiddler=<<previewType>> field=\"title\" mode=\"inline\"/>\n\n</$transclude> \n\n<$reveal tag=\"span\" state=\"$:/state/editpreviewtype\" type=\"match\" text=<<previewType>> default=\"$:/core/ui/EditTemplate/body/preview/output\">\n\n<$entity entity=\"&nbsp;\"/>\n\n<$entity entity=\"&#x2713;\"/>\n\n</$reveal>\n\n</$button>\n\\end\n\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/EditPreview]!has[draft.of]]\" variable=\"previewType\">\n\n<<preview-type-button>>\n\n</$list>\n"
        },
        "$:/core/ui/EditorToolbar/preview-type": {
            "title": "$:/core/ui/EditorToolbar/preview-type",
            "tags": "$:/tags/EditorToolbar",
            "icon": "$:/core/images/chevron-down",
            "caption": "{{$:/language/Buttons/PreviewType/Caption}}",
            "description": "{{$:/language/Buttons/PreviewType/Hint}}",
            "condition": "[all[shadows+tiddlers]tag[$:/tags/EditPreview]!has[draft.of]butfirst[]limit[1]]",
            "button-classes": "tc-text-editor-toolbar-item-adjunct",
            "dropdown": "$:/core/ui/EditorToolbar/preview-type-dropdown"
        },
        "$:/core/ui/EditorToolbar/preview": {
            "title": "$:/core/ui/EditorToolbar/preview",
            "tags": "$:/tags/EditorToolbar",
            "icon": "$:/core/images/preview-open",
            "custom-icon": "yes",
            "caption": "{{$:/language/Buttons/Preview/Caption}}",
            "description": "{{$:/language/Buttons/Preview/Hint}}",
            "condition": "[<targetTiddler>]",
            "button-classes": "tc-text-editor-toolbar-item-start-group",
            "shortcuts": "((preview))",
            "text": "<$reveal state=\"$:/state/showeditpreview\" type=\"match\" text=\"yes\" tag=\"span\">\n{{$:/core/images/preview-open}}\n<$action-setfield $tiddler=\"$:/state/showeditpreview\" $value=\"no\"/>\n</$reveal>\n<$reveal state=\"$:/state/showeditpreview\" type=\"nomatch\" text=\"yes\" tag=\"span\">\n{{$:/core/images/preview-closed}}\n<$action-setfield $tiddler=\"$:/state/showeditpreview\" $value=\"yes\"/>\n</$reveal>\n"
        },
        "$:/core/ui/EditorToolbar/quote": {
            "title": "$:/core/ui/EditorToolbar/quote",
            "tags": "$:/tags/EditorToolbar",
            "icon": "$:/core/images/quote",
            "caption": "{{$:/language/Buttons/Quote/Caption}}",
            "description": "{{$:/language/Buttons/Quote/Hint}}",
            "condition": "[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]",
            "shortcuts": "((quote))",
            "text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"wrap-lines\"\n\tprefix=\"\n<<<\"\n\tsuffix=\"<<<\"\n/>\n"
        },
        "$:/core/ui/EditorToolbar/rotate-left": {
            "title": "$:/core/ui/EditorToolbar/rotate-left",
            "tags": "$:/tags/EditorToolbar",
            "icon": "$:/core/images/rotate-left",
            "caption": "{{$:/language/Buttons/RotateLeft/Caption}}",
            "description": "{{$:/language/Buttons/RotateLeft/Hint}}",
            "condition": "[<targetTiddler>is[image]] -[<targetTiddler>type[image/svg+xml]]",
            "text": "<$action-sendmessage\n\t$message=\"tm-edit-bitmap-operation\"\n\t$param=\"rotate-left\"\n/>\n"
        },
        "$:/core/ui/EditorToolbar/size-dropdown": {
            "title": "$:/core/ui/EditorToolbar/size-dropdown",
            "text": "\\define lingo-base() $:/language/Buttons/Size/\n\n\\define toolbar-button-size-preset(config-title)\n<$set name=\"width\" filter=\"$(sizePair)$ +[first[]]\">\n\n<$set name=\"height\" filter=\"$(sizePair)$ +[last[]]\">\n\n<$button tag=\"a\">\n\n<$action-setfield\n\t$tiddler=\"\"\"$config-title$/new-width\"\"\"\n\t$value=<<width>>\n/>\n\n<$action-setfield\n\t$tiddler=\"\"\"$config-title$/new-height\"\"\"\n\t$value=<<height>>\n/>\n\n<$action-deletetiddler\n\t$tiddler=\"\"\"$config-title$/presets-popup\"\"\"\n/>\n\n<$text text=<<width>>/> &times; <$text text=<<height>>/>\n\n</$button>\n\n</$set>\n\n</$set>\n\\end\n\n\\define toolbar-button-size(config-title)\n''{{$:/language/Buttons/Size/Hint}}''\n\n<<lingo Caption/Width>> <$edit-text tag=\"input\" tiddler=\"\"\"$config-title$/new-width\"\"\" default=<<tv-bitmap-editor-width>> focus=\"true\" size=\"8\"/> <<lingo Caption/Height>> <$edit-text tag=\"input\" tiddler=\"\"\"$config-title$/new-height\"\"\" default=<<tv-bitmap-editor-height>> size=\"8\"/> <$button popup=\"\"\"$config-title$/presets-popup\"\"\" class=\"tc-btn-invisible tc-popup-keep\" style=\"width: auto; display: inline-block; background-colour: inherit;\" selectedClass=\"tc-selected\">\n{{$:/core/images/down-arrow}}\n</$button>\n\n<$reveal tag=\"span\" state=\"\"\"$config-title$/presets-popup\"\"\" type=\"popup\" position=\"belowleft\" animate=\"yes\">\n\n<div class=\"tc-drop-down tc-popup-keep\">\n\n<$list filter={{$:/config/BitmapEditor/ImageSizes}} variable=\"sizePair\">\n\n<$macrocall $name=\"toolbar-button-size-preset\" config-title=\"$config-title$\"/>\n\n</$list>\n\n</div>\n\n</$reveal>\n\n<$button>\n<$action-sendmessage\n\t$message=\"tm-edit-bitmap-operation\"\n\t$param=\"resize\"\n\twidth={{$config-title$/new-width}}\n\theight={{$config-title$/new-height}}\n/>\n<$action-deletetiddler\n\t$tiddler=\"\"\"$config-title$/new-width\"\"\"\n/>\n<$action-deletetiddler\n\t$tiddler=\"\"\"$config-title$/new-height\"\"\"\n/>\n<$action-deletetiddler\n\t$tiddler=<<dropdown-state>>\n/>\n<<lingo Caption/Resize>>\n</$button>\n\\end\n\n<$macrocall $name=\"toolbar-button-size\" config-title=<<qualify \"$:/state/Size/\">>/>\n"
        },
        "$:/core/ui/EditorToolbar/size": {
            "title": "$:/core/ui/EditorToolbar/size",
            "tags": "$:/tags/EditorToolbar",
            "icon": "$:/core/images/size",
            "caption": "{{$:/language/Buttons/Size/Caption}}",
            "description": "{{$:/language/Buttons/Size/Hint}}",
            "condition": "[<targetTiddler>is[image]] -[<targetTiddler>type[image/svg+xml]]",
            "dropdown": "$:/core/ui/EditorToolbar/size-dropdown",
            "text": ""
        },
        "$:/core/ui/EditorToolbar/stamp-dropdown": {
            "title": "$:/core/ui/EditorToolbar/stamp-dropdown",
            "text": "\\define toolbar-button-stamp-inner()\n<$button tag=\"a\">\n\n<$list filter=\"[[$(snippetTitle)$]addsuffix[/prefix]is[missing]removesuffix[/prefix]addsuffix[/suffix]is[missing]]\">\n\n<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"replace-selection\"\n\ttext={{$(snippetTitle)$}}\n/>\n\n</$list>\n\n\n<$list filter=\"[[$(snippetTitle)$]addsuffix[/prefix]is[missing]removesuffix[/prefix]addsuffix[/suffix]!is[missing]] [[$(snippetTitle)$]addsuffix[/prefix]!is[missing]removesuffix[/prefix]addsuffix[/suffix]is[missing]] [[$(snippetTitle)$]addsuffix[/prefix]!is[missing]removesuffix[/prefix]addsuffix[/suffix]!is[missing]]\">\n\n<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"wrap-selection\"\n\tprefix={{{ [[$(snippetTitle)$]addsuffix[/prefix]get[text]] }}}\nsuffix={{{ [[$(snippetTitle)$]addsuffix[/suffix]get[text]] }}}\n/>\n\n</$list>\n\n<$action-deletetiddler\n\t$tiddler=<<dropdown-state>>\n/>\n\n<$transclude tiddler=<<snippetTitle>> field=\"caption\" mode=\"inline\">\n\n<$view tiddler=<<snippetTitle>> field=\"title\" />\n\n</$transclude>\n\n</$button>\n\\end\n\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/TextEditor/Snippet]!has[draft.of]sort[caption]]\" variable=\"snippetTitle\">\n\n<<toolbar-button-stamp-inner>>\n\n</$list>\n\n----\n\n<$button tag=\"a\">\n\n<$action-sendmessage\n\t$message=\"tm-new-tiddler\"\n\ttags=\"$:/tags/TextEditor/Snippet\"\n\tcaption={{$:/language/Buttons/Stamp/New/Title}}\n\ttext={{$:/language/Buttons/Stamp/New/Text}}\n/>\n\n<$action-deletetiddler\n\t$tiddler=<<dropdown-state>>\n/>\n\n<em>\n\n<$text text={{$:/language/Buttons/Stamp/Caption/New}}/>\n\n</em>\n\n</$button>\n"
        },
        "$:/core/ui/EditorToolbar/stamp": {
            "title": "$:/core/ui/EditorToolbar/stamp",
            "tags": "$:/tags/EditorToolbar",
            "icon": "$:/core/images/stamp",
            "caption": "{{$:/language/Buttons/Stamp/Caption}}",
            "description": "{{$:/language/Buttons/Stamp/Hint}}",
            "condition": "[<targetTiddler>type[]] [<targetTiddler>get[type]prefix[text/]] [<targetTiddler>get[type]match[application/javascript]] [<targetTiddler>get[type]match[application/json]] [<targetTiddler>get[type]match[application/x-tiddler-dictionary]] [<targetTiddler>get[type]match[image/svg+xml]] +[first[]]",
            "shortcuts": "((stamp))",
            "dropdown": "$:/core/ui/EditorToolbar/stamp-dropdown",
            "text": ""
        },
        "$:/core/ui/EditorToolbar/strikethrough": {
            "title": "$:/core/ui/EditorToolbar/strikethrough",
            "tags": "$:/tags/EditorToolbar",
            "icon": "$:/core/images/strikethrough",
            "caption": "{{$:/language/Buttons/Strikethrough/Caption}}",
            "description": "{{$:/language/Buttons/Strikethrough/Hint}}",
            "condition": "[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]",
            "shortcuts": "((strikethrough))",
            "text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"wrap-selection\"\n\tprefix=\"~~\"\n\tsuffix=\"~~\"\n/>\n"
        },
        "$:/core/ui/EditorToolbar/subscript": {
            "title": "$:/core/ui/EditorToolbar/subscript",
            "tags": "$:/tags/EditorToolbar",
            "icon": "$:/core/images/subscript",
            "caption": "{{$:/language/Buttons/Subscript/Caption}}",
            "description": "{{$:/language/Buttons/Subscript/Hint}}",
            "condition": "[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]",
            "shortcuts": "((subscript))",
            "text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"wrap-selection\"\n\tprefix=\",,\"\n\tsuffix=\",,\"\n/>\n"
        },
        "$:/core/ui/EditorToolbar/superscript": {
            "title": "$:/core/ui/EditorToolbar/superscript",
            "tags": "$:/tags/EditorToolbar",
            "icon": "$:/core/images/superscript",
            "caption": "{{$:/language/Buttons/Superscript/Caption}}",
            "description": "{{$:/language/Buttons/Superscript/Hint}}",
            "condition": "[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]",
            "shortcuts": "((superscript))",
            "text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"wrap-selection\"\n\tprefix=\"^^\"\n\tsuffix=\"^^\"\n/>\n"
        },
        "$:/core/ui/EditorToolbar/transcludify": {
            "title": "$:/core/ui/EditorToolbar/transcludify",
            "caption": "{{$:/language/Buttons/Transcludify/Caption}}",
            "condition": "[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]",
            "description": "{{$:/language/Buttons/Transcludify/Hint}}",
            "icon": "$:/core/images/transcludify",
            "list-before": "$:/core/ui/EditorToolbar/mono-block",
            "shortcuts": "((transcludify))",
            "tags": "$:/tags/EditorToolbar",
            "text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"wrap-selection\"\n\tprefix=\"{{\"\n\tsuffix=\"}}\"\n/>\n"
        },
        "$:/core/ui/EditorToolbar/underline": {
            "title": "$:/core/ui/EditorToolbar/underline",
            "tags": "$:/tags/EditorToolbar",
            "icon": "$:/core/images/underline",
            "caption": "{{$:/language/Buttons/Underline/Caption}}",
            "description": "{{$:/language/Buttons/Underline/Hint}}",
            "condition": "[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]",
            "shortcuts": "((underline))",
            "text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"wrap-selection\"\n\tprefix=\"__\"\n\tsuffix=\"__\"\n/>\n"
        },
        "$:/core/Filters/AllTags": {
            "title": "$:/core/Filters/AllTags",
            "tags": "$:/tags/Filter",
            "filter": "[tags[]!is[system]sort[title]]",
            "description": "{{$:/language/Filters/AllTags}}",
            "text": ""
        },
        "$:/core/Filters/AllTiddlers": {
            "title": "$:/core/Filters/AllTiddlers",
            "tags": "$:/tags/Filter",
            "filter": "[!is[system]sort[title]]",
            "description": "{{$:/language/Filters/AllTiddlers}}",
            "text": ""
        },
        "$:/core/Filters/Drafts": {
            "title": "$:/core/Filters/Drafts",
            "tags": "$:/tags/Filter",
            "filter": "[has[draft.of]sort[title]]",
            "description": "{{$:/language/Filters/Drafts}}",
            "text": ""
        },
        "$:/core/Filters/Missing": {
            "title": "$:/core/Filters/Missing",
            "tags": "$:/tags/Filter",
            "filter": "[all[missing]sort[title]]",
            "description": "{{$:/language/Filters/Missing}}",
            "text": ""
        },
        "$:/core/Filters/Orphans": {
            "title": "$:/core/Filters/Orphans",
            "tags": "$:/tags/Filter",
            "filter": "[all[orphans]sort[title]]",
            "description": "{{$:/language/Filters/Orphans}}",
            "text": ""
        },
        "$:/core/Filters/OverriddenShadowTiddlers": {
            "title": "$:/core/Filters/OverriddenShadowTiddlers",
            "tags": "$:/tags/Filter",
            "filter": "[is[shadow]]",
            "description": "{{$:/language/Filters/OverriddenShadowTiddlers}}",
            "text": ""
        },
        "$:/core/Filters/RecentSystemTiddlers": {
            "title": "$:/core/Filters/RecentSystemTiddlers",
            "tags": "$:/tags/Filter",
            "filter": "[has[modified]!sort[modified]limit[50]]",
            "description": "{{$:/language/Filters/RecentSystemTiddlers}}",
            "text": ""
        },
        "$:/core/Filters/RecentTiddlers": {
            "title": "$:/core/Filters/RecentTiddlers",
            "tags": "$:/tags/Filter",
            "filter": "[!is[system]has[modified]!sort[modified]limit[50]]",
            "description": "{{$:/language/Filters/RecentTiddlers}}",
            "text": ""
        },
        "$:/core/Filters/SessionTiddlers": {
            "title": "$:/core/Filters/SessionTiddlers",
            "tags": "$:/tags/Filter",
            "filter": "[haschanged[]]",
            "description": "{{$:/language/Filters/SessionTiddlers}}",
            "text": ""
        },
        "$:/core/Filters/ShadowTiddlers": {
            "title": "$:/core/Filters/ShadowTiddlers",
            "tags": "$:/tags/Filter",
            "filter": "[all[shadows]sort[title]]",
            "description": "{{$:/language/Filters/ShadowTiddlers}}",
            "text": ""
        },
        "$:/core/Filters/StoryList": {
            "title": "$:/core/Filters/StoryList",
            "tags": "$:/tags/Filter",
            "filter": "[list[$:/StoryList]] -$:/AdvancedSearch",
            "description": "{{$:/language/Filters/StoryList}}",
            "text": ""
        },
        "$:/core/Filters/SystemTags": {
            "title": "$:/core/Filters/SystemTags",
            "tags": "$:/tags/Filter",
            "filter": "[all[shadows+tiddlers]tags[]is[system]sort[title]]",
            "description": "{{$:/language/Filters/SystemTags}}",
            "text": ""
        },
        "$:/core/Filters/SystemTiddlers": {
            "title": "$:/core/Filters/SystemTiddlers",
            "tags": "$:/tags/Filter",
            "filter": "[is[system]sort[title]]",
            "description": "{{$:/language/Filters/SystemTiddlers}}",
            "text": ""
        },
        "$:/core/Filters/TypedTiddlers": {
            "title": "$:/core/Filters/TypedTiddlers",
            "tags": "$:/tags/Filter",
            "filter": "[!is[system]has[type]each[type]sort[type]] -[type[text/vnd.tiddlywiki]]",
            "description": "{{$:/language/Filters/TypedTiddlers}}",
            "text": ""
        },
        "$:/core/ui/ImportListing": {
            "title": "$:/core/ui/ImportListing",
            "text": "\\define lingo-base() $:/language/Import/\n\n\\define messageField() message-$(payloadTiddler)$\n\n\\define payloadTitleFilter() [<currentTiddler>get<renameField>minlength[1]else<payloadTiddler>]\n\n\\define overWriteWarning()\n<$list filter=\"[<currentTiddler>!has<suppressedField>]\">\n<$text text={{{[subfilter<payloadTitleFilter>!is[tiddler]then[]] ~[<lingo-base>addsuffix[Listing/Rename/OverwriteWarning]get[text]]}}}/>\n</$list>\n\\end\n\n\\define selectionField() selection-$(payloadTiddler)$\n\n\\define renameField() rename-$(payloadTiddler)$\n\n\\define suppressedField() suppressed-$(payloadTiddler)$\n\n\\define newImportTitleTiddler() $:/temp/NewImportTitle-$(payloadTiddler)$\n\n\\define previewPopupState() $(currentTiddler)$!!popup-$(payloadTiddler)$\n\n\\define renameFieldState() $(currentTiddler)$!!state-rename-$(payloadTiddler)$\n\n\\define select-all-actions()\n<$list filter=\"[all[current]plugintiddlers[]sort[title]]\" variable=\"payloadTiddler\">\n<$action-setfield $field={{{ [<payloadTiddler>addprefix[selection-]] }}} $value={{$:/state/import/select-all}}/>\n</$list>\n\\end\n\n<table class=\"tc-import-table\">\n<tbody>\n<tr>\n<th align=\"left\">\n<$checkbox tiddler=\"$:/state/import/select-all\" field=\"text\" checked=\"checked\" unchecked=\"unchecked\" default=\"checked\" actions=<<select-all-actions>>>\n<<lingo Listing/Select/Caption>>\n</$checkbox>\n</th>\n<th>\n<<lingo Listing/Title/Caption>>\n</th>\n<th>\n<<lingo Listing/Status/Caption>>\n</th>\n</tr>\n<$list filter=\"[all[current]plugintiddlers[]sort[title]]\" variable=\"payloadTiddler\">\n<tr class={{{[<currentTiddler>has<suppressedField>then[tc-row-disabled]] ~[subfilter<payloadTitleFilter>is[tiddler]then[tc-row-warning]] }}}>\n<td>\n<$checkbox field=<<selectionField>> checked=\"checked\" unchecked=\"unchecked\" default=\"checked\" disabled={{{[<currentTiddler>has<suppressedField>then[yes]else[no]]}}}/>\n</td>\n<td>\n<$reveal type=\"nomatch\" state=<<renameFieldState>> text=\"yes\" tag=\"div\">\n<$reveal type=\"nomatch\" state=<<previewPopupState>> text=\"yes\" tag=\"div\" class=\"tc-flex\">\n<$button class=\"tc-btn-invisible tc-btn-dropdown tc-flex-grow-1 tc-word-break\" set=<<previewPopupState>> setTo=\"yes\" disabled={{{[<currentTiddler>has<suppressedField>then[yes]else[no]]}}}>\n<span class=\"tc-small-gap-right\">{{$:/core/images/right-arrow}}</span><$text text={{{[subfilter<payloadTitleFilter>]}}}/>\n</$button>\n<$list filter=\"[<currentTiddler>!has<suppressedField>]\"><$button class=\"tc-btn-invisible\" set=<<renameFieldState>> setTo=\"yes\" tooltip={{{[<lingo-base>addsuffix[Listing/Rename/Tooltip]get[text]]}}}>{{$:/core/images/edit-button}}</$button></$list>\n</$reveal>\n<$reveal type=\"match\" state=<<previewPopupState>> text=\"yes\" tag=\"div\">\n<$button class=\"tc-btn-invisible tc-btn-dropdown\" set=<<previewPopupState>> setTo=\"no\">\n<span class=\"tc-small-gap-right\">{{$:/core/images/down-arrow}}</span><$text text={{{[subfilter<payloadTitleFilter>]}}}/>\n</$button>\n</$reveal>\n</$reveal>\n<$reveal type=\"match\" state=<<renameFieldState>> text=\"yes\" tag=\"div\">\n<$text text={{{[<lingo-base>addsuffix[Listing/Rename/Prompt]get[text]]}}}/>\n</$reveal>\n</td>\n<td>\n<$view field=<<messageField>>/>\n<<overWriteWarning>>\n</td>\n</tr>\n<$reveal type=\"match\" state=<<renameFieldState>> text=\"yes\" tag=\"tr\">\n<td colspan=\"3\">\n<div class=\"tc-flex\">\n<$edit-text tiddler=<<newImportTitleTiddler>>  default={{{[subfilter<payloadTitleFilter>]}}} tag=\"input\" class=\"tc-import-rename tc-flex-grow-1\"/><span class=\"tc-small-gap-left\"><$button  class=\"tc-btn-invisible\" set=<<renameFieldState>> setTo=\"no\" tooltip={{{[<lingo-base>addsuffix[Listing/Rename/CancelRename]get[text]]}}}>{{$:/core/images/close-button}}<$action-deletetiddler $tiddler=<<newImportTitleTiddler>>/></$button><span class=\"tc-small-gap-right\"/></span><$button  class=\"tc-btn-invisible\" set=<<renameFieldState>> setTo=\"no\" tooltip={{{[<lingo-base>addsuffix[Listing/Rename/ConfirmRename]get[text]]}}}>{{$:/core/images/done-button}}<$action-setfield $field=<<renameField>> $value={{{[<newImportTitleTiddler>get[text]minlength[1]else<payloadTiddler>]}}} /><$action-deletetiddler $tiddler=<<newImportTitleTiddler>>/></$button>\n</div>\n</td>\n</$reveal>\n<tr>\n<td colspan=\"3\">\n<$reveal type=\"match\" text=\"yes\" state=<<previewPopupState>> tag=\"div\">\n<$list filter=\"[{$:/state/importpreviewtype}has[text]]\" variable=\"listItem\" emptyMessage={{$:/core/ui/ImportPreviews/Text}}>\n<$transclude tiddler={{$:/state/importpreviewtype}}/>\n</$list>\n</$reveal>\n</td>\n</tr>\n</$list>\n</tbody>\n</table>\n"
        },
        "$:/core/ui/ImportPreviews/Diff": {
            "title": "$:/core/ui/ImportPreviews/Diff",
            "tags": "$:/tags/ImportPreview",
            "caption": "{{$:/language/Import/Listing/Preview/Diff}}",
            "text": "<$macrocall $name=\"compareTiddlerText\" sourceTiddlerTitle=<<payloadTiddler>> destTiddlerTitle=<<currentTiddler>> destSubTiddlerTitle=<<payloadTiddler>>/>\n"
        },
        "$:/core/ui/ImportPreviews/DiffFields": {
            "title": "$:/core/ui/ImportPreviews/DiffFields",
            "tags": "$:/tags/ImportPreview",
            "caption": "{{$:/language/Import/Listing/Preview/DiffFields}}",
            "text": "<$macrocall $name=\"compareTiddlers\" sourceTiddlerTitle=<<payloadTiddler>> destTiddlerTitle=<<currentTiddler>> destSubTiddlerTitle=<<payloadTiddler>> exclude=\"text\"/>\n"
        },
        "$:/core/ui/ImportPreviews/Fields": {
            "title": "$:/core/ui/ImportPreviews/Fields",
            "tags": "$:/tags/ImportPreview",
            "caption": "{{$:/language/Import/Listing/Preview/Fields}}",
            "text": "<table class=\"tc-view-field-table\">\n<tbody>\n<$list filter=\"[<payloadTiddler>subtiddlerfields<currentTiddler>sort[]] -text\" variable=\"fieldName\">\n<tr class=\"tc-view-field\">\n<td class=\"tc-view-field-name\">\n<$text text=<<fieldName>>/>\n</td>\n<td class=\"tc-view-field-value\">\n<$view field=<<fieldName>> tiddler=<<currentTiddler>> subtiddler=<<payloadTiddler>>/>\n</td>\n</tr>\n</$list>\n</tbody>\n</table>\n"
        },
        "$:/core/ui/ImportPreviews/Text": {
            "title": "$:/core/ui/ImportPreviews/Text",
            "tags": "$:/tags/ImportPreview",
            "caption": "{{$:/language/Import/Listing/Preview/Text}}",
            "text": "<$transclude tiddler=<<currentTiddler>> subtiddler=<<payloadTiddler>> mode=\"block\"/>\n"
        },
        "$:/core/ui/ImportPreviews/TextRaw": {
            "title": "$:/core/ui/ImportPreviews/TextRaw",
            "tags": "$:/tags/ImportPreview",
            "caption": "{{$:/language/Import/Listing/Preview/TextRaw}}",
            "text": "<pre><code><$view tiddler=<<currentTiddler>> subtiddler=<<payloadTiddler>> /></code></pre>"
        },
        "$:/core/ui/KeyboardShortcuts/advanced-search": {
            "title": "$:/core/ui/KeyboardShortcuts/advanced-search",
            "tags": "$:/tags/KeyboardShortcut",
            "key": "((advanced-search))",
            "text": "<$navigator story=\"$:/StoryList\" history=\"$:/HistoryList\">\n<$action-navigate $to=\"$:/AdvancedSearch\"/>\n<$action-sendmessage $message=\"tm-focus-selector\" $param=\"\"\"[data-tiddler-title=\"$:/AdvancedSearch\"] .tc-search input\"\"\" preventScroll=\"true\"/>\n</$navigator>\n"
        },
        "$:/core/ui/KeyboardShortcuts/change-sidebar-layout": {
            "title": "$:/core/ui/KeyboardShortcuts/change-sidebar-layout",
            "tags": "$:/tags/KeyboardShortcut",
            "key": "((change-sidebar-layout))",
            "text": "<$list filter=\"[{$:/themes/tiddlywiki/vanilla/options/sidebarlayout}match[fixed-fluid]]\" \nemptyMessage=\"\"\"<$action-setfield $tiddler=\"$:/themes/tiddlywiki/vanilla/options/sidebarlayout\" text=\"fixed-fluid\"/>\"\"\">\n<$action-setfield $tiddler=\"$:/themes/tiddlywiki/vanilla/options/sidebarlayout\" text=\"fluid-fixed\"/>\n</$list>\n"
        },
        "$:/core/ui/KeyboardShortcuts/new-image": {
            "title": "$:/core/ui/KeyboardShortcuts/new-image",
            "tags": "$:/tags/KeyboardShortcut",
            "key": "((new-image))",
            "text": "<$navigator story=\"$:/StoryList\" history=\"$:/HistoryList\" openLinkFromInsideRiver={{$:/config/Navigation/openLinkFromInsideRiver}} openLinkFromOutsideRiver={{$:/config/Navigation/openLinkFromOutsideRiver}} relinkOnRename={{$:/config/RelinkOnRename}}>\n{{$:/core/ui/Actions/new-image}}\n</$navigator>\n"
        },
        "$:/core/ui/KeyboardShortcuts/new-journal": {
            "title": "$:/core/ui/KeyboardShortcuts/new-journal",
            "tags": "$:/tags/KeyboardShortcut",
            "key": "((new-journal))",
            "text": "<$navigator story=\"$:/StoryList\" history=\"$:/HistoryList\" openLinkFromInsideRiver={{$:/config/Navigation/openLinkFromInsideRiver}} openLinkFromOutsideRiver={{$:/config/Navigation/openLinkFromOutsideRiver}} relinkOnRename={{$:/config/RelinkOnRename}}>\n{{$:/core/ui/Actions/new-journal}}\n</$navigator>\n"
        },
        "$:/core/ui/KeyboardShortcuts/new-tiddler": {
            "title": "$:/core/ui/KeyboardShortcuts/new-tiddler",
            "tags": "$:/tags/KeyboardShortcut",
            "key": "((new-tiddler))",
            "text": "<$navigator story=\"$:/StoryList\" history=\"$:/HistoryList\" openLinkFromInsideRiver={{$:/config/Navigation/openLinkFromInsideRiver}} openLinkFromOutsideRiver={{$:/config/Navigation/openLinkFromOutsideRiver}} relinkOnRename={{$:/config/RelinkOnRename}}>\n{{$:/core/ui/Actions/new-tiddler}}\n</$navigator>\n"
        },
        "$:/core/ui/KeyboardShortcuts/save-wiki": {
            "title": "$:/core/ui/KeyboardShortcuts/save-wiki",
            "tags": "$:/tags/KeyboardShortcut",
            "key": "((save-wiki))",
            "text": "<$wikify name=\"site-title\" text={{$:/config/SaveWikiButton/Filename}}>\n<$action-sendmessage $message=\"tm-save-wiki\" $param={{$:/config/SaveWikiButton/Template}} filename=<<site-title>>/>\n</$wikify>\n"
        },
        "$:/core/ui/KeyboardShortcuts/sidebar-search": {
            "title": "$:/core/ui/KeyboardShortcuts/sidebar-search",
            "tags": "$:/tags/KeyboardShortcut",
            "key": "((sidebar-search))",
            "text": "<$action-sendmessage $message=\"tm-focus-selector\" $param=\".tc-search input\"/>\n"
        },
        "$:/core/ui/KeyboardShortcuts/switcher": {
            "title": "$:/core/ui/KeyboardShortcuts/switcher",
            "tags": "$:/tags/KeyboardShortcut",
            "key": "((layout-switcher))",
            "text": "<$action-sendmessage $message=\"tm-show-switcher\" switch=\"layout\"/>"
        },
        "$:/core/ui/KeyboardShortcuts/toggle-sidebar": {
            "title": "$:/core/ui/KeyboardShortcuts/toggle-sidebar",
            "tags": "$:/tags/KeyboardShortcut",
            "key": "((toggle-sidebar))",
            "text": "<$list filter=\"[[$:/state/sidebar]is[missing]] [{$:/state/sidebar}removeprefix[yes]]\" emptyMessage=\"\"\"\n<$action-setfield $tiddler=\"$:/state/sidebar\" text=\"yes\"/>\n\"\"\">\n<$action-setfield $tiddler=\"$:/state/sidebar\" text=\"no\"/>\n</$list>\n"
        },
        "$:/snippets/LayoutSwitcher": {
            "title": "$:/snippets/LayoutSwitcher",
            "tags": "$:/tags/ControlPanel/Appearance",
            "caption": "{{$:/language/ControlPanel/LayoutSwitcher/Caption}}",
            "text": "<$linkcatcher to=\"$:/layout\">\n<div class=\"tc-chooser\">\n<$list filter=\"[all[tiddlers+shadows]tag[$:/tags/Layout]] [[$:/core/ui/PageTemplate]] +[!is[draft]sort[name]]\">\n<$list filter=\"[{$:/layout}!has[text]]\" variable=\"ignore\" emptyMessage=\"\"\"\n<$set name=\"cls\" filter=\"[all[current]field:title{$:/layout}]\" value=\"tc-chooser-item tc-chosen\" emptyValue=\"tc-chooser-item\"><div class=<<cls>>><$link to={{!!title}}>''<$transclude field=\"name\"/>'' - <$transclude field=\"description\"/></$link></div>\n</$set>\n\"\"\">\n<$set name=\"cls\" filter=\"[all[current]field:title[$:/core/ui/PageTemplate]]\" value=\"tc-chooser-item tc-chosen\" emptyValue=\"tc-chooser-item\"><div class=<<cls>>><$link to={{!!title}}>''<$transclude field=\"name\"/>'' - <$transclude field=\"description\"/></$link></div>\n</$set>\n</$list>\n</$list>\n</div>\n</$linkcatcher>\n"
        },
        "$:/core/ui/ListItemTemplate": {
            "title": "$:/core/ui/ListItemTemplate",
            "text": "<div class=\"tc-menu-list-item\">\n<$link />\n</div>"
        },
        "$:/Manager/ItemMain/Fields": {
            "title": "$:/Manager/ItemMain/Fields",
            "tags": "$:/tags/Manager/ItemMain",
            "caption": "{{$:/language/Manager/Item/Fields}}",
            "text": "<table>\n<tbody>\n<$list filter=\"[all[current]fields[]sort[title]] -text\" template=\"$:/core/ui/TiddlerFieldTemplate\" variable=\"listItem\"/>\n</tbody>\n</table>\n"
        },
        "$:/Manager/ItemMain/RawText": {
            "title": "$:/Manager/ItemMain/RawText",
            "tags": "$:/tags/Manager/ItemMain",
            "caption": "{{$:/language/Manager/Item/RawText}}",
            "text": "<pre><code><$view/></code></pre>\n"
        },
        "$:/Manager/ItemMain/WikifiedText": {
            "title": "$:/Manager/ItemMain/WikifiedText",
            "tags": "$:/tags/Manager/ItemMain",
            "caption": "{{$:/language/Manager/Item/WikifiedText}}",
            "text": "<$transclude mode=\"block\"/>\n"
        },
        "$:/Manager/ItemSidebar/Colour": {
            "title": "$:/Manager/ItemSidebar/Colour",
            "tags": "$:/tags/Manager/ItemSidebar",
            "caption": "{{$:/language/Manager/Item/Colour}}",
            "text": "\\define swatch-styles()\nheight: 1em;\nbackground-color: $(colour)$\n\\end\n\n<$vars colour={{!!color}}>\n<p style=<<swatch-styles>>/>\n</$vars>\n<p>\n<$edit-text field=\"color\" tag=\"input\" type=\"color\"/> / <$edit-text field=\"color\" tag=\"input\" type=\"text\" size=\"9\"/>\n</p>\n"
        },
        "$:/Manager/ItemSidebar/Icon": {
            "title": "$:/Manager/ItemSidebar/Icon",
            "tags": "$:/tags/Manager/ItemSidebar",
            "caption": "{{$:/language/Manager/Item/Icon}}",
            "text": "<p>\n<div class=\"tc-manager-icon-editor\">\n<$button popup=<<qualify \"$:/state/popup/image-picker\">> class=\"tc-btn-invisible\">\n<$transclude tiddler={{!!icon}}>\n{{$:/language/Manager/Item/Icon/None}}\n</$transclude>\n</$button>\n<div class=\"tc-block-dropdown-wrapper\" style=\"position: static;\">\n<$reveal state=<<qualify \"$:/state/popup/image-picker\">> type=\"nomatch\" text=\"\" default=\"\" tag=\"div\" class=\"tc-popup\">\n<div class=\"tc-block-dropdown tc-popup-keep\" style=\"width: 80%; left: 10%; right: 10%; padding: 0.5em;\">\n<$macrocall $name=\"image-picker-include-tagged-images\" actions=\"\"\"\n<$action-setfield $field=\"icon\" $value=<<imageTitle>>/>\n<$action-deletetiddler $tiddler=<<qualify \"$:/state/popup/image-picker\">>/>\n\"\"\"/>\n</div>\n</$reveal>\n</div>\n</div>\n</p>\n"
        },
        "$:/Manager/ItemSidebar/Tags": {
            "title": "$:/Manager/ItemSidebar/Tags",
            "tags": "$:/tags/Manager/ItemSidebar",
            "caption": "{{$:/language/Manager/Item/Tags}}",
            "text": "\\whitespace trim\n\\define tag-checkbox-actions()\n<$action-listops\n\t$tiddler=\"$:/config/Manager/RecentTags\"\n\t$subfilter=\"[<tag>] [list[$:/config/Manager/RecentTags]] +[limit[12]]\"\n/>\n\\end\n\n\\define tag-picker-actions()\n<<tag-checkbox-actions>>\n\\end\n\n<p>\n<$list filter=\"[all[current]tags[]] [list[$:/config/Manager/RecentTags]] +[sort[title]] \" variable=\"tag\" storyview=\"pop\">\n<div>\n<$checkbox tiddler=<<currentTiddler>> tag=<<tag>> actions=<<tag-checkbox-actions>>>\n<$macrocall $name=\"tag-pill\" tag=<<tag>>/>\n</$checkbox>\n</div>\n</$list>\n</p>\n<p>\n<$fieldmangler>\n<$macrocall $name=\"tag-picker\" actions=<<tag-picker-actions>>/>\n</$fieldmangler>\n</p>\n"
        },
        "$:/Manager/ItemSidebar/Tools": {
            "title": "$:/Manager/ItemSidebar/Tools",
            "tags": "$:/tags/Manager/ItemSidebar",
            "caption": "{{$:/language/Manager/Item/Tools}}",
            "text": "<p>\n<$button to=<<currentTiddler>>>{{$:/core/images/link}} open</$button>\n</p>\n<p>\n<$button message=\"tm-edit-tiddler\" param=<<currentTiddler>>>{{$:/core/images/edit-button}} edit</$button>\n</p>\n"
        },
        "$:/Manager": {
            "title": "$:/Manager",
            "icon": "$:/core/images/list",
            "color": "#bbb",
            "text": "\\define lingo-base() $:/language/Manager/\n\n\\define list-item-content-item()\n<div class=\"tc-manager-list-item-content-item\">\n\t<$vars state-title=\"\"\"$:/state/popup/manager/item/$(listItem)$\"\"\">\n\t\t<$reveal state=<<state-title>> type=\"match\" text=\"show\" default=\"show\" tag=\"div\">\n\t\t\t<$button set=<<state-title>> setTo=\"hide\" class=\"tc-btn-invisible tc-manager-list-item-content-item-heading\">\n\t\t\t\t{{$:/core/images/down-arrow}} <$transclude tiddler=<<listItem>> field=\"caption\"/>\n\t\t\t</$button>\n\t\t</$reveal>\n\t\t<$reveal state=<<state-title>> type=\"nomatch\" text=\"show\" default=\"show\" tag=\"div\">\n\t\t\t<$button set=<<state-title>> setTo=\"show\" class=\"tc-btn-invisible tc-manager-list-item-content-item-heading\">\n\t\t\t\t{{$:/core/images/right-arrow}} <$transclude tiddler=<<listItem>> field=\"caption\"/>\n\t\t\t</$button>\n\t\t</$reveal>\n\t\t<$reveal state=<<state-title>> type=\"match\" text=\"show\" default=\"show\" tag=\"div\" class=\"tc-manager-list-item-content-item-body\">\n\t\t\t<$transclude tiddler=<<listItem>>/>\n\t\t</$reveal>\n\t</$vars>\n</div>\n\\end\n\n<div class=\"tc-manager-wrapper\">\n\t<div class=\"tc-manager-controls\">\n\t\t<div class=\"tc-manager-control\">\n\t\t\t<<lingo Controls/Show/Prompt>> <$select tiddler=\"$:/config/Manager/Show\" default=\"tiddlers\">\n\t\t\t\t<option value=\"tiddlers\"><<lingo Controls/Show/Option/Tiddlers>></option>\n\t\t\t\t<option value=\"tags\"><<lingo Controls/Show/Option/Tags>></option>\n\t\t\t</$select>\n\t\t</div>\n\t\t<div class=\"tc-manager-control\">\n\t\t\t<<lingo Controls/Search/Prompt>> <$edit-text tiddler=\"$:/config/Manager/Filter\" tag=\"input\" default=\"\" placeholder={{$:/language/Manager/Controls/Search/Placeholder}}/>\n\t\t</div>\n\t\t<div class=\"tc-manager-control\">\n\t\t\t<<lingo Controls/FilterByTag/Prompt>> <$select tiddler=\"$:/config/Manager/Tag\" default=\"\">\n\t\t\t\t<option value=\"\"><<lingo Controls/FilterByTag/None>></option>\n\t\t\t\t<$list filter=\"[!is{$:/config/Manager/System}tags[]!is[system]sort[title]]\" variable=\"tag\">\n\t\t\t\t\t<option value=<<tag>>><$text text=<<tag>>/></option>\n\t\t\t\t</$list>\n\t\t\t</$select>\n\t\t</div>\n\t\t<div class=\"tc-manager-control\">\n\t\t\t<<lingo Controls/Sort/Prompt>> <$select tiddler=\"$:/config/Manager/Sort\" default=\"title\">\n\t\t\t\t<optgroup label=\"Common\">\n\t\t\t\t\t<$list filter=\"title modified modifier created creator created\" variable=\"field\">\n\t\t\t\t\t\t<option value=<<field>>><$text text=<<field>>/></option>\n\t\t\t\t\t</$list>\n\t\t\t\t</optgroup>\n\t\t\t\t<optgroup label=\"All\">\n\t\t\t\t\t<$list filter=\"[all{$:/config/Manager/Show}!is{$:/config/Manager/System}fields[]sort[title]] -title -modified -modifier -created -creator -created\" variable=\"field\">\n\t\t\t\t\t\t<option value=<<field>>><$text text=<<field>>/></option>\n\t\t\t\t\t</$list>\n\t\t\t\t</optgroup>\n\t\t\t</$select>\n\t\t\t<$checkbox tiddler=\"$:/config/Manager/Order\" field=\"text\" checked=\"reverse\" unchecked=\"forward\" default=\"forward\">\n\t\t\t\t<<lingo Controls/Order/Prompt>>\n\t\t\t</$checkbox>\n\t\t</div>\n\t\t<div class=\"tc-manager-control\">\n\t\t\t<$checkbox tiddler=\"$:/config/Manager/System\" field=\"text\" checked=\"\" unchecked=\"system\" default=\"system\">\n\t\t\t\t{{$:/language/SystemTiddlers/Include/Prompt}}\n\t\t\t</$checkbox>\n\t\t</div>\n\t</div>\n\t<div class=\"tc-manager-list\">\n\t\t<$list filter=\"[all{$:/config/Manager/Show}!is{$:/config/Manager/System}search{$:/config/Manager/Filter}tag:strict{$:/config/Manager/Tag}sort{$:/config/Manager/Sort}order{$:/config/Manager/Order}]\">\n\t\t\t<$vars transclusion=<<currentTiddler>>>\n\t\t\t\t<div style=\"tc-manager-list-item\">\n\t\t\t\t\t<$button popup=<<qualify \"$:/state/manager/popup\">> class=\"tc-btn-invisible tc-manager-list-item-heading\" selectedClass=\"tc-manager-list-item-heading-selected\">\n\t\t\t\t\t\t<$text text=<<currentTiddler>>/>\n\t\t\t\t\t</$button>\n\t\t\t\t\t<$reveal state=<<qualify \"$:/state/manager/popup\">> type=\"nomatch\" text=\"\" default=\"\" tag=\"div\" class=\"tc-manager-list-item-content tc-popup-handle\">\n\t\t\t\t\t\t<div class=\"tc-manager-list-item-content-tiddler\">\n\t\t\t\t\t\t\t<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/Manager/ItemMain]!has[draft.of]]\" variable=\"listItem\">\n\t\t\t\t\t\t\t\t<<list-item-content-item>>\n\t\t\t\t\t\t\t</$list>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<div class=\"tc-manager-list-item-content-sidebar\">\n\t\t\t\t\t\t\t<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/Manager/ItemSidebar]!has[draft.of]]\" variable=\"listItem\">\n\t\t\t\t\t\t\t\t<<list-item-content-item>>\n\t\t\t\t\t\t\t</$list>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</$reveal>\n\t\t\t\t</div>\n\t\t\t</$vars>\n\t\t</$list>\n\t</div>\n</div>\n"
        },
        "$:/core/ui/MissingTemplate": {
            "title": "$:/core/ui/MissingTemplate",
            "text": "<div class=\"tc-tiddler-missing\">\n<$button popup=<<qualify \"$:/state/popup/missing\">> class=\"tc-btn-invisible tc-missing-tiddler-label\">\n<$view field=\"title\" format=\"text\" />\n</$button>\n<$reveal state=<<qualify \"$:/state/popup/missing\">> type=\"popup\" position=\"below\" animate=\"yes\">\n<div class=\"tc-drop-down\">\n<$transclude tiddler=\"$:/core/ui/ListItemTemplate\"/>\n<hr>\n<$list filter=\"[all[current]backlinks[]sort[title]]\" template=\"$:/core/ui/ListItemTemplate\"/>\n</div>\n</$reveal>\n</div>\n"
        },
        "$:/core/ui/MoreSideBar/All": {
            "title": "$:/core/ui/MoreSideBar/All",
            "tags": "$:/tags/MoreSideBar",
            "caption": "{{$:/language/SideBar/All/Caption}}",
            "text": "<$list filter={{$:/core/Filters/AllTiddlers!!filter}} template=\"$:/core/ui/ListItemTemplate\"/>\n"
        },
        "$:/core/ui/MoreSideBar/Drafts": {
            "title": "$:/core/ui/MoreSideBar/Drafts",
            "tags": "$:/tags/MoreSideBar",
            "caption": "{{$:/language/SideBar/Drafts/Caption}}",
            "text": "<$list filter={{$:/core/Filters/Drafts!!filter}} template=\"$:/core/ui/ListItemTemplate\"/>\n"
        },
        "$:/core/ui/MoreSideBar/Explorer": {
            "title": "$:/core/ui/MoreSideBar/Explorer",
            "tags": "$:/tags/MoreSideBar",
            "caption": "{{$:/language/SideBar/Explorer/Caption}}",
            "text": "<<tree \"$:/\">>\n"
        },
        "$:/core/ui/MoreSideBar/Missing": {
            "title": "$:/core/ui/MoreSideBar/Missing",
            "tags": "$:/tags/MoreSideBar",
            "caption": "{{$:/language/SideBar/Missing/Caption}}",
            "text": "<$list filter={{$:/core/Filters/Missing!!filter}} template=\"$:/core/ui/MissingTemplate\"/>\n"
        },
        "$:/core/ui/MoreSideBar/Orphans": {
            "title": "$:/core/ui/MoreSideBar/Orphans",
            "tags": "$:/tags/MoreSideBar",
            "caption": "{{$:/language/SideBar/Orphans/Caption}}",
            "text": "<$list filter={{$:/core/Filters/Orphans!!filter}} template=\"$:/core/ui/ListItemTemplate\"/>\n"
        },
        "$:/core/ui/MoreSideBar/Plugins": {
            "title": "$:/core/ui/MoreSideBar/Plugins",
            "tags": "$:/tags/MoreSideBar",
            "caption": "{{$:/language/ControlPanel/Plugins/Caption}}",
            "text": "\n{{$:/language/ControlPanel/Plugins/Installed/Hint}}\n\n<$macrocall $name=\"tabs\" tabsList=\"[all[shadows+tiddlers]tag[$:/tags/MoreSideBar/Plugins]!has[draft.of]]\" default=\"$:/core/ui/MoreSideBar/Plugins/Plugins\" explicitState=\"$:/state/tab-1163638994\"/>\n"
        },
        "$:/core/ui/MoreSideBar/Recent": {
            "title": "$:/core/ui/MoreSideBar/Recent",
            "tags": "$:/tags/MoreSideBar",
            "caption": "{{$:/language/SideBar/Recent/Caption}}",
            "text": "<$macrocall $name=\"timeline\" format={{$:/language/RecentChanges/DateFormat}}/>\n"
        },
        "$:/core/ui/MoreSideBar/Shadows": {
            "title": "$:/core/ui/MoreSideBar/Shadows",
            "tags": "$:/tags/MoreSideBar",
            "caption": "{{$:/language/SideBar/Shadows/Caption}}",
            "text": "<$list filter={{$:/core/Filters/ShadowTiddlers!!filter}} template=\"$:/core/ui/ListItemTemplate\"/>\n"
        },
        "$:/core/ui/MoreSideBar/System": {
            "title": "$:/core/ui/MoreSideBar/System",
            "tags": "$:/tags/MoreSideBar",
            "caption": "{{$:/language/SideBar/System/Caption}}",
            "text": "<$list filter={{$:/core/Filters/SystemTiddlers!!filter}} template=\"$:/core/ui/ListItemTemplate\"/>\n"
        },
        "$:/core/ui/MoreSideBar/Tags": {
            "title": "$:/core/ui/MoreSideBar/Tags",
            "tags": "$:/tags/MoreSideBar",
            "caption": "{{$:/language/SideBar/Tags/Caption}}",
            "text": "<$set name=\"tv-config-toolbar-icons\" value=\"yes\">\n\n<$set name=\"tv-config-toolbar-text\" value=\"yes\">\n\n<$set name=\"tv-config-toolbar-class\" value=\"\">\n\n{{$:/core/ui/Buttons/tag-manager}}\n\n</$set>\n\n</$set>\n\n</$set>\n\n<$list filter={{$:/core/Filters/AllTags!!filter}}>\n\n<$transclude tiddler=\"$:/core/ui/TagTemplate\"/>\n\n</$list>\n\n<hr class=\"tc-untagged-separator\">\n\n{{$:/core/ui/UntaggedTemplate}}\n"
        },
        "$:/core/ui/MoreSideBar/Types": {
            "title": "$:/core/ui/MoreSideBar/Types",
            "tags": "$:/tags/MoreSideBar",
            "caption": "{{$:/language/SideBar/Types/Caption}}",
            "text": "<$list filter={{$:/core/Filters/TypedTiddlers!!filter}}>\n<div class=\"tc-menu-list-item\">\n<$view field=\"type\"/>\n<$list filter=\"[type{!!type}!is[system]sort[title]]\">\n<div class=\"tc-menu-list-subitem\">\n<$link to={{!!title}}><$view field=\"title\"/></$link>\n</div>\n</$list>\n</div>\n</$list>\n"
        },
        "$:/core/ui/MoreSideBar/Plugins/Languages": {
            "title": "$:/core/ui/MoreSideBar/Plugins/Languages",
            "tags": "$:/tags/MoreSideBar/Plugins",
            "caption": "{{$:/language/ControlPanel/Plugins/Languages/Caption}}",
            "text": "<$list filter=\"[!has[draft.of]plugin-type[language]sort[description]]\" template=\"$:/core/ui/PluginListItemTemplate\" emptyMessage={{$:/language/ControlPanel/Plugins/Empty/Hint}}/>\n"
        },
        "$:/core/ui/MoreSideBar/Plugins/Plugins": {
            "title": "$:/core/ui/MoreSideBar/Plugins/Plugins",
            "tags": "$:/tags/MoreSideBar/Plugins",
            "caption": "{{$:/language/ControlPanel/Plugins/Plugins/Caption}}",
            "text": "<$list filter=\"[!has[draft.of]plugin-type[plugin]sort[description]]\" template=\"$:/core/ui/PluginListItemTemplate\" emptyMessage={{$:/language/ControlPanel/Plugins/Empty/Hint}}>>/>\n"
        },
        "$:/core/ui/MoreSideBar/Plugins/Theme": {
            "title": "$:/core/ui/MoreSideBar/Plugins/Theme",
            "tags": "$:/tags/MoreSideBar/Plugins",
            "caption": "{{$:/language/ControlPanel/Plugins/Themes/Caption}}",
            "text": "<$list filter=\"[!has[draft.of]plugin-type[theme]sort[description]]\" template=\"$:/core/ui/PluginListItemTemplate\" emptyMessage={{$:/language/ControlPanel/Plugins/Empty/Hint}}/>\n"
        },
        "$:/core/ui/Buttons/advanced-search": {
            "title": "$:/core/ui/Buttons/advanced-search",
            "tags": "$:/tags/PageControls",
            "caption": "{{$:/core/images/advanced-search-button}} {{$:/language/Buttons/AdvancedSearch/Caption}}",
            "description": "{{$:/language/Buttons/AdvancedSearch/Hint}}",
            "text": "\\whitespace trim\n\\define advanced-search-button(class)\n<$button to=\"$:/AdvancedSearch\" tooltip={{$:/language/Buttons/AdvancedSearch/Hint}} aria-label={{$:/language/Buttons/AdvancedSearch/Caption}} class=\"\"\"$(tv-config-toolbar-class)$ $class$\"\"\">\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/advanced-search-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/AdvancedSearch/Caption}}/></span>\n</$list>\n</$button>\n\\end\n\n<$list filter=\"[list[$:/StoryList]] +[field:title[$:/AdvancedSearch]]\" emptyMessage=<<advanced-search-button>>>\n<<advanced-search-button \"tc-selected\">>\n</$list>\n"
        },
        "$:/core/ui/Buttons/close-all": {
            "title": "$:/core/ui/Buttons/close-all",
            "tags": "$:/tags/PageControls",
            "caption": "{{$:/core/images/close-all-button}} {{$:/language/Buttons/CloseAll/Caption}}",
            "description": "{{$:/language/Buttons/CloseAll/Hint}}",
            "text": "<$button message=\"tm-close-all-tiddlers\" tooltip={{$:/language/Buttons/CloseAll/Hint}} aria-label={{$:/language/Buttons/CloseAll/Caption}} class=<<tv-config-toolbar-class>>>\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/close-all-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/CloseAll/Caption}}/></span>\n</$list>\n</$button>"
        },
        "$:/core/ui/Buttons/control-panel": {
            "title": "$:/core/ui/Buttons/control-panel",
            "tags": "$:/tags/PageControls",
            "caption": "{{$:/core/images/options-button}} {{$:/language/Buttons/ControlPanel/Caption}}",
            "description": "{{$:/language/Buttons/ControlPanel/Hint}}",
            "text": "\\whitespace trim\n\\define control-panel-button(class)\n<$button to=\"$:/ControlPanel\" tooltip={{$:/language/Buttons/ControlPanel/Hint}} aria-label={{$:/language/Buttons/ControlPanel/Caption}} class=\"\"\"$(tv-config-toolbar-class)$ $class$\"\"\">\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/options-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/ControlPanel/Caption}}/></span>\n</$list>\n</$button>\n\\end\n\n<$list filter=\"[list[$:/StoryList]] +[field:title[$:/ControlPanel]]\" emptyMessage=<<control-panel-button>>>\n<<control-panel-button \"tc-selected\">>\n</$list>\n"
        },
        "$:/core/ui/Buttons/encryption": {
            "title": "$:/core/ui/Buttons/encryption",
            "tags": "$:/tags/PageControls",
            "caption": "{{$:/core/images/locked-padlock}} {{$:/language/Buttons/Encryption/Caption}}",
            "description": "{{$:/language/Buttons/Encryption/Hint}}",
            "text": "\\whitespace trim\n<$reveal type=\"match\" state=\"$:/isEncrypted\" text=\"yes\">\n<$button message=\"tm-clear-password\" tooltip={{$:/language/Buttons/Encryption/ClearPassword/Hint}} aria-label={{$:/language/Buttons/Encryption/ClearPassword/Caption}} class=<<tv-config-toolbar-class>>>\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/locked-padlock}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/Encryption/ClearPassword/Caption}}/></span>\n</$list>\n</$button>\n</$reveal>\n<$reveal type=\"nomatch\" state=\"$:/isEncrypted\" text=\"yes\">\n<$button message=\"tm-set-password\" tooltip={{$:/language/Buttons/Encryption/SetPassword/Hint}} aria-label={{$:/language/Buttons/Encryption/SetPassword/Caption}} class=<<tv-config-toolbar-class>>>\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/unlocked-padlock}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/Encryption/SetPassword/Caption}}/></span>\n</$list>\n</$button>\n</$reveal>\n"
        },
        "$:/core/ui/Buttons/export-page": {
            "title": "$:/core/ui/Buttons/export-page",
            "tags": "$:/tags/PageControls",
            "caption": "{{$:/core/images/export-button}} {{$:/language/Buttons/ExportPage/Caption}}",
            "description": "{{$:/language/Buttons/ExportPage/Hint}}",
            "text": "<$macrocall $name=\"exportButton\" exportFilter=\"[!is[system]sort[title]]\" lingoBase=\"$:/language/Buttons/ExportPage/\"/>"
        },
        "$:/core/ui/Buttons/fold-all": {
            "title": "$:/core/ui/Buttons/fold-all",
            "tags": "$:/tags/PageControls",
            "caption": "{{$:/core/images/fold-all-button}} {{$:/language/Buttons/FoldAll/Caption}}",
            "description": "{{$:/language/Buttons/FoldAll/Hint}}",
            "text": "<$button tooltip={{$:/language/Buttons/FoldAll/Hint}} aria-label={{$:/language/Buttons/FoldAll/Caption}} class=<<tv-config-toolbar-class>>>\n<$action-sendmessage $message=\"tm-fold-all-tiddlers\" $param=<<currentTiddler>> foldedStatePrefix=\"$:/state/folded/\"/>\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\" variable=\"listItem\">\n{{$:/core/images/fold-all-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/FoldAll/Caption}}/></span>\n</$list>\n</$button>"
        },
        "$:/core/ui/Buttons/full-screen": {
            "title": "$:/core/ui/Buttons/full-screen",
            "tags": "$:/tags/PageControls",
            "caption": "{{$:/core/images/full-screen-button}} {{$:/language/Buttons/FullScreen/Caption}}",
            "description": "{{$:/language/Buttons/FullScreen/Hint}}",
            "text": "<$button message=\"tm-full-screen\" tooltip={{$:/language/Buttons/FullScreen/Hint}} aria-label={{$:/language/Buttons/FullScreen/Caption}} class=<<tv-config-toolbar-class>>>\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/full-screen-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/FullScreen/Caption}}/></span>\n</$list>\n</$button>"
        },
        "$:/core/ui/Buttons/home": {
            "title": "$:/core/ui/Buttons/home",
            "tags": "$:/tags/PageControls",
            "caption": "{{$:/core/images/home-button}} {{$:/language/Buttons/Home/Caption}}",
            "description": "{{$:/language/Buttons/Home/Hint}}",
            "text": "<$button message=\"tm-home\" tooltip={{$:/language/Buttons/Home/Hint}} aria-label={{$:/language/Buttons/Home/Caption}} class=<<tv-config-toolbar-class>>>\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/home-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/Home/Caption}}/></span>\n</$list>\n</$button>"
        },
        "$:/core/ui/Buttons/import": {
            "title": "$:/core/ui/Buttons/import",
            "tags": "$:/tags/PageControls",
            "caption": "{{$:/core/images/import-button}} {{$:/language/Buttons/Import/Caption}}",
            "description": "{{$:/language/Buttons/Import/Hint}}",
            "text": "<div class=\"tc-file-input-wrapper\">\n<$button tooltip={{$:/language/Buttons/Import/Hint}} aria-label={{$:/language/Buttons/Import/Caption}} class=<<tv-config-toolbar-class>>>\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/import-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/Import/Caption}}/></span>\n</$list>\n</$button>\n<$browse tooltip={{$:/language/Buttons/Import/Hint}}/>\n</div>"
        },
        "$:/core/ui/Buttons/language": {
            "title": "$:/core/ui/Buttons/language",
            "tags": "$:/tags/PageControls",
            "caption": "{{$:/core/images/globe}} {{$:/language/Buttons/Language/Caption}}",
            "description": "{{$:/language/Buttons/Language/Hint}}",
            "text": "\\whitespace trim\n\\define flag-title()\n$(languagePluginTitle)$/icon\n\\end\n<span class=\"tc-popup-keep\">\n<$button popup=<<qualify \"$:/state/popup/language\">> tooltip={{$:/language/Buttons/Language/Hint}} aria-label={{$:/language/Buttons/Language/Caption}} class=<<tv-config-toolbar-class>> selectedClass=\"tc-selected\">\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n<span class=\"tc-image-button\">\n<$set name=\"languagePluginTitle\" value={{$:/language}}>\n<$image source=<<flag-title>>/>\n</$set>\n</span>\n</$list>\n<$text text=\" \"/>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/Language/Caption}}/></span>\n</$list>\n</$button>\n</span>\n<$reveal state=<<qualify \"$:/state/popup/language\">> type=\"popup\" position=\"below\" animate=\"yes\">\n<div class=\"tc-drop-down\">\n{{$:/snippets/languageswitcher}}\n</div>\n</$reveal>\n"
        },
        "$:/core/ui/Buttons/manager": {
            "title": "$:/core/ui/Buttons/manager",
            "tags": "$:/tags/PageControls",
            "caption": "{{$:/core/images/list}} {{$:/language/Buttons/Manager/Caption}}",
            "description": "{{$:/language/Buttons/Manager/Hint}}",
            "text": "\\whitespace trim\n\\define manager-button(class)\n<$button to=\"$:/Manager\" tooltip={{$:/language/Buttons/Manager/Hint}} aria-label={{$:/language/Buttons/Manager/Caption}} class=\"\"\"$(tv-config-toolbar-class)$ $class$\"\"\">\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/list}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/Manager/Caption}}/></span>\n</$list>\n</$button>\n\\end\n\n<$list filter=\"[list[$:/StoryList]] +[field:title[$:/Manager]]\" emptyMessage=<<manager-button>>>\n<<manager-button \"tc-selected\">>\n</$list>\n"
        },
        "$:/core/ui/Buttons/more-page-actions": {
            "title": "$:/core/ui/Buttons/more-page-actions",
            "tags": "$:/tags/PageControls",
            "caption": "{{$:/core/images/down-arrow}} {{$:/language/Buttons/More/Caption}}",
            "description": "{{$:/language/Buttons/More/Hint}}",
            "text": "\\define config-title()\n$:/config/PageControlButtons/Visibility/$(listItem)$\n\\end\n<$button popup=<<qualify \"$:/state/popup/more\">> tooltip={{$:/language/Buttons/More/Hint}} aria-label={{$:/language/Buttons/More/Caption}} class=<<tv-config-toolbar-class>> selectedClass=\"tc-selected\">\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/down-arrow}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/More/Caption}}/></span>\n</$list>\n</$button><$reveal state=<<qualify \"$:/state/popup/more\">> type=\"popup\" position=\"below\" animate=\"yes\">\n\n<div class=\"tc-drop-down\">\n\n<$set name=\"tv-config-toolbar-icons\" value=\"yes\">\n\n<$set name=\"tv-config-toolbar-text\" value=\"yes\">\n\n<$set name=\"tv-config-toolbar-class\" value=\"tc-btn-invisible\">\n\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/PageControls]!has[draft.of]] -[[$:/core/ui/Buttons/more-page-actions]]\" variable=\"listItem\">\n\n<$reveal type=\"match\" state=<<config-title>> text=\"hide\">\n\n<$set name=\"tv-config-toolbar-class\" filter=\"[<tv-config-toolbar-class>] [<listItem>encodeuricomponent[]addprefix[tc-btn-]]\">\n\n<$transclude tiddler=<<listItem>> mode=\"inline\"/>\n\n</$set>\n\n</$reveal>\n\n</$list>\n\n</$set>\n\n</$set>\n\n</$set>\n\n</div>\n\n</$reveal>"
        },
        "$:/core/ui/Buttons/new-image": {
            "title": "$:/core/ui/Buttons/new-image",
            "tags": "$:/tags/PageControls",
            "caption": "{{$:/core/images/new-image-button}} {{$:/language/Buttons/NewImage/Caption}}",
            "description": "{{$:/language/Buttons/NewImage/Hint}}",
            "text": "\\whitespace trim\n<$button tooltip={{$:/language/Buttons/NewImage/Hint}} aria-label={{$:/language/Buttons/NewImage/Caption}} class=<<tv-config-toolbar-class>> actions={{$:/core/ui/Actions/new-image}}>\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/new-image-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/NewImage/Caption}}/></span>\n</$list>\n</$button>\n"
        },
        "$:/core/ui/Buttons/new-journal": {
            "title": "$:/core/ui/Buttons/new-journal",
            "tags": "$:/tags/PageControls",
            "caption": "{{$:/core/images/new-journal-button}} {{$:/language/Buttons/NewJournal/Caption}}",
            "description": "{{$:/language/Buttons/NewJournal/Hint}}",
            "text": "\\whitespace trim\n\\define journalButton()\n<$button tooltip={{$:/language/Buttons/NewJournal/Hint}} aria-label={{$:/language/Buttons/NewJournal/Caption}} class=<<tv-config-toolbar-class>> actions={{$:/core/ui/Actions/new-journal}}>\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/new-journal-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/NewJournal/Caption}}/></span>\n</$list>\n</$button>\n\\end\n<<journalButton>>\n"
        },
        "$:/core/ui/Buttons/new-tiddler": {
            "title": "$:/core/ui/Buttons/new-tiddler",
            "tags": "$:/tags/PageControls",
            "caption": "{{$:/core/images/new-button}} {{$:/language/Buttons/NewTiddler/Caption}}",
            "description": "{{$:/language/Buttons/NewTiddler/Hint}}",
            "text": "\\whitespace trim\n<$button actions={{$:/core/ui/Actions/new-tiddler}} tooltip={{$:/language/Buttons/NewTiddler/Hint}} aria-label={{$:/language/Buttons/NewTiddler/Caption}} class=<<tv-config-toolbar-class>>>\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/new-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/NewTiddler/Caption}}/></span>\n</$list>\n</$button>\n"
        },
        "$:/core/ui/Buttons/palette": {
            "title": "$:/core/ui/Buttons/palette",
            "tags": "$:/tags/PageControls",
            "caption": "{{$:/core/images/palette}} {{$:/language/Buttons/Palette/Caption}}",
            "description": "{{$:/language/Buttons/Palette/Hint}}",
            "text": "\\whitespace trim\n<span class=\"tc-popup-keep\">\n<$button popup=<<qualify \"$:/state/popup/palette\">> tooltip={{$:/language/Buttons/Palette/Hint}} aria-label={{$:/language/Buttons/Palette/Caption}} class=<<tv-config-toolbar-class>> selectedClass=\"tc-selected\">\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/palette}}\n</$list>\n<$text text=\" \"/>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/Palette/Caption}}/></span>\n</$list>\n</$button>\n</span>\n<$reveal state=<<qualify \"$:/state/popup/palette\">> type=\"popup\" position=\"below\" animate=\"yes\">\n<div class=\"tc-drop-down\" style=\"font-size:0.7em;\">\n{{$:/snippets/paletteswitcher}}\n</div>\n</$reveal>\n"
        },
        "$:/core/ui/Buttons/print": {
            "title": "$:/core/ui/Buttons/print",
            "tags": "$:/tags/PageControls",
            "caption": "{{$:/core/images/print-button}} {{$:/language/Buttons/Print/Caption}}",
            "description": "{{$:/language/Buttons/Print/Hint}}",
            "text": "<$button message=\"tm-print\" tooltip={{$:/language/Buttons/Print/Hint}} aria-label={{$:/language/Buttons/Print/Caption}} class=<<tv-config-toolbar-class>>>\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/print-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/Print/Caption}}/></span>\n</$list>\n</$button>"
        },
        "$:/core/ui/Buttons/refresh": {
            "title": "$:/core/ui/Buttons/refresh",
            "tags": "$:/tags/PageControls",
            "caption": "{{$:/core/images/refresh-button}} {{$:/language/Buttons/Refresh/Caption}}",
            "description": "{{$:/language/Buttons/Refresh/Hint}}",
            "text": "<$button message=\"tm-browser-refresh\" tooltip={{$:/language/Buttons/Refresh/Hint}} aria-label={{$:/language/Buttons/Refresh/Caption}} class=<<tv-config-toolbar-class>>>\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/refresh-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/Refresh/Caption}}/></span>\n</$list>\n</$button>"
        },
        "$:/core/ui/Buttons/save-wiki": {
            "title": "$:/core/ui/Buttons/save-wiki",
            "tags": "$:/tags/PageControls",
            "caption": "{{$:/core/images/save-button}} {{$:/language/Buttons/SaveWiki/Caption}}",
            "description": "{{$:/language/Buttons/SaveWiki/Hint}}",
            "text": "<$button tooltip={{$:/language/Buttons/SaveWiki/Hint}} aria-label={{$:/language/Buttons/SaveWiki/Caption}} class=<<tv-config-toolbar-class>>>\n<$wikify name=\"site-title\" text={{$:/config/SaveWikiButton/Filename}}>\n<$action-sendmessage $message=\"tm-save-wiki\" $param={{$:/config/SaveWikiButton/Template}} filename=<<site-title>>/>\n</$wikify>\n<span class=\"tc-dirty-indicator\">\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/save-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/SaveWiki/Caption}}/></span>\n</$list>\n</span>\n</$button>"
        },
        "$:/core/ui/Buttons/storyview": {
            "title": "$:/core/ui/Buttons/storyview",
            "tags": "$:/tags/PageControls",
            "caption": "{{$:/core/images/storyview-classic}} {{$:/language/Buttons/StoryView/Caption}}",
            "description": "{{$:/language/Buttons/StoryView/Hint}}",
            "text": "\\whitespace trim\n\\define icon()\n$:/core/images/storyview-$(storyview)$\n\\end\n<span class=\"tc-popup-keep\">\n<$button popup=<<qualify \"$:/state/popup/storyview\">> tooltip={{$:/language/Buttons/StoryView/Hint}} aria-label={{$:/language/Buttons/StoryView/Caption}} class=<<tv-config-toolbar-class>> selectedClass=\"tc-selected\">\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n<$set name=\"storyview\" value={{$:/view}}>\n<$transclude tiddler=<<icon>>/>\n</$set>\n</$list>\n<$text text=\" \"/>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/StoryView/Caption}}/></span>\n</$list>\n</$button>\n</span>\n<$reveal state=<<qualify \"$:/state/popup/storyview\">> type=\"popup\" position=\"below\" animate=\"yes\">\n<div class=\"tc-drop-down\">\n{{$:/snippets/viewswitcher}}\n</div>\n</$reveal>\n"
        },
        "$:/core/ui/Buttons/tag-manager": {
            "title": "$:/core/ui/Buttons/tag-manager",
            "tags": "$:/tags/PageControls",
            "caption": "{{$:/core/images/tag-button}} {{$:/language/Buttons/TagManager/Caption}}",
            "description": "{{$:/language/Buttons/TagManager/Hint}}",
            "text": "\\whitespace trim\n\\define control-panel-button(class)\n<$button to=\"$:/TagManager\" tooltip={{$:/language/Buttons/TagManager/Hint}} aria-label={{$:/language/Buttons/TagManager/Caption}} class=\"\"\"$(tv-config-toolbar-class)$ $class$\"\"\">\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/tag-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/TagManager/Caption}}/></span>\n</$list>\n</$button>\n\\end\n\n<$list filter=\"[list[$:/StoryList]] +[field:title[$:/TagManager]]\" emptyMessage=<<control-panel-button>>>\n<<control-panel-button \"tc-selected\">>\n</$list>\n"
        },
        "$:/core/ui/Buttons/theme": {
            "title": "$:/core/ui/Buttons/theme",
            "tags": "$:/tags/PageControls",
            "caption": "{{$:/core/images/theme-button}} {{$:/language/Buttons/Theme/Caption}}",
            "description": "{{$:/language/Buttons/Theme/Hint}}",
            "text": "\\whitespace trim\n<span class=\"tc-popup-keep\">\n<$button popup=<<qualify \"$:/state/popup/theme\">> tooltip={{$:/language/Buttons/Theme/Hint}} aria-label={{$:/language/Buttons/Theme/Caption}} class=<<tv-config-toolbar-class>> selectedClass=\"tc-selected\">\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/theme-button}}\n</$list>\n<$text text=\" \"/>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/Theme/Caption}}/></span>\n</$list>\n</$button>\n</span>\n<$reveal state=<<qualify \"$:/state/popup/theme\">> type=\"popup\" position=\"below\" animate=\"yes\">\n<div class=\"tc-drop-down\">\n<$linkcatcher to=\"$:/theme\">\n{{$:/snippets/themeswitcher}}\n</$linkcatcher>\n</div>\n</$reveal>\n"
        },
        "$:/core/ui/Buttons/timestamp": {
            "title": "$:/core/ui/Buttons/timestamp",
            "tags": "$:/tags/PageControls",
            "caption": "{{$:/core/images/timestamp-on}} {{$:/language/Buttons/Timestamp/Caption}}",
            "description": "{{$:/language/Buttons/Timestamp/Hint}}",
            "text": "\\whitespace trim\n<$reveal type=\"nomatch\" state=\"$:/config/TimestampDisable\" text=\"yes\">\n<$button tooltip={{$:/language/Buttons/Timestamp/On/Hint}} aria-label={{$:/language/Buttons/Timestamp/On/Caption}} class=<<tv-config-toolbar-class>>>\n<$action-setfield $tiddler=\"$:/config/TimestampDisable\" $value=\"yes\"/>\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/timestamp-on}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/Timestamp/On/Caption}}/></span>\n</$list>\n</$button>\n</$reveal>\n<$reveal type=\"match\" state=\"$:/config/TimestampDisable\" text=\"yes\">\n<$button tooltip={{$:/language/Buttons/Timestamp/Off/Hint}} aria-label={{$:/language/Buttons/Timestamp/Off/Caption}} class=<<tv-config-toolbar-class>>>\n<$action-setfield $tiddler=\"$:/config/TimestampDisable\" $value=\"no\"/>\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/timestamp-off}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/Timestamp/Off/Caption}}/></span>\n</$list>\n</$button>\n</$reveal>\n"
        },
        "$:/core/ui/Buttons/unfold-all": {
            "title": "$:/core/ui/Buttons/unfold-all",
            "tags": "$:/tags/PageControls",
            "caption": "{{$:/core/images/unfold-all-button}} {{$:/language/Buttons/UnfoldAll/Caption}}",
            "description": "{{$:/language/Buttons/UnfoldAll/Hint}}",
            "text": "<$button tooltip={{$:/language/Buttons/UnfoldAll/Hint}} aria-label={{$:/language/Buttons/UnfoldAll/Caption}} class=<<tv-config-toolbar-class>>>\n<$action-sendmessage $message=\"tm-unfold-all-tiddlers\" $param=<<currentTiddler>> foldedStatePrefix=\"$:/state/folded/\"/>\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\" variable=\"listItem\">\n{{$:/core/images/unfold-all-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/UnfoldAll/Caption}}/></span>\n</$list>\n</$button>"
        },
        "$:/core/ui/PageTemplate/pagecontrols": {
            "title": "$:/core/ui/PageTemplate/pagecontrols",
            "text": "\\whitespace trim\n\\define config-title()\n$:/config/PageControlButtons/Visibility/$(listItem)$\n\\end\n<div class=\"tc-page-controls\">\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/PageControls]!has[draft.of]]\" variable=\"listItem\">\n<$set name=\"hidden\" value=<<config-title>>>\n<$list filter=\"[<hidden>!text[hide]]\" storyview=\"pop\" variable=\"ignore\">\n<$set name=\"tv-config-toolbar-class\" filter=\"[<tv-config-toolbar-class>] [<listItem>encodeuricomponent[]addprefix[tc-btn-]]\">\n<$transclude tiddler=<<listItem>> mode=\"inline\"/>\n</$set>\n</$list>\n</$set>\n</$list>\n</div>\n"
        },
        "$:/core/ui/PageStylesheet": {
            "title": "$:/core/ui/PageStylesheet",
            "text": "\\import [[$:/core/ui/PageMacros]] [all[shadows+tiddlers]tag[$:/tags/Macro]!has[draft.of]]\n\n<$set name=\"currentTiddler\" value={{$:/language}}>\n\n<$set name=\"languageTitle\" value={{!!name}}>\n\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/Stylesheet]!has[draft.of]]\">\n<$transclude mode=\"block\"/>\n</$list>\n\n</$set>\n\n</$set>\n"
        },
        "$:/core/ui/PageTemplate/alerts": {
            "title": "$:/core/ui/PageTemplate/alerts",
            "tags": "$:/tags/PageTemplate",
            "text": "<div class=\"tc-alerts\">\n\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/Alert]!has[draft.of]]\" template=\"$:/core/ui/AlertTemplate\" storyview=\"pop\"/>\n\n</div>\n"
        },
        "$:/core/ui/PageTemplate/drafts": {
            "title": "$:/core/ui/PageTemplate/drafts",
            "tags": "$:/tags/PageTemplate",
            "text": "\\whitespace trim\n<$reveal state=\"$:/status/IsReadOnly\" type=\"nomatch\" text=\"yes\" tag=\"div\" class=\"tc-drafts-list\">\n<$list filter=\"[has[draft.of]!sort[modified]] -[list[$:/StoryList]]\">\n<$link>\n{{$:/core/images/edit-button}} <$text text=<<currentTiddler>>/>\n</$link>\n</$list>\n</$reveal>\n"
        },
        "$:/core/ui/PageTemplate/pluginreloadwarning": {
            "title": "$:/core/ui/PageTemplate/pluginreloadwarning",
            "tags": "$:/tags/PageTemplate",
            "text": "\\define lingo-base() $:/language/\n\n<$list filter=\"[{$:/status/RequireReloadDueToPluginChange}match[yes]]\">\n\n<$reveal type=\"nomatch\" state=\"$:/temp/HidePluginWarning\" text=\"yes\">\n\n<div class=\"tc-plugin-reload-warning\">\n\n<$set name=\"tv-config-toolbar-class\" value=\"\">\n\n<<lingo PluginReloadWarning>> <$button set=\"$:/temp/HidePluginWarning\" setTo=\"yes\" class=\"tc-btn-invisible\">{{$:/core/images/close-button}}</$button>\n\n</$set>\n\n</div>\n\n</$reveal>\n\n</$list>\n"
        },
        "$:/core/ui/PageTemplate/sidebar": {
            "title": "$:/core/ui/PageTemplate/sidebar",
            "tags": "$:/tags/PageTemplate",
            "text": "\\whitespace trim\n\\define config-title()\n$:/config/SideBarSegments/Visibility/$(listItem)$\n\\end\n\n<$scrollable fallthrough=\"no\" class=\"tc-sidebar-scrollable\">\n\n<div class=\"tc-sidebar-header\">\n\n<$reveal state=\"$:/state/sidebar\" type=\"match\" text=\"yes\" default=\"yes\" retain=\"yes\" animate=\"yes\">\n\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/SideBarSegment]!has[draft.of]]\" variable=\"listItem\">\n\n<$reveal type=\"nomatch\" state=<<config-title>> text=\"hide\"  tag=\"div\">\n\n<$transclude tiddler=<<listItem>> mode=\"block\"/>\n\n</$reveal>\n\n</$list>\n\n</$reveal>\n\n</div>\n\n</$scrollable>\n"
        },
        "$:/core/ui/PageTemplate/story": {
            "title": "$:/core/ui/PageTemplate/story",
            "tags": "$:/tags/PageTemplate",
            "text": "\\whitespace trim\n<section class=\"tc-story-river\">\n\n<section class=\"story-backdrop\">\n\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/AboveStory]!has[draft.of]]\">\n\n<$transclude/>\n\n</$list>\n\n</section>\n\n<$list filter=\"[list[$:/StoryList]]\" history=\"$:/HistoryList\" template={{$:/config/ui/ViewTemplate}} editTemplate={{$:/config/ui/EditTemplate}} storyview={{$:/view}} emptyMessage={{$:/config/EmptyStoryMessage}}/>\n\n<section class=\"story-frontdrop\">\n\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/BelowStory]!has[draft.of]]\">\n\n<$transclude/>\n\n</$list>\n\n</section>\n\n</section>\n"
        },
        "$:/core/ui/PageTemplate/topleftbar": {
            "title": "$:/core/ui/PageTemplate/topleftbar",
            "tags": "$:/tags/PageTemplate",
            "text": "<span class=\"tc-topbar tc-topbar-left\">\n\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/TopLeftBar]!has[draft.of]]\" variable=\"listItem\" storyview=\"pop\">\n\n<$transclude tiddler=<<listItem>> mode=\"inline\"/>\n\n</$list>\n\n</span>\n"
        },
        "$:/core/ui/PageTemplate/toprightbar": {
            "title": "$:/core/ui/PageTemplate/toprightbar",
            "tags": "$:/tags/PageTemplate",
            "text": "<span class=\"tc-topbar tc-topbar-right\">\n\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/TopRightBar]!has[draft.of]]\" variable=\"listItem\" storyview=\"pop\">\n\n<$transclude tiddler=<<listItem>> mode=\"inline\"/>\n\n</$list>\n\n</span>\n"
        },
        "$:/core/ui/PageTemplate": {
            "title": "$:/core/ui/PageTemplate",
            "name": "{{$:/language/PageTemplate/Name}}",
            "description": "{{$:/language/PageTemplate/Description}}",
            "text": "\\whitespace trim\n\\define containerClasses()\ntc-page-container tc-page-view-$(storyviewTitle)$ tc-language-$(languageTitle)$\n\\end\n\\import [[$:/core/ui/PageMacros]] [all[shadows+tiddlers]tag[$:/tags/Macro]!has[draft.of]]\n\n<$vars\n\ttv-config-toolbar-icons={{$:/config/Toolbar/Icons}}\n\ttv-config-toolbar-text={{$:/config/Toolbar/Text}}\n\ttv-config-toolbar-class={{$:/config/Toolbar/ButtonClass}}\n\ttv-enable-drag-and-drop={{$:/config/DragAndDrop/Enable}}\n\ttv-show-missing-links={{$:/config/MissingLinks}}\n\tstoryviewTitle={{$:/view}}\n\tlanguageTitle={{{ [{$:/language}get[name]] }}}>\n\n<div class=<<containerClasses>>>\n\n<$navigator story=\"$:/StoryList\" history=\"$:/HistoryList\" openLinkFromInsideRiver={{$:/config/Navigation/openLinkFromInsideRiver}} openLinkFromOutsideRiver={{$:/config/Navigation/openLinkFromOutsideRiver}} relinkOnRename={{$:/config/RelinkOnRename}}>\n\n<$dropzone enable=<<tv-enable-drag-and-drop>>>\n\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/PageTemplate]!has[draft.of]]\" variable=\"listItem\">\n\n<$transclude tiddler=<<listItem>>/>\n\n</$list>\n\n</$dropzone>\n\n</$navigator>\n\n</div>\n\n</$vars>\n"
        },
        "$:/PaletteManager": {
            "title": "$:/PaletteManager",
            "text": "\\define lingo-base() $:/language/ControlPanel/Palette/Editor/\n\\define describePaletteColour(colour)\n<$transclude tiddler=\"$:/language/Docs/PaletteColours/$colour$\"><$text text=\"$colour$\"/></$transclude>\n\\end\n\\define edit-colour-placeholder()\n edit $(colourName)$\n\\end\n\\define colour-tooltip(showhide) $showhide$ editor for $(newColourName)$ \n\\define resolve-colour(macrocall)\n\\import $:/core/macros/utils\n\\whitespace trim\n<$wikify name=\"name\" text=\"\"\"$macrocall$\"\"\">\n<<name>>\n</$wikify>\n\\end\n\\define delete-colour-index-actions() <$action-setfield $index=<<colourName>>/>\n\\define palette-manager-colour-row-segment()\n\\whitespace trim\n<$edit-text index=<<colourName>> tag=\"input\" placeholder=<<edit-colour-placeholder>> default=\"\"/>\n<br>\n<$edit-text index=<<colourName>> type=\"color\" tag=\"input\" class=\"tc-palette-manager-colour-input\"/>\n<$list filter=\"[<currentTiddler>getindex<colourName>removeprefix[<<]removesuffix[>>]] [<currentTiddler>getindex<colourName>removeprefix[<$]removesuffix[/>]]\" variable=\"ignore\">\n<$set name=\"state\" value={{{ [[$:/state/palettemanager/]addsuffix<currentTiddler>addsuffix[/]addsuffix<colourName>] }}}>\n<$wikify name=\"newColourName\" text=\"\"\"<$macrocall $name=\"resolve-colour\" macrocall={{{ [<currentTiddler>getindex<colourName>] }}}/>\"\"\">\n<$reveal state=<<state>> type=\"nomatch\" text=\"show\">\n<$button tooltip=<<colour-tooltip show>> aria-label=<<colour-tooltip show>> class=\"tc-btn-invisible\" set=<<state>> setTo=\"show\">{{$:/core/images/down-arrow}}<$text text=<<newColourName>> class=\"tc-small-gap-left\"/></$button><br>\n</$reveal>\n<$reveal state=<<state>> type=\"match\" text=\"show\">\n<$button tooltip=<<colour-tooltip hide>> aria-label=<<colour-tooltip show>> class=\"tc-btn-invisible\" actions=\"\"\"<$action-deletetiddler $tiddler=<<state>>/>\"\"\">{{$:/core/images/up-arrow}}<$text text=<<newColourName>> class=\"tc-small-gap-left\"/></$button><br>\n</$reveal>\n<$reveal state=<<state>> type=\"match\" text=\"show\">\n<$set name=\"colourName\" value=<<newColourName>>>\n<br>\n<<palette-manager-colour-row-segment>>\n<br><br>\n</$set>\n</$reveal>\n</$wikify>\n</$set>\n</$list>\n\\end\n\\define palette-manager-colour-row()\n\\whitespace trim\n<tr>\n<td>\n<span style=\"float:right;\">\n<$button tooltip={{$:/language/ControlPanel/Palette/Editor/Delete/Hint}} aria-label=<<lingo Delete/Hint>> class=\"tc-btn-invisible\" actions=<<delete-colour-index-actions>>>\n{{$:/core/images/delete-button}}</$button>\n</span>\n''<$macrocall $name=\"describePaletteColour\" colour=<<colourName>>/>''<br/>\n<$macrocall $name=\"colourName\" $output=\"text/plain\"/>\n</td>\n<td>\n<<palette-manager-colour-row-segment>>\n</td>\n</tr>\n\\end\n\\define palette-manager-table()\n\\whitespace trim\n<table>\n<tbody>\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/Palette]indexes[]]\" variable=\"colourName\">\n<$list filter=\"[<currentTiddler>indexes[]removeprefix<colourName>suffix[]]\" variable=\"ignore\" emptyMessage=\"\"\"\n<$list filter=\"[{$:/state/palettemanager/showexternal}removeprefix[yes]suffix[]]\" variable=\"ignore\">\n<<palette-manager-colour-row>>\n</$list>\n\"\"\">\n<<palette-manager-colour-row>>\n</$list>\n</$list>\n</tbody>\n</table>\n\\end\n<$set name=\"currentTiddler\" value={{$:/palette}}>\n\n<<lingo Prompt>> <$link to={{$:/palette}}><$macrocall $name=\"currentTiddler\" $output=\"text/plain\"/></$link>\n\n<$list filter=\"[all[current]is[shadow]is[tiddler]]\" variable=\"listItem\">\n<<lingo Prompt/Modified>>\n<$button message=\"tm-delete-tiddler\" param={{$:/palette}}><<lingo Reset/Caption>></$button>\n</$list>\n\n<$list filter=\"[all[current]is[shadow]!is[tiddler]]\" variable=\"listItem\">\n<<lingo Clone/Prompt>>\n</$list>\n\n<$button message=\"tm-new-tiddler\" param={{$:/palette}}><<lingo Clone/Caption>></$button>\n\n<$checkbox tiddler=\"$:/state/palettemanager/showexternal\" field=\"text\" checked=\"yes\" unchecked=\"no\"><span class=\"tc-small-gap-left\"><<lingo Names/External/Show>></span></$checkbox>\n\n<<palette-manager-table>>\n"
        },
        "$:/core/ui/PluginInfo": {
            "title": "$:/core/ui/PluginInfo",
            "text": "\\define localised-info-tiddler-title()\n$(currentTiddler)$/$(languageTitle)$/$(currentTab)$\n\\end\n\\define info-tiddler-title()\n$(currentTiddler)$/$(currentTab)$\n\\end\n\\define default-tiddler-title()\n$:/core/ui/PluginInfo/Default/$(currentTab)$\n\\end\n<$transclude tiddler=<<localised-info-tiddler-title>> mode=\"block\">\n<$transclude tiddler=<<currentTiddler>> subtiddler=<<localised-info-tiddler-title>> mode=\"block\">\n<$transclude tiddler=<<currentTiddler>> subtiddler=<<info-tiddler-title>> mode=\"block\">\n<$transclude tiddler=<<default-tiddler-title>> mode=\"block\">\n{{$:/language/ControlPanel/Plugin/NoInfoFound/Hint}}\n</$transclude>\n</$transclude>\n</$transclude>\n</$transclude>\n"
        },
        "$:/core/ui/PluginInfo/Default/contents": {
            "title": "$:/core/ui/PluginInfo/Default/contents",
            "text": "\\define lingo-base() $:/language/TiddlerInfo/Advanced/PluginInfo/\n<<lingo Hint>>\n<ul>\n<$list filter=\"[all[current]plugintiddlers[]sort[title]]\" emptyMessage=<<lingo Empty/Hint>>>\n<li>\n<$link />\n</li>\n</$list>\n</ul>\n"
        },
        "$:/core/ui/PluginListItemTemplate": {
            "title": "$:/core/ui/PluginListItemTemplate",
            "text": "<div class=\"tc-menu-list-item\">\n<$link to={{!!title}}><$view field=\"description\"><$view field=\"title\"/></$view></$link>\n</div>"
        },
        "$:/core/ui/RootTemplate": {
            "title": "$:/core/ui/RootTemplate",
            "text": "<$transclude tiddler={{{ [{$:/layout}has[text]] ~[[$:/core/ui/PageTemplate]] }}} mode=\"inline\"/>\n\n"
        },
        "$:/core/ui/SearchResults": {
            "title": "$:/core/ui/SearchResults",
            "text": "<div class=\"tc-search-results\">\n\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/SearchResults]!has[draft.of]butfirst[]limit[1]]\" emptyMessage=\"\"\"\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/SearchResults]!has[draft.of]]\">\n<$transclude mode=\"block\"/>\n</$list>\n\"\"\">\n\n<$macrocall $name=\"tabs\" tabsList=\"[all[shadows+tiddlers]tag[$:/tags/SearchResults]!has[draft.of]]\" default={{$:/config/SearchResults/Default}} actions=\"\"\"<$action-setfield $tiddler=\"$:/state/search/currentTab\" text=<<currentTab>>/>\"\"\" explicitState=\"$:/state/tab/search-results/sidebar\"/>\n\n</$list>\n\n</div>\n"
        },
        "$:/core/ui/SideBar/More": {
            "title": "$:/core/ui/SideBar/More",
            "tags": "$:/tags/SideBar",
            "caption": "{{$:/language/SideBar/More/Caption}}",
            "text": "<div class=\"tc-more-sidebar\">\n<$macrocall $name=\"tabs\" tabsList=\"[all[shadows+tiddlers]tag[$:/tags/MoreSideBar]!has[draft.of]]\" default={{$:/config/DefaultMoreSidebarTab}} state=\"$:/state/tab/moresidebar\" class=\"tc-vertical tc-sidebar-tabs-more\" explicitState=\"$:/state/tab/moresidebar-1850697562\"/>\n</div>\n"
        },
        "$:/core/ui/SideBar/Open": {
            "title": "$:/core/ui/SideBar/Open",
            "tags": "$:/tags/SideBar",
            "caption": "{{$:/language/SideBar/Open/Caption}}",
            "text": "\\whitespace trim\n\\define lingo-base() $:/language/CloseAll/\n\n\\define drop-actions()\n<$action-listops $tiddler=<<tv-story-list>> $subfilter=\"+[insertbefore:currentTiddler<actionTiddler>]\"/>\n\\end\n\n\\define placeholder()\n<div class=\"tc-droppable-placeholder\"/>\n\\end\n\n\\define droppable-item(button)\n\\whitespace trim\n<$droppable actions=<<drop-actions>> enable=<<tv-allow-drag-and-drop>>>\n<<placeholder>>\n<div>\n$button$\n</div>\n</$droppable>\n\\end\n\n<div class=\"tc-sidebar-tab-open\">\n<$list filter=\"[list<tv-story-list>]\" history=<<tv-history-list>> storyview=\"pop\">\n<div class=\"tc-sidebar-tab-open-item\">\n<$macrocall $name=\"droppable-item\" button=\"\"\"<$button message=\"tm-close-tiddler\" tooltip={{$:/language/Buttons/Close/Hint}} aria-label={{$:/language/Buttons/Close/Caption}} class=\"tc-btn-invisible tc-btn-mini tc-small-gap-right\">{{$:/core/images/close-button}}</$button><$link to={{!!title}}><$view field=\"title\"/></$link>\"\"\"/>\n</div>\n</$list>\n<$tiddler tiddler=\"\">\n<div>\n<$macrocall $name=\"droppable-item\" button=\"\"\"<$button message=\"tm-close-all-tiddlers\" class=\"tc-btn-invisible tc-btn-mini\"><<lingo Button>></$button>\"\"\"/>\n</div>\n</$tiddler>\n</div>\n"
        },
        "$:/core/ui/SideBar/Recent": {
            "title": "$:/core/ui/SideBar/Recent",
            "tags": "$:/tags/SideBar",
            "caption": "{{$:/language/SideBar/Recent/Caption}}",
            "text": "<$macrocall $name=\"timeline\" format={{$:/language/RecentChanges/DateFormat}}/>\n"
        },
        "$:/core/ui/SideBar/Tools": {
            "title": "$:/core/ui/SideBar/Tools",
            "tags": "$:/tags/SideBar",
            "caption": "{{$:/language/SideBar/Tools/Caption}}",
            "text": "\\define lingo-base() $:/language/ControlPanel/\n\\define config-title()\n$:/config/PageControlButtons/Visibility/$(listItem)$\n\\end\n\n<<lingo Basics/Version/Prompt>> <<version>>\n\n<$set name=\"tv-config-toolbar-icons\" value=\"yes\">\n\n<$set name=\"tv-config-toolbar-text\" value=\"yes\">\n\n<$set name=\"tv-config-toolbar-class\" value=\"\">\n\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/PageControls]!has[draft.of]]\" variable=\"listItem\">\n\n<div style=\"position:relative;\" class={{{ [<listItem>encodeuricomponent[]addprefix[tc-btn-]] }}}>\n\n<$checkbox tiddler=<<config-title>> field=\"text\" checked=\"show\" unchecked=\"hide\" default=\"show\"/> <$transclude tiddler=<<listItem>>/> <i class=\"tc-muted\"><$transclude tiddler=<<listItem>> field=\"description\"/></i>\n\n</div>\n\n</$list>\n\n</$set>\n\n</$set>\n\n</$set>\n"
        },
        "$:/core/ui/SideBarLists": {
            "title": "$:/core/ui/SideBarLists",
            "text": "<$transclude tiddler=\"$:/core/ui/SideBarSegments/search\"/>\n\n<$transclude tiddler=\"$:/core/ui/SideBarSegments/tabs\"/>\n\n"
        },
        "$:/core/ui/SideBarSegments/page-controls": {
            "title": "$:/core/ui/SideBarSegments/page-controls",
            "tags": "$:/tags/SideBarSegment",
            "text": "{{||$:/core/ui/PageTemplate/pagecontrols}}\n"
        },
        "$:/core/ui/SideBarSegments/search": {
            "title": "$:/core/ui/SideBarSegments/search",
            "tags": "$:/tags/SideBarSegment",
            "text": "\\whitespace trim\n\n\\define count-popup-button()\n\\whitespace trim\n<$button popup=<<qualify \"$:/state/popup/search-dropdown\">> class=\"tc-btn-invisible\">\n{{$:/core/images/down-arrow}}\n<$list filter=\"[{$(searchTiddler)$}minlength{$:/config/Search/MinLength}limit[1]]\" variable=\"listItem\">\n<$vars userInput={{{ [<searchTiddler>get[text]] }}} configTiddler={{{ [[$:/state/search/currentTab]!is[missing]get[text]] ~[{$:/config/SearchResults/Default}] }}} replaceRegexp=\"limit\\[\\d+\\]\">\n<$vars primaryListFilter={{{ [<configTiddler>get[first-search-filter]search-replace:g:regexp<replaceRegexp>,[]] }}} secondaryListFilter={{{ [<configTiddler>get[second-search-filter]search-replace:g:regexp<replaceRegexp>,[]] }}}>\n<$set name=\"resultCount\" value=\"\"\"<$count filter=\"[subfilter<primaryListFilter>] [subfilter<secondaryListFilter>]\"/>\"\"\">\n{{$:/language/Search/Matches}}\n</$set>\n</$vars>\n</$vars>\n</$list>\n</$button>\n\\end\n\n\\define search-results-list()\n\\whitespace trim\n<$vars userInput={{$(searchTiddler)$}} configTiddler={{{ [[$:/state/search/currentTab]!is[missing]get[text]] ~[{$:/config/SearchResults/Default}] }}}>\n<$list filter=\"[<userInput>minlength{$:/config/Search/MinLength}limit[1]]\" emptyMessage=\"\"\"<div class=\"tc-search-results\">{{$:/language/Search/Search/TooShort}}</div>\"\"\" variable=\"listItem\">\n\n<$tiddler tiddler=<<configTiddler>>>\n\n{{$:/core/ui/SearchResults}}\n\n</$tiddler>\n\n</$list>\n</$vars>\n\\end\n\n\\define cancel-search-actions() <$list filter=\"[<searchTiddler>get[text]!match{$:/temp/search}]\" emptyMessage=\"\"\"<$action-deletetiddler $filter=\"[[$:/temp/search]] [<searchTiddler>] [<searchListState>]\"/>\"\"\"><$action-setfield $tiddler=\"$:/temp/search\" text={{{ [<searchTiddler>get[text]] }}}/><$action-setfield $tiddler=\"$:/temp/search/refresh\" text=\"yes\"/></$list>\n\n\\define input-accept-actions() <$list filter=\"[{$:/config/Search/NavigateOnEnter/enable}match[yes]]\" emptyMessage=\"\"\"<$list filter=\"[<__tiddler__>get[text]!is[missing]] ~[<__tiddler__>get[text]is[shadow]]\"><$action-navigate $to={{{ [<__tiddler__>get[text]] }}}/></$list>\"\"\"><$action-navigate $to={{{ [<__tiddler__>get[text]] }}}/></$list>\n\n\\define input-accept-variant-actions() <$list filter=\"[{$:/config/Search/NavigateOnEnter/enable}match[yes]]\" emptyMessage=\"\"\"<$list filter=\"[<__tiddler__>get[text]!is[missing]] ~[<__tiddler__>get[text]is[shadow]]\"><$list filter=\"[<__tiddler__>get[text]minlength[1]]\"><$action-sendmessage $message=\"tm-edit-tiddler\" $param={{{  [<__tiddler__>get[text]] }}}/></$list></$list>\"\"\"><$list filter=\"[<__tiddler__>get[text]minlength[1]]\"><$action-sendmessage $message=\"tm-edit-tiddler\" $param={{{  [<__tiddler__>get[text]] }}}/></$list></$list>\n\n\\define set-next-input-tab(beforeafter:\"after\") <$macrocall $name=\"change-input-tab\" stateTitle=\"$:/state/tab/search-results/sidebar\" tag=\"$:/tags/SearchResults\" beforeafter=\"$beforeafter$\" defaultState={{$:/config/SearchResults/Default}} actions=\"\"\"<$action-setfield $tiddler=\"$:/state/search/currentTab\" text=<<nextTab>>/>\"\"\"/>\n\n\\define advanced-search-actions() <$action-setfield $tiddler=\"$:/temp/advancedsearch\" text={{$:/temp/search/input}}/><$action-setfield $tiddler=\"$:/temp/advancedsearch/input\" text={{$:/temp/search/input}}/><<delete-state-tiddlers>><$action-navigate $to=\"$:/AdvancedSearch\"/><$action-setfield $tiddler=\"$:/temp/advancedsearch/refresh\" text=\"yes\"/><$action-sendmessage $message=\"tm-focus-selector\" $param=\"\"\"[data-tiddler-title=\"$:/AdvancedSearch\"] .tc-search input\"\"\" preventScroll=\"true\"/><$action-deletetiddler $filter=\"$:/temp/search $:/temp/search/input $:/temp/search/refresh [<searchListState>]\"/>\n\n<div class=\"tc-sidebar-lists tc-sidebar-search\">\n\n<$vars editTiddler=\"$:/temp/search\" searchTiddler=\"$:/temp/search/input\" searchListState=<<qualify \"$:/state/search-list/selected-item\">>>\n<div class=\"tc-search\">\n<$keyboard key=\"((input-tab-right))\" actions=<<set-next-input-tab>>>\n<$keyboard key=\"((input-tab-left))\" actions=<<set-next-input-tab \"before\">>>\n<$keyboard key=\"((advanced-search-sidebar))\" actions=<<advanced-search-actions>>>\n<$macrocall $name=\"keyboard-driven-input\" tiddler=<<editTiddler>> storeTitle=<<searchTiddler>> \n\t\tselectionStateTitle=<<searchListState>> refreshTitle=\"$:/temp/search/refresh\" type=\"search\" \n\t\ttag=\"input\" focus={{$:/config/Search/AutoFocus}} focusPopup=<<qualify \"$:/state/popup/search-dropdown\">> \n\t\tclass=\"tc-popup-handle\" filterMinLength={{$:/config/Search/MinLength}} inputCancelActions=<<cancel-search-actions>> \n\t\tinputAcceptActions=<<input-accept-actions>> inputAcceptVariantActions=<<input-accept-variant-actions>> cancelPopups=\"yes\" \n\t\tconfigTiddlerFilter=\"[[$:/state/search/currentTab]!is[missing]get[text]] ~[{$:/config/SearchResults/Default}]\"/>\n</$keyboard>\n</$keyboard>\n</$keyboard>\n<$reveal state=<<searchTiddler>> type=\"nomatch\" text=\"\">\n<$button tooltip={{$:/language/Buttons/AdvancedSearch/Hint}} aria-label={{$:/language/Buttons/AdvancedSearch/Caption}} class=\"tc-btn-invisible\">\n<<advanced-search-actions>>\n{{$:/core/images/advanced-search-button}}\n</$button>\n<$button class=\"tc-btn-invisible\">\n<<cancel-search-actions>><$action-sendmessage $message=\"tm-focus-selector\" $param=\".tc-search input\"/>\n{{$:/core/images/close-button}}\n</$button>\n<<count-popup-button>>\n</$reveal>\n<$reveal state=<<searchTiddler>> type=\"match\" text=\"\">\n<$button to=\"$:/AdvancedSearch\" tooltip={{$:/language/Buttons/AdvancedSearch/Hint}} aria-label={{$:/language/Buttons/AdvancedSearch/Caption}} class=\"tc-btn-invisible\">\n{{$:/core/images/advanced-search-button}}\n</$button>\n</$reveal>\n</div>\n\n<$reveal tag=\"div\" class=\"tc-block-dropdown-wrapper\" state=<<searchTiddler>> type=\"nomatch\" text=\"\">\n\n<$reveal tag=\"div\" class=\"tc-block-dropdown tc-search-drop-down tc-popup-handle\" state=<<qualify \"$:/state/popup/search-dropdown\">> type=\"nomatch\" text=\"\" default=\"\">\n\n<<search-results-list>>\n\n</$reveal>\n\n</$reveal>\n\n</$vars>\n\n</div>\n"
        },
        "$:/core/ui/SideBarSegments/site-subtitle": {
            "title": "$:/core/ui/SideBarSegments/site-subtitle",
            "tags": "$:/tags/SideBarSegment",
            "text": "<div class=\"tc-site-subtitle\">\n\n<$transclude tiddler=\"$:/SiteSubtitle\" mode=\"inline\"/>\n\n</div>\n"
        },
        "$:/core/ui/SideBarSegments/site-title": {
            "title": "$:/core/ui/SideBarSegments/site-title",
            "tags": "$:/tags/SideBarSegment",
            "text": "<h1 class=\"tc-site-title\">\n\n<$transclude tiddler=\"$:/SiteTitle\" mode=\"inline\"/>\n\n</h1>\n"
        },
        "$:/core/ui/SideBarSegments/tabs": {
            "title": "$:/core/ui/SideBarSegments/tabs",
            "tags": "$:/tags/SideBarSegment",
            "text": "<div class=\"tc-sidebar-lists tc-sidebar-tabs\">\n\n<$macrocall $name=\"tabs\" tabsList=\"[all[shadows+tiddlers]tag[$:/tags/SideBar]!has[draft.of]]\" default={{$:/config/DefaultSidebarTab}} state=\"$:/state/tab/sidebar\" class=\"tc-sidebar-tabs-main\" explicitState=\"$:/state/tab/sidebar--595412856\"/>\n\n</div>\n"
        },
        "$:/core/ui/SwitcherModal": {
            "title": "$:/core/ui/SwitcherModal",
            "subtitle": "<$text text={{{[<switch>lookup[$:/language/Switcher/Subtitle/]]}}}/>",
            "class": "tc-modal-centered",
            "text": "<$tiddler tiddler={{{[<switch>lookup[$:/config/SwitcherTargets/]]}}}>\n\n\n<$transclude/>\n\n\n</$tiddler>"
        },
        "$:/TagManager": {
            "title": "$:/TagManager",
            "icon": "$:/core/images/tag-button",
            "color": "#bbb",
            "text": "\\define lingo-base() $:/language/TagManager/\n\\define iconEditorTab(type)\n\\whitespace trim\n<$link to=\"\"><<lingo Icons/None>></$link>\n<$list filter=\"[all[shadows+tiddlers]is[image]] [all[shadows+tiddlers]tag[$:/tags/Image]] -[type[application/pdf]] +[sort[title]] +[$type$is[system]]\">\n<$link to={{!!title}}>\n<$transclude/> <$view field=\"title\"/>\n</$link>\n</$list>\n\\end\n\\define iconEditor(title)\n\\whitespace trim\n<div class=\"tc-drop-down-wrapper\">\n<$button popupTitle={{{ [[$:/state/popup/icon/]addsuffix<__title__>] }}} class=\"tc-btn-invisible tc-btn-dropdown\">{{$:/core/images/down-arrow}}</$button>\n<$reveal stateTitle={{{ [[$:/state/popup/icon/]addsuffix<__title__>] }}} type=\"popup\" position=\"belowleft\" text=\"\" default=\"\">\n<div class=\"tc-drop-down\">\n<$linkcatcher actions=\"\"\"<$action-setfield $tiddler=<<__title__>> icon=<<navigateTo>>/>\"\"\">\n<<iconEditorTab type:\"!\">>\n<hr/>\n<<iconEditorTab type:\"\">>\n</$linkcatcher>\n</div>\n</$reveal>\n</div>\n\\end\n\\define toggleButton(state)\n\\whitespace trim\n<$reveal stateTitle=<<__state__>> type=\"match\" text=\"closed\" default=\"closed\">\n<$button setTitle=<<__state__>> setTo=\"open\" class=\"tc-btn-invisible tc-btn-dropdown\" selectedClass=\"tc-selected\">\n{{$:/core/images/info-button}}\n</$button>\n</$reveal>\n<$reveal stateTitle=<<__state__>> type=\"match\" text=\"open\" default=\"closed\">\n<$button setTitle=<<__state__>> setTo=\"closed\" class=\"tc-btn-invisible tc-btn-dropdown\" selectedClass=\"tc-selected\">\n{{$:/core/images/info-button}}\n</$button>\n</$reveal>\n\\end\n\\whitespace trim\n<table class=\"tc-tag-manager-table\">\n<tbody>\n<tr>\n<th><<lingo Colour/Heading>></th>\n<th class=\"tc-tag-manager-tag\"><<lingo Tag/Heading>></th>\n<th><<lingo Count/Heading>></th>\n<th><<lingo Icon/Heading>></th>\n<th><<lingo Info/Heading>></th>\n</tr>\n<$list filter=\"[tags[]!is[system]sort[title]]\">\n<tr>\n<td><$edit-text field=\"color\" tag=\"input\" type=\"color\"/></td>\n<td>{{||$:/core/ui/TagTemplate}}</td>\n<td><$count filter=\"[all[current]tagging[]]\"/></td>\n<td>\n<$macrocall $name=\"iconEditor\" title={{!!title}}/>\n</td>\n<td>\n<$macrocall $name=\"toggleButton\" state={{{ [[$:/state/tag-manager/]addsuffix<currentTiddler>] }}} /> \n</td>\n</tr>\n<tr>\n<td></td>\n<td colspan=\"4\">\n<$reveal stateTitle={{{ [[$:/state/tag-manager/]addsuffix<currentTiddler>] }}} type=\"match\" text=\"open\" default=\"\">\n<table>\n<tbody>\n<tr><td><<lingo Colour/Heading>></td><td><$edit-text field=\"color\" tag=\"input\" type=\"text\" size=\"9\"/></td></tr>\n<tr><td><<lingo Icon/Heading>></td><td><$edit-text field=\"icon\" tag=\"input\" size=\"45\"/></td></tr>\n</tbody>\n</table>\n</$reveal>\n</td>\n</tr>\n</$list>\n<tr>\n<td></td>\n<td style=\"position:relative;\">\n{{$:/core/ui/UntaggedTemplate}}\n</td>\n<td>\n<small class=\"tc-menu-list-count\"><$count filter=\"[untagged[]!is[system]] -[tags[]]\"/></small>\n</td>\n<td></td>\n<td></td>\n</tr>\n</tbody>\n</table>\n"
        },
        "$:/core/ui/TagPickerTagTemplate": {
            "title": "$:/core/ui/TagPickerTagTemplate",
            "text": "\\whitespace trim\n<$button class=<<button-classes>> tag=\"a\" tooltip={{$:/language/EditTemplate/Tags/Add/Button/Hint}}>\n<$list filter=\"[<saveTiddler>minlength[1]]\">\n<$action-listops $tiddler=<<saveTiddler>> $field=<<tagField>> $subfilter=\"[<tag>]\"/>\n</$list>\n<$set name=\"currentTiddlerCSSEscaped\" value={{{ [<saveTiddler>escapecss[]] }}}>\n<$action-sendmessage $message=\"tm-focus-selector\" $param=<<get-tagpicker-focus-selector>> preventScroll=\"true\"/>\n</$set>\n<<delete-tag-state-tiddlers>>\n<$list filter=\"[<refreshTitle>minlength[1]]\">\n<$action-setfield $tiddler=<<refreshTitle>> text=\"yes\"/>\n</$list>\n<<actions>>\n<$set name=\"backgroundColor\" value={{!!color}}>\n<$wikify name=\"foregroundColor\" text=\"\"\"<$macrocall $name=\"contrastcolour\" target={{!!color}} fallbackTarget=<<fallbackTarget>> colourA=<<colourA>> colourB=<<colourB>>/>\"\"\">\n<span class=\"tc-tag-label tc-btn-invisible\" style=<<tag-pill-styles>>>\n<$transclude tiddler={{!!icon}}/><$view field=\"title\" format=\"text\"/>\n</span>\n</$wikify>\n</$set>\n</$button>\n"
        },
        "$:/core/ui/TagTemplate": {
            "title": "$:/core/ui/TagTemplate",
            "text": "\\whitespace trim\n<span class=\"tc-tag-list-item\">\n<$set name=\"transclusion\" value=<<currentTiddler>>>\n<$macrocall $name=\"tag-pill-body\" tag=<<currentTiddler>> icon={{!!icon}} colour={{!!color}} palette={{$:/palette}} element-tag=\"\"\"$button\"\"\" element-attributes=\"\"\"popup=<<qualify \"$:/state/popup/tag\">> dragFilter='[all[current]tagging[]]' tag='span'\"\"\"/>\n<$reveal state=<<qualify \"$:/state/popup/tag\">> type=\"popup\" position=\"below\" animate=\"yes\" class=\"tc-drop-down\">\n<$set name=\"tv-show-missing-links\" value=\"yes\">\n<$transclude tiddler=\"$:/core/ui/ListItemTemplate\"/>\n</$set>\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/TagDropdown]!has[draft.of]]\" variable=\"listItem\"> \n<$transclude tiddler=<<listItem>>/> \n</$list>\n<hr>\n<$macrocall $name=\"list-tagged-draggable\" tag=<<currentTiddler>>/>\n</$reveal>\n</$set>\n</span>\n"
        },
        "$:/core/ui/TiddlerFieldTemplate": {
            "title": "$:/core/ui/TiddlerFieldTemplate",
            "text": "<tr class=\"tc-view-field\">\n<td class=\"tc-view-field-name\">\n<$text text=<<listItem>>/>\n</td>\n<td class=\"tc-view-field-value\">\n<$view field=<<listItem>>/>\n</td>\n</tr>"
        },
        "$:/core/ui/TiddlerFields": {
            "title": "$:/core/ui/TiddlerFields",
            "text": "<table class=\"tc-view-field-table\">\n<tbody>\n<$list filter=\"[all[current]fields[]sort[title]] -text\" template=\"$:/core/ui/TiddlerFieldTemplate\" variable=\"listItem\"/>\n</tbody>\n</table>\n"
        },
        "$:/core/ui/TiddlerInfo/Advanced/PluginInfo": {
            "title": "$:/core/ui/TiddlerInfo/Advanced/PluginInfo",
            "tags": "$:/tags/TiddlerInfo/Advanced",
            "text": "\\define lingo-base() $:/language/TiddlerInfo/Advanced/PluginInfo/\n<$list filter=\"[all[current]has[plugin-type]]\">\n\n! <<lingo Heading>>\n\n<<lingo Hint>>\n<ul>\n<$list filter=\"[all[current]plugintiddlers[]sort[title]]\" emptyMessage=<<lingo Empty/Hint>>>\n<li>\n<$link to={{!!title}}>\n<$view field=\"title\"/>\n</$link>\n</li>\n</$list>\n</ul>\n\n</$list>\n"
        },
        "$:/core/ui/TiddlerInfo/Advanced/ShadowInfo": {
            "title": "$:/core/ui/TiddlerInfo/Advanced/ShadowInfo",
            "tags": "$:/tags/TiddlerInfo/Advanced",
            "text": "\\define lingo-base() $:/language/TiddlerInfo/Advanced/ShadowInfo/\n<$set name=\"infoTiddler\" value=<<currentTiddler>>>\n\n''<<lingo Heading>>''\n\n<$list filter=\"[all[current]!is[shadow]]\">\n\n<<lingo NotShadow/Hint>>\n\n</$list>\n\n<$list filter=\"[all[current]is[shadow]]\">\n\n<<lingo Shadow/Hint>>\n\n<$list filter=\"[all[current]shadowsource[]]\">\n\n<$set name=\"pluginTiddler\" value=<<currentTiddler>>>\n<<lingo Shadow/Source>>\n</$set>\n\n</$list>\n\n<$list filter=\"[all[current]is[shadow]is[tiddler]]\">\n\n<<lingo OverriddenShadow/Hint>>\n\n</$list>\n\n\n</$list>\n</$set>\n"
        },
        "$:/core/ui/TiddlerInfo/Advanced": {
            "title": "$:/core/ui/TiddlerInfo/Advanced",
            "tags": "$:/tags/TiddlerInfo",
            "caption": "{{$:/language/TiddlerInfo/Advanced/Caption}}",
            "text": "<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/TiddlerInfo/Advanced]!has[draft.of]]\" variable=\"listItem\">\n\n<$transclude tiddler=<<listItem>> mode=\"block\"/>\n</$list>\n"
        },
        "$:/core/ui/TiddlerInfo/Fields": {
            "title": "$:/core/ui/TiddlerInfo/Fields",
            "tags": "$:/tags/TiddlerInfo",
            "caption": "{{$:/language/TiddlerInfo/Fields/Caption}}",
            "text": "<$transclude tiddler=\"$:/core/ui/TiddlerFields\"/>\n"
        },
        "$:/core/ui/TiddlerInfo/List": {
            "title": "$:/core/ui/TiddlerInfo/List",
            "tags": "$:/tags/TiddlerInfo",
            "caption": "{{$:/language/TiddlerInfo/List/Caption}}",
            "text": "\\define lingo-base() $:/language/TiddlerInfo/\n<$list filter=\"[list{!!title}]\" emptyMessage=<<lingo List/Empty>> template=\"$:/core/ui/ListItemTemplate\"/>\n"
        },
        "$:/core/ui/TiddlerInfo/Listed": {
            "title": "$:/core/ui/TiddlerInfo/Listed",
            "tags": "$:/tags/TiddlerInfo",
            "caption": "{{$:/language/TiddlerInfo/Listed/Caption}}",
            "text": "\\define lingo-base() $:/language/TiddlerInfo/\n<$list filter=\"[all[current]listed[]!is[system]]\" emptyMessage=<<lingo Listed/Empty>> template=\"$:/core/ui/ListItemTemplate\"/>\n"
        },
        "$:/core/ui/TiddlerInfo/References": {
            "title": "$:/core/ui/TiddlerInfo/References",
            "tags": "$:/tags/TiddlerInfo",
            "caption": "{{$:/language/TiddlerInfo/References/Caption}}",
            "text": "\\define lingo-base() $:/language/TiddlerInfo/\n<$list filter=\"[all[current]backlinks[]sort[title]]\" emptyMessage=<<lingo References/Empty>> template=\"$:/core/ui/ListItemTemplate\">\n</$list>"
        },
        "$:/core/ui/TiddlerInfo/Tagging": {
            "title": "$:/core/ui/TiddlerInfo/Tagging",
            "tags": "$:/tags/TiddlerInfo",
            "caption": "{{$:/language/TiddlerInfo/Tagging/Caption}}",
            "text": "\\define lingo-base() $:/language/TiddlerInfo/\n<$list filter=\"[all[current]tagging[]]\" emptyMessage=<<lingo Tagging/Empty>> template=\"$:/core/ui/ListItemTemplate\"/>\n"
        },
        "$:/core/ui/TiddlerInfo/Tools": {
            "title": "$:/core/ui/TiddlerInfo/Tools",
            "tags": "$:/tags/TiddlerInfo",
            "caption": "{{$:/language/TiddlerInfo/Tools/Caption}}",
            "text": "\\define lingo-base() $:/language/TiddlerInfo/\n\\define config-title()\n$:/config/ViewToolbarButtons/Visibility/$(listItem)$\n\\end\n<$set name=\"tv-config-toolbar-icons\" value=\"yes\">\n\n<$set name=\"tv-config-toolbar-text\" value=\"yes\">\n\n<$set name=\"tv-config-toolbar-class\" value=\"\">\n\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/ViewToolbar]!has[draft.of]]\" variable=\"listItem\">\n\n<$checkbox tiddler=<<config-title>> field=\"text\" checked=\"show\" unchecked=\"hide\" default=\"show\"/> <$transclude tiddler=<<listItem>>/> <i class=\"tc-muted\"><$transclude tiddler=<<listItem>> field=\"description\"/></i>\n\n</$list>\n\n</$set>\n\n</$set>\n\n</$set>\n"
        },
        "$:/core/ui/TiddlerInfo": {
            "title": "$:/core/ui/TiddlerInfo",
            "text": "<div style=\"position:relative;\">\n<div class=\"tc-tiddler-controls\" style=\"position:absolute;right:0;\">\n<$reveal state=\"$:/config/TiddlerInfo/Mode\" type=\"match\" text=\"sticky\">\n<$button set=<<tiddlerInfoState>> setTo=\"\" tooltip={{$:/language/Buttons/Info/Hint}} aria-label={{$:/language/Buttons/Info/Caption}} class=\"tc-btn-invisible\">\n{{$:/core/images/close-button}}\n</$button>\n</$reveal>\n</div>\n</div>\n\n<$macrocall $name=\"tabs\" tabsList=\"[all[shadows+tiddlers]tag[$:/tags/TiddlerInfo]!has[draft.of]]\" default={{$:/config/TiddlerInfo/Default}}/>\n"
        },
        "$:/core/ui/TopBar/menu": {
            "title": "$:/core/ui/TopBar/menu",
            "tags": "$:/tags/TopRightBar",
            "text": "<$list filter=\"[[$:/state/sidebar]get[text]] +[else[yes]!match[no]]\" variable=\"ignore\">\n<$button set=\"$:/state/sidebar\" setTo=\"no\" tooltip={{$:/language/Buttons/HideSideBar/Hint}} aria-label={{$:/language/Buttons/HideSideBar/Caption}} class=\"tc-btn-invisible tc-hide-sidebar-btn\">{{$:/core/images/chevron-right}}</$button>\n</$list>\n<$list filter=\"[[$:/state/sidebar]get[text]] +[else[yes]match[no]]\" variable=\"ignore\">\n<$button set=\"$:/state/sidebar\" setTo=\"yes\" tooltip={{$:/language/Buttons/ShowSideBar/Hint}} aria-label={{$:/language/Buttons/ShowSideBar/Caption}} class=\"tc-btn-invisible tc-show-sidebar-btn\">{{$:/core/images/chevron-left}}</$button>\n</$list>\n"
        },
        "$:/core/ui/UntaggedTemplate": {
            "title": "$:/core/ui/UntaggedTemplate",
            "text": "\\define lingo-base() $:/language/SideBar/\n<$button popup=<<qualify \"$:/state/popup/tag\">> class=\"tc-btn-invisible tc-untagged-label tc-tag-label\">\n<<lingo Tags/Untagged/Caption>>\n</$button>\n<$reveal state=<<qualify \"$:/state/popup/tag\">> type=\"popup\" position=\"below\">\n<div class=\"tc-drop-down\">\n<$list filter=\"[untagged[]!is[system]] -[tags[]] +[sort[title]]\" template=\"$:/core/ui/ListItemTemplate\"/>\n</div>\n</$reveal>\n"
        },
        "$:/core/ui/ViewTemplate/body": {
            "title": "$:/core/ui/ViewTemplate/body",
            "tags": "$:/tags/ViewTemplate",
            "text": "<$reveal tag=\"div\" class=\"tc-tiddler-body\" type=\"nomatch\" stateTitle=<<folded-state>> text=\"hide\" retain=\"yes\" animate=\"yes\">\n\n<$list filter=\"[all[current]!has[plugin-type]!field:hide-body[yes]]\">\n\n<$transclude>\n\n<$transclude tiddler=\"$:/language/MissingTiddler/Hint\"/>\n\n</$transclude>\n\n</$list>\n\n</$reveal>\n"
        },
        "$:/core/ui/ViewTemplate/classic": {
            "title": "$:/core/ui/ViewTemplate/classic",
            "tags": "$:/tags/ViewTemplate $:/tags/EditTemplate",
            "text": "\\define lingo-base() $:/language/ClassicWarning/\n<$list filter=\"[all[current]type[text/x-tiddlywiki]]\">\n<div class=\"tc-message-box\">\n\n<<lingo Hint>>\n\n<$button set=\"!!type\" setTo=\"text/vnd.tiddlywiki\"><<lingo Upgrade/Caption>></$button>\n\n</div>\n</$list>\n"
        },
        "$:/core/ui/ViewTemplate/import": {
            "title": "$:/core/ui/ViewTemplate/import",
            "tags": "$:/tags/ViewTemplate",
            "text": "\\define lingo-base() $:/language/Import/\n\n\\define buttons()\n<$button message=\"tm-delete-tiddler\" param=<<currentTiddler>>><<lingo Listing/Cancel/Caption>></$button>\n<$button message=\"tm-perform-import\" param=<<currentTiddler>>><<lingo Listing/Import/Caption>></$button>\n<<lingo Listing/Preview>> <$select tiddler=\"$:/state/importpreviewtype\" default=\"$:/core/ui/ImportPreviews/Text\">\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/ImportPreview]!has[draft.of]]\">\n<option value=<<currentTiddler>>>{{!!caption}}</option>\n</$list>\n</$select>\n\\end\n\n<$list filter=\"[all[current]field:plugin-type[import]]\">\n\n<div class=\"tc-import\">\n\n<<lingo Listing/Hint>>\n\n<<buttons>>\n\n{{||$:/core/ui/ImportListing}}\n\n<<buttons>>\n\n</div>\n\n</$list>\n"
        },
        "$:/core/ui/ViewTemplate/plugin": {
            "title": "$:/core/ui/ViewTemplate/plugin",
            "tags": "$:/tags/ViewTemplate",
            "text": "<$reveal tag=\"div\" class=\"tc-tiddler-plugin-info\" type=\"nomatch\" stateTitle=<<folded-state>> text=\"hide\" retain=\"yes\" animate=\"yes\">\n\n<$list filter=\"[all[current]has[plugin-type]] -[all[current]field:plugin-type[import]]\">\n<$set name=\"plugin-type\" value={{!!plugin-type}}>\n<$set name=\"default-popup-state\" value=\"yes\">\n<$set name=\"qualified-state\" value=<<qualify \"$:/state/plugin-info\">>>\n{{||$:/core/ui/Components/plugin-info}}\n</$set>\n</$set>\n</$set>\n</$list>\n</$reveal>"
        },
        "$:/core/ui/ViewTemplate/subtitle": {
            "title": "$:/core/ui/ViewTemplate/subtitle",
            "tags": "$:/tags/ViewTemplate",
            "text": "\\whitespace trim\n<$reveal type=\"nomatch\" stateTitle=<<folded-state>> text=\"hide\" tag=\"div\" retain=\"yes\" animate=\"yes\">\n<div class=\"tc-subtitle\">\n<$link to={{!!modifier}} />\n<$view field=\"modified\" format=\"date\" template={{$:/language/Tiddler/DateFormat}}/>\n</div>\n</$reveal>\n"
        },
        "$:/core/ui/ViewTemplate/tags": {
            "title": "$:/core/ui/ViewTemplate/tags",
            "tags": "$:/tags/ViewTemplate",
            "text": "<$reveal type=\"nomatch\" stateTitle=<<folded-state>> text=\"hide\" tag=\"div\" retain=\"yes\" animate=\"yes\">\n<div class=\"tc-tags-wrapper\"><$list filter=\"[all[current]tags[]sort[title]]\" template=\"$:/core/ui/TagTemplate\" storyview=\"pop\"/></div>\n</$reveal>\n"
        },
        "$:/core/ui/ViewTemplate/title": {
            "title": "$:/core/ui/ViewTemplate/title",
            "tags": "$:/tags/ViewTemplate",
            "text": "\\whitespace trim\n\\define title-styles()\nfill:$(foregroundColor)$;\n\\end\n\\define config-title()\n$:/config/ViewToolbarButtons/Visibility/$(listItem)$\n\\end\n<div class=\"tc-tiddler-title\">\n<div class=\"tc-titlebar\">\n<span class=\"tc-tiddler-controls\">\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/ViewToolbar]!has[draft.of]]\" variable=\"listItem\"><$reveal type=\"nomatch\" state=<<config-title>> text=\"hide\"><$set name=\"tv-config-toolbar-class\" filter=\"[<tv-config-toolbar-class>] [<listItem>encodeuricomponent[]addprefix[tc-btn-]]\"><$transclude tiddler=<<listItem>>/></$set></$reveal></$list>\n</span>\n<$set name=\"tv-wikilinks\" value={{$:/config/Tiddlers/TitleLinks}}>\n<$link>\n<$set name=\"foregroundColor\" value={{!!color}}>\n<$list filter=\"[all[current]has[icon]]~[[$:/config/DefaultTiddlerIcon]has[text]]\">\n<span class=\"tc-tiddler-title-icon\" style=<<title-styles>>>\n<$transclude tiddler={{!!icon}}>\n<$transclude tiddler={{$:/config/DefaultTiddlerIcon}}/>\n</$transclude>\n</span>\n</$list>\n</$set>\n<$list filter=\"[all[current]removeprefix[$:/]]\">\n<h2 class=\"tc-title\" title={{$:/language/SystemTiddler/Tooltip}}>\n<span class=\"tc-system-title-prefix\">$:/</span><$text text=<<currentTiddler>>/>\n</h2>\n</$list>\n<$list filter=\"[all[current]!prefix[$:/]]\">\n<h2 class=\"tc-title\">\n<$view field=\"title\"/>\n</h2>\n</$list>\n</$link>\n</$set>\n</div>\n\n<$reveal type=\"nomatch\" text=\"\" default=\"\" state=<<tiddlerInfoState>> class=\"tc-tiddler-info tc-popup-handle\" animate=\"yes\" retain=\"yes\">\n\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/TiddlerInfoSegment]!has[draft.of]] [[$:/core/ui/TiddlerInfo]]\" variable=\"listItem\"><$transclude tiddler=<<listItem>> mode=\"block\"/></$list>\n\n</$reveal>\n</div>"
        },
        "$:/core/ui/ViewTemplate/unfold": {
            "title": "$:/core/ui/ViewTemplate/unfold",
            "tags": "$:/tags/ViewTemplate",
            "text": "<$reveal tag=\"div\" type=\"nomatch\" state=\"$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/fold-bar\" text=\"hide\">\n<$reveal tag=\"div\" type=\"nomatch\" stateTitle=<<folded-state>> text=\"hide\" default=\"show\" retain=\"yes\" animate=\"yes\">\n<$button tooltip={{$:/language/Buttons/Fold/Hint}} aria-label={{$:/language/Buttons/Fold/Caption}} class=\"tc-fold-banner\">\n<$action-sendmessage $message=\"tm-fold-tiddler\" $param=<<currentTiddler>> foldedState=<<folded-state>>/>\n{{$:/core/images/chevron-up}}\n</$button>\n</$reveal>\n<$reveal tag=\"div\" type=\"nomatch\" stateTitle=<<folded-state>> text=\"show\" default=\"show\" retain=\"yes\" animate=\"yes\">\n<$button tooltip={{$:/language/Buttons/Unfold/Hint}} aria-label={{$:/language/Buttons/Unfold/Caption}} class=\"tc-unfold-banner\">\n<$action-sendmessage $message=\"tm-fold-tiddler\" $param=<<currentTiddler>> foldedState=<<folded-state>>/>\n{{$:/core/images/chevron-down}}\n</$button>\n</$reveal>\n</$reveal>\n"
        },
        "$:/core/ui/ViewTemplate": {
            "title": "$:/core/ui/ViewTemplate",
            "text": "\\define folded-state()\n$:/state/folded/$(currentTiddler)$\n\\end\n\\define cancel-delete-tiddler-actions(message) <$action-sendmessage $message=\"tm-$message$-tiddler\"/>\n\\import [all[shadows+tiddlers]tag[$:/tags/Macro/View]!has[draft.of]]\n<$vars storyTiddler=<<currentTiddler>> tiddlerInfoState=<<qualify \"$:/state/popup/tiddler-info\">>><div data-tiddler-title=<<currentTiddler>> data-tags={{!!tags}} class={{{ tc-tiddler-frame tc-tiddler-view-frame [<currentTiddler>is[tiddler]then[tc-tiddler-exists]] [<currentTiddler>is[missing]!is[shadow]then[tc-tiddler-missing]] [<currentTiddler>is[shadow]then[tc-tiddler-exists tc-tiddler-shadow]] [<currentTiddler>is[shadow]is[tiddler]then[tc-tiddler-overridden-shadow]] [<currentTiddler>is[system]then[tc-tiddler-system]] [{!!class}] [<currentTiddler>tags[]encodeuricomponent[]addprefix[tc-tagged-]] +[join[ ]] }}}><$list filter=\"[all[shadows+tiddlers]tag[$:/tags/ViewTemplate]!has[draft.of]]\" variable=\"listItem\"><$transclude tiddler=<<listItem>>/></$list>\n</div>\n</$vars>\n"
        },
        "$:/core/ui/Buttons/clone": {
            "title": "$:/core/ui/Buttons/clone",
            "tags": "$:/tags/ViewToolbar",
            "caption": "{{$:/core/images/clone-button}} {{$:/language/Buttons/Clone/Caption}}",
            "description": "{{$:/language/Buttons/Clone/Hint}}",
            "text": "\\whitespace trim\n<$button message=\"tm-new-tiddler\" param=<<currentTiddler>> tooltip={{$:/language/Buttons/Clone/Hint}} aria-label={{$:/language/Buttons/Clone/Caption}} class=<<tv-config-toolbar-class>>>\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/clone-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\">\n<$text text=\" \"/>\n<$text text={{$:/language/Buttons/Clone/Caption}}/>\n</span>\n</$list>\n</$button>"
        },
        "$:/core/ui/Buttons/close-others": {
            "title": "$:/core/ui/Buttons/close-others",
            "tags": "$:/tags/ViewToolbar",
            "caption": "{{$:/core/images/close-others-button}} {{$:/language/Buttons/CloseOthers/Caption}}",
            "description": "{{$:/language/Buttons/CloseOthers/Hint}}",
            "text": "\\whitespace trim\n<$button message=\"tm-close-other-tiddlers\" param=<<currentTiddler>> tooltip={{$:/language/Buttons/CloseOthers/Hint}} aria-label={{$:/language/Buttons/CloseOthers/Caption}} class=<<tv-config-toolbar-class>>>\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/close-others-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\">\n<$text text=\" \"/>\n<$text text={{$:/language/Buttons/CloseOthers/Caption}}/>\n</span>\n</$list>\n</$button>"
        },
        "$:/core/ui/Buttons/close": {
            "title": "$:/core/ui/Buttons/close",
            "tags": "$:/tags/ViewToolbar",
            "caption": "{{$:/core/images/close-button}} {{$:/language/Buttons/Close/Caption}}",
            "description": "{{$:/language/Buttons/Close/Hint}}",
            "text": "\\whitespace trim\n<$button message=\"tm-close-tiddler\" tooltip={{$:/language/Buttons/Close/Hint}} aria-label={{$:/language/Buttons/Close/Caption}} class=<<tv-config-toolbar-class>>>\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/close-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\">\n<$text text={{$:/language/Buttons/Close/Caption}}/>\n</span>\n</$list>\n</$button>"
        },
        "$:/core/ui/Buttons/edit": {
            "title": "$:/core/ui/Buttons/edit",
            "tags": "$:/tags/ViewToolbar",
            "caption": "{{$:/core/images/edit-button}} {{$:/language/Buttons/Edit/Caption}}",
            "description": "{{$:/language/Buttons/Edit/Hint}}",
            "text": "\\whitespace trim\n<$button message=\"tm-edit-tiddler\" tooltip={{$:/language/Buttons/Edit/Hint}} aria-label={{$:/language/Buttons/Edit/Caption}} class=<<tv-config-toolbar-class>>>\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/edit-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\">\n<$text text=\" \"/>\n<$text text={{$:/language/Buttons/Edit/Caption}}/>\n</span>\n</$list>\n</$button>"
        },
        "$:/core/ui/Buttons/export-tiddler": {
            "title": "$:/core/ui/Buttons/export-tiddler",
            "tags": "$:/tags/ViewToolbar",
            "caption": "{{$:/core/images/export-button}} {{$:/language/Buttons/ExportTiddler/Caption}}",
            "description": "{{$:/language/Buttons/ExportTiddler/Hint}}",
            "text": "\\define makeExportFilter()\n[[$(currentTiddler)$]]\n\\end\n<$macrocall $name=\"exportButton\" exportFilter=<<makeExportFilter>> lingoBase=\"$:/language/Buttons/ExportTiddler/\" baseFilename=<<currentTiddler>>/>"
        },
        "$:/core/ui/Buttons/fold-bar": {
            "title": "$:/core/ui/Buttons/fold-bar",
            "tags": "$:/tags/ViewToolbar",
            "caption": "{{$:/core/images/chevron-up}} {{$:/language/Buttons/Fold/FoldBar/Caption}}",
            "description": "{{$:/language/Buttons/Fold/FoldBar/Hint}}",
            "text": "<!-- This dummy toolbar button is here to allow visibility of the fold-bar to be controlled as if it were a toolbar button -->"
        },
        "$:/core/ui/Buttons/fold-others": {
            "title": "$:/core/ui/Buttons/fold-others",
            "tags": "$:/tags/ViewToolbar",
            "caption": "{{$:/core/images/fold-others-button}} {{$:/language/Buttons/FoldOthers/Caption}}",
            "description": "{{$:/language/Buttons/FoldOthers/Hint}}",
            "text": "\\whitespace trim\n<$button tooltip={{$:/language/Buttons/FoldOthers/Hint}} aria-label={{$:/language/Buttons/FoldOthers/Caption}} class=<<tv-config-toolbar-class>>>\n<$action-sendmessage $message=\"tm-fold-other-tiddlers\" $param=<<currentTiddler>> foldedStatePrefix=\"$:/state/folded/\"/>\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\" variable=\"listItem\">\n{{$:/core/images/fold-others-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\">\n<$text text=\" \"/>\n<$text text={{$:/language/Buttons/FoldOthers/Caption}}/>\n</span>\n</$list>\n</$button>"
        },
        "$:/core/ui/Buttons/fold": {
            "title": "$:/core/ui/Buttons/fold",
            "tags": "$:/tags/ViewToolbar",
            "caption": "{{$:/core/images/fold-button}} {{$:/language/Buttons/Fold/Caption}}",
            "description": "{{$:/language/Buttons/Fold/Hint}}",
            "text": "\\whitespace trim\n<$reveal type=\"nomatch\" stateTitle=<<folded-state>> text=\"hide\" default=\"show\">\n<$button tooltip={{$:/language/Buttons/Fold/Hint}} aria-label={{$:/language/Buttons/Fold/Caption}} class=<<tv-config-toolbar-class>>>\n<$action-sendmessage $message=\"tm-fold-tiddler\" $param=<<currentTiddler>> foldedState=<<folded-state>>/>\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\" variable=\"listItem\">\n{{$:/core/images/fold-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\">\n<$text text=\" \"/>\n<$text text={{$:/language/Buttons/Fold/Caption}}/>\n</span>\n</$list>\n</$button>\n</$reveal>\n<$reveal type=\"match\" stateTitle=<<folded-state>> text=\"hide\" default=\"show\">\n<$button tooltip={{$:/language/Buttons/Unfold/Hint}} aria-label={{$:/language/Buttons/Unfold/Caption}} class=<<tv-config-toolbar-class>>>\n<$action-sendmessage $message=\"tm-fold-tiddler\" $param=<<currentTiddler>> foldedState=<<folded-state>>/>\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\" variable=\"listItem\">\n{{$:/core/images/unfold-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\">\n<$text text=\" \"/>\n<$text text={{$:/language/Buttons/Unfold/Caption}}/>\n</span>\n</$list>\n</$button>\n</$reveal>\n"
        },
        "$:/core/ui/Buttons/info": {
            "title": "$:/core/ui/Buttons/info",
            "tags": "$:/tags/ViewToolbar",
            "caption": "{{$:/core/images/info-button}} {{$:/language/Buttons/Info/Caption}}",
            "description": "{{$:/language/Buttons/Info/Hint}}",
            "text": "\\whitespace trim\n\\define button-content()\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/info-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\">\n<$text text={{$:/language/Buttons/Info/Caption}}/>\n</span>\n</$list>\n\\end\n<$reveal state=\"$:/config/TiddlerInfo/Mode\" type=\"match\" text=\"popup\">\n<$button popup=<<tiddlerInfoState>> tooltip={{$:/language/Buttons/Info/Hint}} aria-label={{$:/language/Buttons/Info/Caption}} class=<<tv-config-toolbar-class>> selectedClass=\"tc-selected\">\n<$macrocall $name=\"button-content\" mode=\"inline\"/>\n</$button>\n</$reveal>\n<$reveal state=\"$:/config/TiddlerInfo/Mode\" type=\"match\" text=\"sticky\">\n<$reveal state=<<tiddlerInfoState>> type=\"match\" text=\"\" default=\"\">\n<$button set=<<tiddlerInfoState>> setTo=\"yes\" tooltip={{$:/language/Buttons/Info/Hint}} aria-label={{$:/language/Buttons/Info/Caption}} class=<<tv-config-toolbar-class>> selectedClass=\"tc-selected\">\n<$macrocall $name=\"button-content\" mode=\"inline\"/>\n</$button>\n</$reveal>\n<$reveal state=<<tiddlerInfoState>> type=\"nomatch\" text=\"\" default=\"\">\n<$button set=<<tiddlerInfoState>> setTo=\"\" tooltip={{$:/language/Buttons/Info/Hint}} aria-label={{$:/language/Buttons/Info/Caption}} class=<<tv-config-toolbar-class>> selectedClass=\"tc-selected\">\n<$macrocall $name=\"button-content\" mode=\"inline\"/>\n</$button>\n</$reveal>\n</$reveal>"
        },
        "$:/core/ui/Buttons/more-tiddler-actions": {
            "title": "$:/core/ui/Buttons/more-tiddler-actions",
            "tags": "$:/tags/ViewToolbar",
            "caption": "{{$:/core/images/down-arrow}} {{$:/language/Buttons/More/Caption}}",
            "description": "{{$:/language/Buttons/More/Hint}}",
            "text": "\\whitespace trim\n\\define config-title()\n$:/config/ViewToolbarButtons/Visibility/$(listItem)$\n\\end\n<$button popup=<<qualify \"$:/state/popup/more\">> tooltip={{$:/language/Buttons/More/Hint}} aria-label={{$:/language/Buttons/More/Caption}} class=<<tv-config-toolbar-class>> selectedClass=\"tc-selected\">\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/down-arrow}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\">\n<$text text=\" \"/>\n<$text text={{$:/language/Buttons/More/Caption}}/>\n</span>\n</$list>\n</$button>\n<$reveal state=<<qualify \"$:/state/popup/more\">> type=\"popup\" position=\"belowleft\" animate=\"yes\">\n\n<div class=\"tc-drop-down\">\n\n<$set name=\"tv-config-toolbar-icons\" value=\"yes\">\n\n<$set name=\"tv-config-toolbar-text\" value=\"yes\">\n\n<$set name=\"tv-config-toolbar-class\" value=\"tc-btn-invisible\">\n\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/ViewToolbar]!has[draft.of]] -[[$:/core/ui/Buttons/more-tiddler-actions]]\" variable=\"listItem\">\n\n<$reveal type=\"match\" state=<<config-title>> text=\"hide\">\n\n<$set name=\"tv-config-toolbar-class\" filter=\"[<tv-config-toolbar-class>] [<listItem>encodeuricomponent[]addprefix[tc-btn-]]\">\n\n<$transclude tiddler=<<listItem>> mode=\"inline\"/>\n\n</$set>\n\n</$reveal>\n\n</$list>\n\n</$set>\n\n</$set>\n\n</$set>\n\n</div>\n\n</$reveal>"
        },
        "$:/core/ui/Buttons/new-here": {
            "title": "$:/core/ui/Buttons/new-here",
            "tags": "$:/tags/ViewToolbar",
            "caption": "{{$:/core/images/new-here-button}} {{$:/language/Buttons/NewHere/Caption}}",
            "description": "{{$:/language/Buttons/NewHere/Hint}}",
            "text": "\\whitespace trim\n\\define newHereActions()\n<$set name=\"tags\" filter=\"[<currentTiddler>] [{$:/config/NewTiddler/Tags}]\">\n<$action-sendmessage $message=\"tm-new-tiddler\" tags=<<tags>>/>\n</$set>\n\\end\n\\define newHereButton()\n<$button actions=<<newHereActions>> tooltip={{$:/language/Buttons/NewHere/Hint}} aria-label={{$:/language/Buttons/NewHere/Caption}} class=<<tv-config-toolbar-class>>>\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/new-here-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\">\n<$text text={{$:/language/Buttons/NewHere/Caption}}/>\n</span>\n</$list>\n</$button>\n\\end\n<<newHereButton>>\n"
        },
        "$:/core/ui/Buttons/new-journal-here": {
            "title": "$:/core/ui/Buttons/new-journal-here",
            "tags": "$:/tags/ViewToolbar",
            "caption": "{{$:/core/images/new-journal-button}} {{$:/language/Buttons/NewJournalHere/Caption}}",
            "description": "{{$:/language/Buttons/NewJournalHere/Hint}}",
            "text": "\\whitespace trim\n\\define journalButtonTags()\n[[$(currentTiddlerTag)$]] $(journalTags)$\n\\end\n\\define journalButton()\n<$button tooltip={{$:/language/Buttons/NewJournalHere/Hint}} aria-label={{$:/language/Buttons/NewJournalHere/Caption}} class=<<tv-config-toolbar-class>>>\n<$wikify name=\"journalTitle\" text=\"\"\"<$macrocall $name=\"now\" format=<<journalTitleTemplate>>/>\"\"\">\n<$action-sendmessage $message=\"tm-new-tiddler\" title=<<journalTitle>> tags=<<journalButtonTags>>/>\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/new-journal-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\">\n<$text text={{$:/language/Buttons/NewJournalHere/Caption}}/>\n</span>\n</$list>\n</$wikify>\n</$button>\n\\end\n<$set name=\"journalTitleTemplate\" value={{$:/config/NewJournal/Title}}>\n<$set name=\"journalTags\" value={{$:/config/NewJournal/Tags}}>\n<$set name=\"currentTiddlerTag\" value=<<currentTiddler>>>\n<<journalButton>>\n</$set>\n</$set>\n</$set>\n"
        },
        "$:/core/ui/Buttons/open-window": {
            "title": "$:/core/ui/Buttons/open-window",
            "tags": "$:/tags/ViewToolbar",
            "caption": "{{$:/core/images/open-window}} {{$:/language/Buttons/OpenWindow/Caption}}",
            "description": "{{$:/language/Buttons/OpenWindow/Hint}}",
            "text": "\\whitespace trim\n<$button message=\"tm-open-window\" tooltip={{$:/language/Buttons/OpenWindow/Hint}} aria-label={{$:/language/Buttons/OpenWindow/Caption}} class=<<tv-config-toolbar-class>>>\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/open-window}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\">\n<$text text=\" \"/>\n<$text text={{$:/language/Buttons/OpenWindow/Caption}}/>\n</span>\n</$list>\n</$button>"
        },
        "$:/core/ui/Buttons/permalink": {
            "title": "$:/core/ui/Buttons/permalink",
            "tags": "$:/tags/ViewToolbar",
            "caption": "{{$:/core/images/permalink-button}} {{$:/language/Buttons/Permalink/Caption}}",
            "description": "{{$:/language/Buttons/Permalink/Hint}}",
            "text": "\\whitespace trim\n<$button message=\"tm-permalink\" tooltip={{$:/language/Buttons/Permalink/Hint}} aria-label={{$:/language/Buttons/Permalink/Caption}} class=<<tv-config-toolbar-class>>>\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/permalink-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\">\n<$text text=\" \"/>\n<$text text={{$:/language/Buttons/Permalink/Caption}}/>\n</span>\n</$list>\n</$button>"
        },
        "$:/core/ui/Buttons/permaview": {
            "title": "$:/core/ui/Buttons/permaview",
            "tags": "$:/tags/ViewToolbar $:/tags/PageControls",
            "caption": "{{$:/core/images/permaview-button}} {{$:/language/Buttons/Permaview/Caption}}",
            "description": "{{$:/language/Buttons/Permaview/Hint}}",
            "text": "\\whitespace trim\n<$button message=\"tm-permaview\" tooltip={{$:/language/Buttons/Permaview/Hint}} aria-label={{$:/language/Buttons/Permaview/Caption}} class=<<tv-config-toolbar-class>>>\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/permaview-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\">\n<$text text=\" \"/>\n<$text text={{$:/language/Buttons/Permaview/Caption}}/>\n</span>\n</$list>\n</$button>"
        },
        "$:/DefaultTiddlers": {
            "title": "$:/DefaultTiddlers",
            "text": "GettingStarted\n"
        },
        "$:/temp/advancedsearch": {
            "title": "$:/temp/advancedsearch",
            "text": ""
        },
        "$:/snippets/allfields": {
            "title": "$:/snippets/allfields",
            "text": "\\define renderfield(title)\n<tr class=\"tc-view-field\"><td class=\"tc-view-field-name\">''$title$'':</td><td class=\"tc-view-field-value\">//{{$:/language/Docs/Fields/$title$}}//</td></tr>\n\\end\n<table class=\"tc-view-field-table\"><tbody><$list filter=\"[fields[]sort[title]]\" variable=\"listItem\"><$macrocall $name=\"renderfield\" title=<<listItem>>/></$list>\n</tbody></table>\n"
        },
        "$:/config/AnimationDuration": {
            "title": "$:/config/AnimationDuration",
            "text": "400"
        },
        "$:/config/AutoFocus": {
            "title": "$:/config/AutoFocus",
            "text": "title"
        },
        "$:/config/AutoSave": {
            "title": "$:/config/AutoSave",
            "text": "yes"
        },
        "$:/config/BitmapEditor/Colour": {
            "title": "$:/config/BitmapEditor/Colour",
            "text": "#444"
        },
        "$:/config/BitmapEditor/ImageSizes": {
            "title": "$:/config/BitmapEditor/ImageSizes",
            "text": "[[62px 100px]] [[100px 62px]] [[124px 200px]] [[200px 124px]] [[248px 400px]] [[371px 600px]] [[400px 248px]] [[556px 900px]] [[600px 371px]] [[742px 1200px]] [[900px 556px]] [[1200px 742px]]"
        },
        "$:/config/BitmapEditor/LineWidth": {
            "title": "$:/config/BitmapEditor/LineWidth",
            "text": "3px"
        },
        "$:/config/BitmapEditor/LineWidths": {
            "title": "$:/config/BitmapEditor/LineWidths",
            "text": "0.25px 0.5px 1px 2px 3px 4px 6px 8px 10px 16px 20px 28px 40px 56px 80px"
        },
        "$:/config/BitmapEditor/Opacities": {
            "title": "$:/config/BitmapEditor/Opacities",
            "text": "0.01 0.025 0.05 0.075 0.1 0.15 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0"
        },
        "$:/config/BitmapEditor/Opacity": {
            "title": "$:/config/BitmapEditor/Opacity",
            "text": "1.0"
        },
        "$:/config/DefaultMoreSidebarTab": {
            "title": "$:/config/DefaultMoreSidebarTab",
            "text": "$:/core/ui/MoreSideBar/Tags"
        },
        "$:/config/DefaultSidebarTab": {
            "title": "$:/config/DefaultSidebarTab",
            "text": "$:/core/ui/SideBar/Open"
        },
        "$:/config/DownloadSaver/AutoSave": {
            "title": "$:/config/DownloadSaver/AutoSave",
            "text": "no"
        },
        "$:/config/Drafts/TypingTimeout": {
            "title": "$:/config/Drafts/TypingTimeout",
            "text": "400"
        },
        "$:/config/EditMode/fieldname-filter": {
            "title": "$:/config/EditMode/fieldname-filter",
            "first-search-filter": "[!is[shadow]!is[system]fields[]search:title<userInput>sort[]] -created -creator -draft.of -draft.title -modified -modifier -tags -text -title -type",
            "second-search-filter": "[fields[]search:title<userInput>sort[]] -[!is[shadow]!is[system]fields[]]"
        },
        "$:/config/EditTabIndex": {
            "title": "$:/config/EditTabIndex",
            "text": "1\n"
        },
        "$:/config/EditTemplateFields/Visibility/title": {
            "title": "$:/config/EditTemplateFields/Visibility/title",
            "text": "hide"
        },
        "$:/config/EditTemplateFields/Visibility/tags": {
            "title": "$:/config/EditTemplateFields/Visibility/tags",
            "text": "hide"
        },
        "$:/config/EditTemplateFields/Visibility/text": {
            "title": "$:/config/EditTemplateFields/Visibility/text",
            "text": "hide"
        },
        "$:/config/EditTemplateFields/Visibility/creator": {
            "title": "$:/config/EditTemplateFields/Visibility/creator",
            "text": "hide"
        },
        "$:/config/EditTemplateFields/Visibility/created": {
            "title": "$:/config/EditTemplateFields/Visibility/created",
            "text": "hide"
        },
        "$:/config/EditTemplateFields/Visibility/modified": {
            "title": "$:/config/EditTemplateFields/Visibility/modified",
            "text": "hide"
        },
        "$:/config/EditTemplateFields/Visibility/modifier": {
            "title": "$:/config/EditTemplateFields/Visibility/modifier",
            "text": "hide"
        },
        "$:/config/EditTemplateFields/Visibility/type": {
            "title": "$:/config/EditTemplateFields/Visibility/type",
            "text": "hide"
        },
        "$:/config/EditTemplateFields/Visibility/draft.title": {
            "title": "$:/config/EditTemplateFields/Visibility/draft.title",
            "text": "hide"
        },
        "$:/config/EditTemplateFields/Visibility/draft.of": {
            "title": "$:/config/EditTemplateFields/Visibility/draft.of",
            "text": "hide"
        },
        "$:/config/EditTemplateFields/Visibility/revision": {
            "title": "$:/config/EditTemplateFields/Visibility/revision",
            "text": "hide"
        },
        "$:/config/EditTemplateFields/Visibility/bag": {
            "title": "$:/config/EditTemplateFields/Visibility/bag",
            "text": "hide"
        },
        "$:/config/EditorToolbarButtons/Visibility/$:/core/ui/EditorToolbar/heading-4": {
            "title": "$:/config/EditorToolbarButtons/Visibility/$:/core/ui/EditorToolbar/heading-4",
            "text": "hide"
        },
        "$:/config/EditorToolbarButtons/Visibility/$:/core/ui/EditorToolbar/heading-5": {
            "title": "$:/config/EditorToolbarButtons/Visibility/$:/core/ui/EditorToolbar/heading-5",
            "text": "hide"
        },
        "$:/config/EditorToolbarButtons/Visibility/$:/core/ui/EditorToolbar/heading-6": {
            "title": "$:/config/EditorToolbarButtons/Visibility/$:/core/ui/EditorToolbar/heading-6",
            "text": "hide"
        },
        "$:/config/EditorTypeMappings/image/gif": {
            "title": "$:/config/EditorTypeMappings/image/gif",
            "text": "bitmap"
        },
        "$:/config/EditorTypeMappings/image/webp": {
            "title": "$:/config/EditorTypeMappings/image/webp",
            "text": "bitmap"
        },
        "$:/config/EditorTypeMappings/image/heic": {
            "title": "$:/config/EditorTypeMappings/image/heic",
            "text": "bitmap"
        },
        "$:/config/EditorTypeMappings/image/heif": {
            "title": "$:/config/EditorTypeMappings/image/heif",
            "text": "bitmap"
        },
        "$:/config/EditorTypeMappings/image/jpeg": {
            "title": "$:/config/EditorTypeMappings/image/jpeg",
            "text": "bitmap"
        },
        "$:/config/EditorTypeMappings/image/jpg": {
            "title": "$:/config/EditorTypeMappings/image/jpg",
            "text": "bitmap"
        },
        "$:/config/EditorTypeMappings/image/png": {
            "title": "$:/config/EditorTypeMappings/image/png",
            "text": "bitmap"
        },
        "$:/config/EditorTypeMappings/image/x-icon": {
            "title": "$:/config/EditorTypeMappings/image/x-icon",
            "text": "bitmap"
        },
        "$:/config/EditorTypeMappings/text/vnd.tiddlywiki": {
            "title": "$:/config/EditorTypeMappings/text/vnd.tiddlywiki",
            "text": "text"
        },
        "$:/config/Manager/Show": {
            "title": "$:/config/Manager/Show",
            "text": "tiddlers"
        },
        "$:/config/Manager/Filter": {
            "title": "$:/config/Manager/Filter",
            "text": ""
        },
        "$:/config/Manager/Order": {
            "title": "$:/config/Manager/Order",
            "text": "forward"
        },
        "$:/config/Manager/Sort": {
            "title": "$:/config/Manager/Sort",
            "text": "title"
        },
        "$:/config/Manager/System": {
            "title": "$:/config/Manager/System",
            "text": "system"
        },
        "$:/config/Manager/Tag": {
            "title": "$:/config/Manager/Tag",
            "text": ""
        },
        "$:/state/popup/manager/item/$:/Manager/ItemMain/RawText": {
            "title": "$:/state/popup/manager/item/$:/Manager/ItemMain/RawText",
            "text": "hide"
        },
        "$:/config/MissingLinks": {
            "title": "$:/config/MissingLinks",
            "text": "yes"
        },
        "$:/config/Navigation/UpdateAddressBar": {
            "title": "$:/config/Navigation/UpdateAddressBar",
            "text": "no"
        },
        "$:/config/Navigation/UpdateHistory": {
            "title": "$:/config/Navigation/UpdateHistory",
            "text": "no"
        },
        "$:/config/NewImageType": {
            "title": "$:/config/NewImageType",
            "text": "jpeg"
        },
        "$:/config/OfficialPluginLibrary": {
            "title": "$:/config/OfficialPluginLibrary",
            "tags": "$:/tags/PluginLibrary",
            "url": "https://tiddlywiki.com/library/v5.1.23/index.html",
            "caption": "{{$:/language/OfficialPluginLibrary}}",
            "text": "{{$:/language/OfficialPluginLibrary/Hint}}\n"
        },
        "$:/config/Navigation/openLinkFromInsideRiver": {
            "title": "$:/config/Navigation/openLinkFromInsideRiver",
            "text": "below"
        },
        "$:/config/Navigation/openLinkFromOutsideRiver": {
            "title": "$:/config/Navigation/openLinkFromOutsideRiver",
            "text": "top"
        },
        "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/advanced-search": {
            "title": "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/advanced-search",
            "text": "hide"
        },
        "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/close-all": {
            "title": "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/close-all",
            "text": "hide"
        },
        "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/encryption": {
            "title": "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/encryption",
            "text": "hide"
        },
        "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/export-page": {
            "title": "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/export-page",
            "text": "hide"
        },
        "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/fold-all": {
            "title": "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/fold-all",
            "text": "hide"
        },
        "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/full-screen": {
            "title": "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/full-screen",
            "text": "hide"
        },
        "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/home": {
            "title": "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/home",
            "text": "hide"
        },
        "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/refresh": {
            "title": "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/refresh",
            "text": "hide"
        },
        "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/import": {
            "title": "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/import",
            "text": "hide"
        },
        "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/language": {
            "title": "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/language",
            "text": "hide"
        },
        "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/tag-manager": {
            "title": "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/tag-manager",
            "text": "hide"
        },
        "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/manager": {
            "title": "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/manager",
            "text": "hide"
        },
        "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/more-page-actions": {
            "title": "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/more-page-actions",
            "text": "hide"
        },
        "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/new-journal": {
            "title": "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/new-journal",
            "text": "hide"
        },
        "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/new-image": {
            "title": "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/new-image",
            "text": "hide"
        },
        "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/palette": {
            "title": "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/palette",
            "text": "hide"
        },
        "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/permaview": {
            "title": "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/permaview",
            "text": "hide"
        },
        "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/print": {
            "title": "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/print",
            "text": "hide"
        },
        "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/storyview": {
            "title": "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/storyview",
            "text": "hide"
        },
        "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/timestamp": {
            "title": "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/timestamp",
            "text": "hide"
        },
        "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/theme": {
            "title": "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/theme",
            "text": "hide"
        },
        "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/unfold-all": {
            "title": "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/unfold-all",
            "text": "hide"
        },
        "$:/config/Performance/Instrumentation": {
            "title": "$:/config/Performance/Instrumentation",
            "text": "no"
        },
        "$:/config/RegisterPluginType/plugin": {
            "title": "$:/config/RegisterPluginType/plugin",
            "text": "yes"
        },
        "$:/config/RegisterPluginType/theme": {
            "title": "$:/config/RegisterPluginType/theme",
            "text": "no"
        },
        "$:/config/RegisterPluginType/language": {
            "title": "$:/config/RegisterPluginType/language",
            "text": "no"
        },
        "$:/config/RegisterPluginType/info": {
            "title": "$:/config/RegisterPluginType/info",
            "text": "yes"
        },
        "$:/config/RegisterPluginType/import": {
            "title": "$:/config/RegisterPluginType/import",
            "text": "no"
        },
        "$:/config/SaveWikiButton/Template": {
            "title": "$:/config/SaveWikiButton/Template",
            "text": "$:/core/save/all"
        },
        "$:/config/SaverFilter": {
            "title": "$:/config/SaverFilter",
            "text": "[all[]] -[prefix[$:/HistoryList]] -[prefix[$:/StoryList]] -[status[pending]plugin-type[import]] -[[$:/isEncrypted]] -[[$:/UploadName]] -[prefix[$:/state/]] -[prefix[$:/temp/]]\n"
        },
        "$:/config/Search/AutoFocus": {
            "title": "$:/config/Search/AutoFocus",
            "text": "true"
        },
        "$:/config/Search/MinLength": {
            "title": "$:/config/Search/MinLength",
            "text": "3"
        },
        "$:/config/SearchResults/Default": {
            "title": "$:/config/SearchResults/Default",
            "text": "$:/core/ui/DefaultSearchResultList"
        },
        "$:/config/Server/ExternalFilters/[all[tiddlers]!is[system]sort[title]]": {
            "title": "$:/config/Server/ExternalFilters/[all[tiddlers]!is[system]sort[title]]",
            "text": "yes"
        },
        "$:/config/ShortcutInfo/add-field": {
            "title": "$:/config/ShortcutInfo/add-field",
            "text": "{{$:/language/EditTemplate/Fields/Add/Button/Hint}}"
        },
        "$:/config/ShortcutInfo/advanced-search": {
            "title": "$:/config/ShortcutInfo/advanced-search",
            "text": "{{$:/language/Buttons/AdvancedSearch/Hint}}"
        },
        "$:/config/ShortcutInfo/advanced-search-sidebar": {
            "title": "$:/config/ShortcutInfo/advanced-search-sidebar",
            "text": "{{$:/language/Shortcuts/Input/AdvancedSearch/Hint}}"
        },
        "$:/config/ShortcutInfo/bold": {
            "title": "$:/config/ShortcutInfo/bold",
            "text": "{{$:/language/Buttons/Bold/Hint}}"
        },
        "$:/config/ShortcutInfo/cancel-edit-tiddler": {
            "title": "$:/config/ShortcutInfo/cancel-edit-tiddler",
            "text": "{{$:/language/Buttons/Cancel/Hint}}"
        },
        "$:/config/ShortcutInfo/change-sidebar-layout": {
            "title": "$:/config/ShortcutInfo/change-sidebar-layout",
            "text": "{{$:/language/Shortcuts/SidebarLayout/Hint}}"
        },
        "$:/config/ShortcutInfo/delete-field": {
            "title": "$:/config/ShortcutInfo/delete-field",
            "text": "{{$:/language/EditTemplate/Field/Remove/Hint}}"
        },
        "$:/config/ShortcutInfo/excise": {
            "title": "$:/config/ShortcutInfo/excise",
            "text": "{{$:/language/Buttons/Excise/Hint}}"
        },
        "$:/config/ShortcutInfo/heading-1": {
            "title": "$:/config/ShortcutInfo/heading-1",
            "text": "{{$:/language/Buttons/Heading1/Hint}}"
        },
        "$:/config/ShortcutInfo/heading-2": {
            "title": "$:/config/ShortcutInfo/heading-2",
            "text": "{{$:/language/Buttons/Heading2/Hint}}"
        },
        "$:/config/ShortcutInfo/heading-3": {
            "title": "$:/config/ShortcutInfo/heading-3",
            "text": "{{$:/language/Buttons/Heading3/Hint}}"
        },
        "$:/config/ShortcutInfo/heading-4": {
            "title": "$:/config/ShortcutInfo/heading-4",
            "text": "{{$:/language/Buttons/Heading4/Hint}}"
        },
        "$:/config/ShortcutInfo/heading-5": {
            "title": "$:/config/ShortcutInfo/heading-5",
            "text": "{{$:/language/Buttons/Heading5/Hint}}"
        },
        "$:/config/ShortcutInfo/heading-6": {
            "title": "$:/config/ShortcutInfo/heading-6",
            "text": "{{$:/language/Buttons/Heading6/Hint}}"
        },
        "$:/config/ShortcutInfo/input-accept": {
            "title": "$:/config/ShortcutInfo/input-accept",
            "text": "{{$:/language/Shortcuts/Input/Accept/Hint}}"
        },
        "$:/config/ShortcutInfo/input-accept-variant": {
            "title": "$:/config/ShortcutInfo/input-accept-variant",
            "text": "{{$:/language/Shortcuts/Input/AcceptVariant/Hint}}"
        },
        "$:/config/ShortcutInfo/input-cancel": {
            "title": "$:/config/ShortcutInfo/input-cancel",
            "text": "{{$:/language/Shortcuts/Input/Cancel/Hint}}"
        },
        "$:/config/ShortcutInfo/input-down": {
            "title": "$:/config/ShortcutInfo/input-down",
            "text": "{{$:/language/Shortcuts/Input/Down/Hint}}"
        },
        "$:/config/ShortcutInfo/input-tab-left": {
            "title": "$:/config/ShortcutInfo/input-tab-left",
            "text": "{{$:/language/Shortcuts/Input/Tab-Left/Hint}}"
        },
        "$:/config/ShortcutInfo/input-tab-right": {
            "title": "$:/config/ShortcutInfo/input-tab-right",
            "text": "{{$:/language/Shortcuts/Input/Tab-Right/Hint}}"
        },
        "$:/config/ShortcutInfo/input-up": {
            "title": "$:/config/ShortcutInfo/input-up",
            "text": "{{$:/language/Shortcuts/Input/Up/Hint}}"
        },
        "$:/config/ShortcutInfo/italic": {
            "title": "$:/config/ShortcutInfo/italic",
            "text": "{{$:/language/Buttons/Italic/Hint}}"
        },
        "$:/config/ShortcutInfo/layout-switcher": {
            "title": "$:/config/ShortcutInfo/layout-switcher",
            "text": "{{$:/language/LayoutSwitcher/Description}}"
        },
        "$:/config/ShortcutInfo/link": {
            "title": "$:/config/ShortcutInfo/link",
            "text": "{{$:/language/Buttons/Link/Hint}}"
        },
        "$:/config/ShortcutInfo/linkify": {
            "title": "$:/config/ShortcutInfo/linkify",
            "text": "{{$:/language/Buttons/Linkify/Hint}}"
        },
        "$:/config/ShortcutInfo/list-bullet": {
            "title": "$:/config/ShortcutInfo/list-bullet",
            "text": "{{$:/language/Buttons/ListBullet/Hint}}"
        },
        "$:/config/ShortcutInfo/list-number": {
            "title": "$:/config/ShortcutInfo/list-number",
            "text": "{{$:/language/Buttons/ListNumber/Hint}}"
        },
        "$:/config/ShortcutInfo/mono-block": {
            "title": "$:/config/ShortcutInfo/mono-block",
            "text": "{{$:/language/Buttons/MonoBlock/Hint}}"
        },
        "$:/config/ShortcutInfo/mono-line": {
            "title": "$:/config/ShortcutInfo/mono-line",
            "text": "{{$:/language/Buttons/MonoLine/Hint}}"
        },
        "$:/config/ShortcutInfo/new-image": {
            "title": "$:/config/ShortcutInfo/new-image",
            "text": "{{$:/language/Buttons/NewImage/Hint}}"
        },
        "$:/config/ShortcutInfo/new-journal": {
            "title": "$:/config/ShortcutInfo/new-journal",
            "text": "{{$:/language/Buttons/NewJournal/Hint}}"
        },
        "$:/config/ShortcutInfo/new-tiddler": {
            "title": "$:/config/ShortcutInfo/new-tiddler",
            "text": "{{$:/language/Buttons/NewTiddler/Hint}}"
        },
        "$:/config/ShortcutInfo/picture": {
            "title": "$:/config/ShortcutInfo/picture",
            "text": "{{$:/language/Buttons/Picture/Hint}}"
        },
        "$:/config/ShortcutInfo/preview": {
            "title": "$:/config/ShortcutInfo/preview",
            "text": "{{$:/language/Buttons/Preview/Hint}}"
        },
        "$:/config/ShortcutInfo/quote": {
            "title": "$:/config/ShortcutInfo/quote",
            "text": "{{$:/language/Buttons/Quote/Hint}}"
        },
        "$:/config/ShortcutInfo/save-tiddler": {
            "title": "$:/config/ShortcutInfo/save-tiddler",
            "text": "{{$:/language/Buttons/Save/Hint}}"
        },
        "$:/config/ShortcutInfo/save-wiki": {
            "title": "$:/config/ShortcutInfo/save-wiki",
            "text": "{{$:/language/Buttons/SaveWiki/Hint}}"
        },
        "$:/config/ShortcutInfo/sidebar-search": {
            "title": "$:/config/ShortcutInfo/sidebar-search",
            "text": "{{$:/language/Buttons/SidebarSearch/Hint}}"
        },
        "$:/config/ShortcutInfo/stamp": {
            "title": "$:/config/ShortcutInfo/stamp",
            "text": "{{$:/language/Buttons/Stamp/Hint}}"
        },
        "$:/config/ShortcutInfo/strikethrough": {
            "title": "$:/config/ShortcutInfo/strikethrough",
            "text": "{{$:/language/Buttons/Strikethrough/Hint}}"
        },
        "$:/config/ShortcutInfo/subscript": {
            "title": "$:/config/ShortcutInfo/subscript",
            "text": "{{$:/language/Buttons/Subscript/Hint}}"
        },
        "$:/config/ShortcutInfo/superscript": {
            "title": "$:/config/ShortcutInfo/superscript",
            "text": "{{$:/language/Buttons/Superscript/Hint}}"
        },
        "$:/config/ShortcutInfo/toggle-sidebar": {
            "title": "$:/config/ShortcutInfo/toggle-sidebar",
            "text": "{{$:/language/Buttons/ToggleSidebar/Hint}}"
        },
        "$:/config/ShortcutInfo/transcludify": {
            "title": "$:/config/ShortcutInfo/transcludify",
            "text": "{{$:/language/Buttons/Transcludify/Hint}}"
        },
        "$:/config/ShortcutInfo/underline": {
            "title": "$:/config/ShortcutInfo/underline",
            "text": "{{$:/language/Buttons/Underline/Hint}}"
        },
        "$:/config/SwitcherTargets/layout": {
            "title": "$:/config/SwitcherTargets/layout",
            "text": "$:/snippets/LayoutSwitcher"
        },
        "$:/config/SwitcherTargets/language": {
            "title": "$:/config/SwitcherTargets/language",
            "text": "$:/snippets/languageswitcher"
        },
        "$:/config/SwitcherTargets/palette": {
            "title": "$:/config/SwitcherTargets/palette",
            "text": "$:/core/ui/ControlPanel/Palette"
        },
        "$:/config/SwitcherTargets/theme": {
            "title": "$:/config/SwitcherTargets/theme",
            "text": "$:/core/ui/ControlPanel/Theme"
        },
        "$:/config/SyncFilter": {
            "title": "$:/config/SyncFilter",
            "text": "[is[tiddler]] -[[$:/core]] -[[$:/library/sjcl.js]] -[prefix[$:/boot/]] -[prefix[$:/HistoryList]] -[status[pending]plugin-type[import]] -[[$:/isEncrypted]] -[prefix[$:/status/]] -[prefix[$:/state/]] -[prefix[$:/temp/]]\n"
        },
        "$:/config/SyncSystemTiddlersFromServer": {
            "title": "$:/config/SyncSystemTiddlersFromServer",
            "text": "no"
        },
        "$:/config/Tags/MinLength": {
            "title": "$:/config/Tags/MinLength",
            "text": "0"
        },
        "$:/config/TextEditor/EditorHeight/Height": {
            "title": "$:/config/TextEditor/EditorHeight/Height",
            "text": "400px"
        },
        "$:/config/TextEditor/EditorHeight/Mode": {
            "title": "$:/config/TextEditor/EditorHeight/Mode",
            "text": "auto"
        },
        "$:/config/TiddlerInfo/Default": {
            "title": "$:/config/TiddlerInfo/Default",
            "text": "$:/core/ui/TiddlerInfo/Fields"
        },
        "$:/config/TiddlerInfo/Mode": {
            "title": "$:/config/TiddlerInfo/Mode",
            "text": "popup"
        },
        "$:/config/Tiddlers/TitleLinks": {
            "title": "$:/config/Tiddlers/TitleLinks",
            "text": "no"
        },
        "$:/config/Toolbar/ButtonClass": {
            "title": "$:/config/Toolbar/ButtonClass",
            "text": "tc-btn-invisible"
        },
        "$:/config/Toolbar/Icons": {
            "title": "$:/config/Toolbar/Icons",
            "text": "yes"
        },
        "$:/config/Toolbar/Text": {
            "title": "$:/config/Toolbar/Text",
            "text": "no"
        },
        "$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/clone": {
            "title": "$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/clone",
            "text": "hide"
        },
        "$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/close-others": {
            "title": "$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/close-others",
            "text": "hide"
        },
        "$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/export-tiddler": {
            "title": "$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/export-tiddler",
            "text": "hide"
        },
        "$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/info": {
            "title": "$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/info",
            "text": "hide"
        },
        "$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/more-tiddler-actions": {
            "title": "$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/more-tiddler-actions",
            "text": "show"
        },
        "$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/new-here": {
            "title": "$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/new-here",
            "text": "hide"
        },
        "$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/new-journal-here": {
            "title": "$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/new-journal-here",
            "text": "hide"
        },
        "$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/open-window": {
            "title": "$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/open-window",
            "text": "hide"
        },
        "$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/permalink": {
            "title": "$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/permalink",
            "text": "hide"
        },
        "$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/permaview": {
            "title": "$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/permaview",
            "text": "hide"
        },
        "$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/delete": {
            "title": "$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/delete",
            "text": "hide"
        },
        "$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/fold": {
            "title": "$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/fold",
            "text": "hide"
        },
        "$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/fold-bar": {
            "title": "$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/fold-bar",
            "text": "hide"
        },
        "$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/fold-others": {
            "title": "$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/fold-others",
            "text": "hide"
        },
        "$:/config/shortcuts-mac/bold": {
            "title": "$:/config/shortcuts-mac/bold",
            "text": "meta-B"
        },
        "$:/config/shortcuts-mac/input-tab-left": {
            "title": "$:/config/shortcuts-mac/input-tab-left",
            "text": "ctrl-Left"
        },
        "$:/config/shortcuts-mac/input-tab-right": {
            "title": "$:/config/shortcuts-mac/input-tab-right",
            "text": "ctrl-Right"
        },
        "$:/config/shortcuts-mac/italic": {
            "title": "$:/config/shortcuts-mac/italic",
            "text": "meta-I"
        },
        "$:/config/shortcuts-mac/underline": {
            "title": "$:/config/shortcuts-mac/underline",
            "text": "meta-U"
        },
        "$:/config/shortcuts-mac/new-image": {
            "title": "$:/config/shortcuts-mac/new-image",
            "text": "ctrl-I"
        },
        "$:/config/shortcuts-mac/new-journal": {
            "title": "$:/config/shortcuts-mac/new-journal",
            "text": "ctrl-J"
        },
        "$:/config/shortcuts-mac/new-tiddler": {
            "title": "$:/config/shortcuts-mac/new-tiddler",
            "text": "ctrl-N"
        },
        "$:/config/shortcuts-mac/save-wiki": {
            "title": "$:/config/shortcuts-mac/save-wiki",
            "text": "meta-S"
        },
        "$:/config/shortcuts-not-mac/bold": {
            "title": "$:/config/shortcuts-not-mac/bold",
            "text": "ctrl-B"
        },
        "$:/config/shortcuts-not-mac/italic": {
            "title": "$:/config/shortcuts-not-mac/italic",
            "text": "ctrl-I"
        },
        "$:/config/shortcuts-not-mac/underline": {
            "title": "$:/config/shortcuts-not-mac/underline",
            "text": "ctrl-U"
        },
        "$:/config/shortcuts-not-mac/new-image": {
            "title": "$:/config/shortcuts-not-mac/new-image",
            "text": "alt-I"
        },
        "$:/config/shortcuts-not-mac/new-journal": {
            "title": "$:/config/shortcuts-not-mac/new-journal",
            "text": "alt-J"
        },
        "$:/config/shortcuts-not-mac/new-tiddler": {
            "title": "$:/config/shortcuts-not-mac/new-tiddler",
            "text": "alt-N"
        },
        "$:/config/shortcuts/add-field": {
            "title": "$:/config/shortcuts/add-field",
            "text": "enter"
        },
        "$:/config/shortcuts/advanced-search": {
            "title": "$:/config/shortcuts/advanced-search",
            "text": "ctrl-shift-A"
        },
        "$:/config/shortcuts/advanced-search-sidebar": {
            "title": "$:/config/shortcuts/advanced-search-sidebar",
            "text": "alt-Enter"
        },
        "$:/config/shortcuts/cancel-edit-tiddler": {
            "title": "$:/config/shortcuts/cancel-edit-tiddler",
            "text": "escape"
        },
        "$:/config/shortcuts/change-sidebar-layout": {
            "title": "$:/config/shortcuts/change-sidebar-layout",
            "text": "shift-alt-Down"
        },
        "$:/config/shortcuts/delete-field": {
            "title": "$:/config/shortcuts/delete-field",
            "text": "shift-alt-D"
        },
        "$:/config/shortcuts/excise": {
            "title": "$:/config/shortcuts/excise",
            "text": "ctrl-E"
        },
        "$:/config/shortcuts/sidebar-search": {
            "title": "$:/config/shortcuts/sidebar-search",
            "text": "ctrl-shift-F"
        },
        "$:/config/shortcuts/heading-1": {
            "title": "$:/config/shortcuts/heading-1",
            "text": "ctrl-1"
        },
        "$:/config/shortcuts/heading-2": {
            "title": "$:/config/shortcuts/heading-2",
            "text": "ctrl-2"
        },
        "$:/config/shortcuts/heading-3": {
            "title": "$:/config/shortcuts/heading-3",
            "text": "ctrl-3"
        },
        "$:/config/shortcuts/heading-4": {
            "title": "$:/config/shortcuts/heading-4",
            "text": "ctrl-4"
        },
        "$:/config/shortcuts/heading-5": {
            "title": "$:/config/shortcuts/heading-5",
            "text": "ctrl-5"
        },
        "$:/config/shortcuts/heading-6": {
            "title": "$:/config/shortcuts/heading-6",
            "text": "ctrl-6"
        },
        "$:/config/shortcuts/input-accept": {
            "title": "$:/config/shortcuts/input-accept",
            "text": "Enter"
        },
        "$:/config/shortcuts/input-accept-variant": {
            "title": "$:/config/shortcuts/input-accept-variant",
            "text": "ctrl-Enter"
        },
        "$:/config/shortcuts/input-cancel": {
            "title": "$:/config/shortcuts/input-cancel",
            "text": "Escape"
        },
        "$:/config/shortcuts/input-down": {
            "title": "$:/config/shortcuts/input-down",
            "text": "Down"
        },
        "$:/config/shortcuts/input-tab-left": {
            "title": "$:/config/shortcuts/input-tab-left",
            "text": "alt-Left"
        },
        "$:/config/shortcuts/input-tab-right": {
            "title": "$:/config/shortcuts/input-tab-right",
            "text": "alt-Right"
        },
        "$:/config/shortcuts/input-up": {
            "title": "$:/config/shortcuts/input-up",
            "text": "Up"
        },
        "$:/config/shortcuts/layout-switcher": {
            "title": "$:/config/shortcuts/layout-switcher",
            "text": "ctrl-shift-L"
        },
        "$:/config/shortcuts/link": {
            "title": "$:/config/shortcuts/link",
            "text": "ctrl-L"
        },
        "$:/config/shortcuts/linkify": {
            "title": "$:/config/shortcuts/linkify",
            "text": "alt-shift-L"
        },
        "$:/config/shortcuts/list-bullet": {
            "title": "$:/config/shortcuts/list-bullet",
            "text": "ctrl-shift-L"
        },
        "$:/config/shortcuts/list-number": {
            "title": "$:/config/shortcuts/list-number",
            "text": "ctrl-shift-N"
        },
        "$:/config/shortcuts/mono-block": {
            "title": "$:/config/shortcuts/mono-block",
            "text": "ctrl-shift-M"
        },
        "$:/config/shortcuts/mono-line": {
            "title": "$:/config/shortcuts/mono-line",
            "text": "ctrl-M"
        },
        "$:/config/shortcuts/picture": {
            "title": "$:/config/shortcuts/picture",
            "text": "ctrl-shift-I"
        },
        "$:/config/shortcuts/preview": {
            "title": "$:/config/shortcuts/preview",
            "text": "alt-P"
        },
        "$:/config/shortcuts/quote": {
            "title": "$:/config/shortcuts/quote",
            "text": "ctrl-Q"
        },
        "$:/config/shortcuts/save-tiddler": {
            "title": "$:/config/shortcuts/save-tiddler",
            "text": "ctrl+enter"
        },
        "$:/config/shortcuts/save-wiki": {
            "title": "$:/config/shortcuts/save-wiki",
            "text": "ctrl-S"
        },
        "$:/config/shortcuts/stamp": {
            "title": "$:/config/shortcuts/stamp",
            "text": "ctrl-S"
        },
        "$:/config/shortcuts/strikethrough": {
            "title": "$:/config/shortcuts/strikethrough",
            "text": "ctrl-T"
        },
        "$:/config/shortcuts/subscript": {
            "title": "$:/config/shortcuts/subscript",
            "text": "ctrl-shift-B"
        },
        "$:/config/shortcuts/superscript": {
            "title": "$:/config/shortcuts/superscript",
            "text": "ctrl-shift-P"
        },
        "$:/config/shortcuts/toggle-sidebar": {
            "title": "$:/config/shortcuts/toggle-sidebar",
            "text": "alt-shift-S"
        },
        "$:/config/shortcuts/transcludify": {
            "title": "$:/config/shortcuts/transcludify",
            "text": "alt-shift-T"
        },
        "$:/config/ui/EditTemplate": {
            "title": "$:/config/ui/EditTemplate",
            "text": "$:/core/ui/EditTemplate"
        },
        "$:/config/ui/ViewTemplate": {
            "title": "$:/config/ui/ViewTemplate",
            "text": "$:/core/ui/ViewTemplate"
        },
        "$:/config/WikiParserRules/Inline/wikilink": {
            "title": "$:/config/WikiParserRules/Inline/wikilink",
            "text": "enable"
        },
        "$:/snippets/currpalettepreview": {
            "title": "$:/snippets/currpalettepreview",
            "text": "\\define resolve-colour(macrocall)\n\\import $:/core/macros/utils\n\\whitespace trim\n<$wikify name=\"name\" text=\"\"\"$macrocall$\"\"\">\n<<name>>\n</$wikify>\n\\end\n\\define swatchStyle()\nbackground-color: $(swatchColour)$;\n\\end\n\\define swatch-inner()\n<$set name=\"swatchColour\" value={{##$(colourResolved)$}}>\n<$list filter=\"[<swatchColour>!prefix[<<colour ]!suffix[>>]]\" variable=\"ignore\">\n<div class=\"tc-swatch\" style=<<swatchStyle>> title=<<swatchTitle>>/>\n</$list>\n<$list filter=\"[<swatchColour>prefix[<<colour ]suffix[>>]]\" variable=\"ignore\">\n<$wikify name=\"colourResolved\" text=\"\"\"<$macrocall $name=\"resolve-colour\" macrocall=<<swatchColour>>/>\"\"\">\n<<swatch-inner>>\n</$wikify>\n</$list>\n</$set>\n\\end\n\\define swatch()\n<$set name=\"swatchColour\" value={{##$(colour)$}}>\n<$set name=\"swatchTitle\" value=<<colour>>>\n<$list filter=\"[<swatchColour>!prefix[<<colour ]!suffix[>>]]\" variable=\"ignore\">\n<div class=\"tc-swatch\" style=<<swatchStyle>> title=<<swatchTitle>>/>\n</$list>\n<$list filter=\"[<swatchColour>prefix[<<colour ]suffix[>>]]\" variable=\"ignore\">\n<$wikify name=\"colourResolved\" text=\"\"\"<$macrocall $name=\"resolve-colour\" macrocall=<<swatchColour>>/>\"\"\">\n<<swatch-inner>>\n</$wikify>\n</$list>\n</$set>\n</$set>\n\\end\n<div class=\"tc-swatches-horiz\"><$list filter=\"\nforeground\nbackground\nmuted-foreground\nprimary\npage-background\ntab-background\ntiddler-info-background\n\" variable=\"colour\"><<swatch>></$list></div>\n"
        },
        "$:/snippets/download-wiki-button": {
            "title": "$:/snippets/download-wiki-button",
            "text": "\\define lingo-base() $:/language/ControlPanel/Tools/Download/\n<$button class=\"tc-btn-big-green\">\n<$action-sendmessage $message=\"tm-download-file\" $param=\"$:/core/save/all\" filename=\"index.html\"/>\n<<lingo Full/Caption>> {{$:/core/images/save-button}}\n</$button>"
        },
        "$:/language": {
            "title": "$:/language",
            "text": "$:/languages/en-GB"
        },
        "$:/snippets/languageswitcher": {
            "title": "$:/snippets/languageswitcher",
            "text": "\\define flag-title()\n$(languagePluginTitle)$/icon\n\\end\n\n<$linkcatcher to=\"$:/language\">\n<div class=\"tc-chooser tc-language-chooser\">\n<$list filter=\"[[$:/languages/en-GB]] [plugin-type[language]sort[description]]\">\n<$set name=\"cls\" filter=\"[all[current]field:title{$:/language}]\" value=\"tc-chooser-item tc-chosen\" emptyValue=\"tc-chooser-item\"><div class=<<cls>>>\n<$link>\n<span class=\"tc-image-button\">\n<$set name=\"languagePluginTitle\" value=<<currentTiddler>>>\n<$transclude subtiddler=<<flag-title>>>\n<$list filter=\"[all[current]field:title[$:/languages/en-GB]]\">\n<$transclude tiddler=\"$:/languages/en-GB/icon\"/>\n</$list>\n</$transclude>\n</$set>\n</span>\n<$view field=\"description\">\n<$view field=\"name\">\n<$view field=\"title\"/>\n</$view>\n</$view>\n</$link>\n</div>\n</$set>\n</$list>\n</div>\n</$linkcatcher>"
        },
        "$:/core/macros/CSS": {
            "title": "$:/core/macros/CSS",
            "tags": "$:/tags/Macro",
            "text": "\\define colour(name)\n<$transclude tiddler={{$:/palette}} index=\"$name$\"><$transclude tiddler=\"$:/palettes/Vanilla\" index=\"$name$\"><$transclude tiddler=\"$:/config/DefaultColourMappings/$name$\"/></$transclude></$transclude>\n\\end\n\n\\define color(name)\n<<colour $name$>>\n\\end\n\n\\define box-shadow(shadow)\n``\n  -webkit-box-shadow: $shadow$;\n     -moz-box-shadow: $shadow$;\n          box-shadow: $shadow$;\n``\n\\end\n\n\\define filter(filter)\n``\n  -webkit-filter: $filter$;\n     -moz-filter: $filter$;\n          filter: $filter$;\n``\n\\end\n\n\\define transition(transition)\n``\n  -webkit-transition: $transition$;\n     -moz-transition: $transition$;\n          transition: $transition$;\n``\n\\end\n\n\\define transform-origin(origin)\n``\n  -webkit-transform-origin: $origin$;\n     -moz-transform-origin: $origin$;\n          transform-origin: $origin$;\n``\n\\end\n\n\\define background-linear-gradient(gradient)\n``\nbackground-image: linear-gradient($gradient$);\nbackground-image: -o-linear-gradient($gradient$);\nbackground-image: -moz-linear-gradient($gradient$);\nbackground-image: -webkit-linear-gradient($gradient$);\nbackground-image: -ms-linear-gradient($gradient$);\n``\n\\end\n\n\\define column-count(columns)\n``\n-moz-column-count: $columns$;\n-webkit-column-count: $columns$;\ncolumn-count: $columns$;\n``\n\\end\n\n\\define datauri(title)\n<$macrocall $name=\"makedatauri\" type={{$title$!!type}} text={{$title$}} _canonical_uri={{$title$!!_canonical_uri}}/>\n\\end\n\n\\define if-sidebar(text)\n<$reveal state=\"$:/state/sidebar\" type=\"match\" text=\"yes\" default=\"yes\">$text$</$reveal>\n\\end\n\n\\define if-no-sidebar(text)\n<$reveal state=\"$:/state/sidebar\" type=\"nomatch\" text=\"yes\" default=\"yes\">$text$</$reveal>\n\\end\n\n\\define if-background-attachment(text)\n<$reveal state=\"$:/themes/tiddlywiki/vanilla/settings/backgroundimage\" type=\"nomatch\" text=\"\">$text$</$reveal>\n\\end\n"
        },
        "$:/core/macros/colour-picker": {
            "title": "$:/core/macros/colour-picker",
            "tags": "$:/tags/Macro",
            "text": "\\define colour-picker-update-recent()\n<$action-listops\n\t$tiddler=\"$:/config/ColourPicker/Recent\"\n\t$subfilter=\"$(colour-picker-value)$ [list[$:/config/ColourPicker/Recent]remove[$(colour-picker-value)$]] +[limit[8]]\"\n/>\n\\end\n\n\\define colour-picker-inner(actions)\n<$button tag=\"a\" tooltip=\"\"\"$(colour-picker-value)$\"\"\">\n\n$(colour-picker-update-recent)$\n\n$actions$\n\n<span style=\"display:inline-block; background-color: $(colour-picker-value)$; width: 100%; height: 100%; border-radius: 50%;\"/>\n\n</$button>\n\\end\n\n\\define colour-picker-recent-inner(actions)\n<$set name=\"colour-picker-value\" value=\"$(recentColour)$\">\n<$macrocall $name=\"colour-picker-inner\" actions=\"\"\"$actions$\"\"\"/>\n</$set>\n\\end\n\n\\define colour-picker-recent(actions)\n{{$:/language/ColourPicker/Recent}} <$list filter=\"[list[$:/config/ColourPicker/Recent]]\" variable=\"recentColour\">\n<$macrocall $name=\"colour-picker-recent-inner\" actions=\"\"\"$actions$\"\"\"/></$list>\n\\end\n\n\\define colour-picker(actions)\n<div class=\"tc-colour-chooser\">\n\n<$macrocall $name=\"colour-picker-recent\" actions=\"\"\"$actions$\"\"\"/>\n\n---\n\n<$list filter=\"LightPink Pink Crimson LavenderBlush PaleVioletRed HotPink DeepPink MediumVioletRed Orchid Thistle Plum Violet Magenta Fuchsia DarkMagenta Purple MediumOrchid DarkViolet DarkOrchid Indigo BlueViolet MediumPurple MediumSlateBlue SlateBlue DarkSlateBlue Lavender GhostWhite Blue MediumBlue MidnightBlue DarkBlue Navy RoyalBlue CornflowerBlue LightSteelBlue LightSlateGrey SlateGrey DodgerBlue AliceBlue SteelBlue LightSkyBlue SkyBlue DeepSkyBlue LightBlue PowderBlue CadetBlue Azure LightCyan PaleTurquoise Cyan Aqua DarkTurquoise DarkSlateGrey DarkCyan Teal MediumTurquoise LightSeaGreen Turquoise Aquamarine MediumAquamarine MediumSpringGreen MintCream SpringGreen MediumSeaGreen SeaGreen Honeydew LightGreen PaleGreen DarkSeaGreen LimeGreen Lime ForestGreen Green DarkGreen Chartreuse LawnGreen GreenYellow DarkOliveGreen YellowGreen OliveDrab Beige LightGoldenrodYellow Ivory LightYellow Yellow Olive DarkKhaki LemonChiffon PaleGoldenrod Khaki Gold Cornsilk Goldenrod DarkGoldenrod FloralWhite OldLace Wheat Moccasin Orange PapayaWhip BlanchedAlmond NavajoWhite AntiqueWhite Tan BurlyWood Bisque DarkOrange Linen Peru PeachPuff SandyBrown Chocolate SaddleBrown Seashell Sienna LightSalmon Coral OrangeRed DarkSalmon Tomato MistyRose Salmon Snow LightCoral RosyBrown IndianRed Red Brown FireBrick DarkRed Maroon White WhiteSmoke Gainsboro LightGrey Silver DarkGrey Grey DimGrey Black\" variable=\"colour-picker-value\">\n<$macrocall $name=\"colour-picker-inner\" actions=\"\"\"$actions$\"\"\"/>\n</$list>\n\n---\n\n<$edit-text tiddler=\"$:/config/ColourPicker/New\" tag=\"input\" default=\"\" placeholder=\"\"/>\n<$edit-text tiddler=\"$:/config/ColourPicker/New\" type=\"color\" tag=\"input\"/>\n<$set name=\"colour-picker-value\" value={{$:/config/ColourPicker/New}}>\n<$macrocall $name=\"colour-picker-inner\" actions=\"\"\"$actions$\"\"\"/>\n</$set>\n\n</div>\n\n\\end\n"
        },
        "$:/core/macros/copy-to-clipboard": {
            "title": "$:/core/macros/copy-to-clipboard",
            "tags": "$:/tags/Macro",
            "text": "\\define copy-to-clipboard(src,class:\"tc-btn-invisible\",style)\n<$button class=<<__class__>> style=<<__style__>> message=\"tm-copy-to-clipboard\" param=<<__src__>> tooltip={{$:/language/Buttons/CopyToClipboard/Hint}}>\n{{$:/core/images/copy-clipboard}} <$text text={{$:/language/Buttons/CopyToClipboard/Caption}}/>\n</$button>\n\\end\n\n\\define copy-to-clipboard-above-right(src,class:\"tc-btn-invisible\",style)\n<div style=\"position: relative;\">\n<div style=\"position: absolute; bottom: 0; right: 0;\">\n<$macrocall $name=\"copy-to-clipboard\" src=<<__src__>> class=<<__class__>> style=<<__style__>>/>\n</div>\n</div>\n\\end\n\n"
        },
        "$:/core/macros/diff": {
            "title": "$:/core/macros/diff",
            "tags": "$:/tags/Macro",
            "text": "\\define compareTiddlerText(sourceTiddlerTitle,sourceSubTiddlerTitle,destTiddlerTitle,destSubTiddlerTitle)\n<$set name=\"source\" tiddler=<<__sourceTiddlerTitle__>> subtiddler=<<__sourceSubTiddlerTitle__>>>\n<$set name=\"dest\" tiddler=<<__destTiddlerTitle__>> subtiddler=<<__destSubTiddlerTitle__>>>\n<$diff-text source=<<source>> dest=<<dest>>/>\n</$set>\n</$set>\n\\end\n\n\\define compareTiddlers(sourceTiddlerTitle,sourceSubTiddlerTitle,destTiddlerTitle,destSubTiddlerTitle,exclude)\n<table class=\"tc-diff-tiddlers\">\n<tbody>\n<$set name=\"sourceFields\" filter=\"[<__sourceTiddlerTitle__>fields[]sort[]]\">\n<$set name=\"destFields\" filter=\"[<__destSubTiddlerTitle__>subtiddlerfields<__destTiddlerTitle__>sort[]]\">\n<$list filter=\"[enlist<sourceFields>] [enlist<destFields>] -[enlist<__exclude__>] +[sort[]]\" variable=\"fieldName\">\n<tr>\n<th>\n<$text text=<<fieldName>>/> \n</th>\n<td>\n<$set name=\"source\" tiddler=<<__sourceTiddlerTitle__>> subtiddler=<<__sourceSubTiddlerTitle__>> field=<<fieldName>>>\n<$set name=\"dest\" tiddler=<<__destTiddlerTitle__>> subtiddler=<<__destSubTiddlerTitle__>> field=<<fieldName>>>\n<$diff-text source=<<source>> dest=<<dest>>>\n</$diff-text>\n</$set>\n</$set>\n</td>\n</tr>\n</$list>\n</$set>\n</$set>\n</tbody>\n</table>\n\\end\n"
        },
        "$:/core/macros/dumpvariables": {
            "title": "$:/core/macros/dumpvariables",
            "tags": "$:/tags/Macro",
            "text": "\\define dumpvariables()\n<ul>\n<$list filter=\"[variables[]]\" variable=\"varname\">\n<li>\n<strong><code><$text text=<<varname>>/></code></strong>:<br/>\n<$codeblock code={{{ [<varname>getvariable[]] }}}/>\n</li>\n</$list>\n</ul>\n\\end\n"
        },
        "$:/core/macros/export": {
            "title": "$:/core/macros/export",
            "tags": "$:/tags/Macro",
            "text": "\\define exportButtonFilename(baseFilename)\n$baseFilename$$(extension)$\n\\end\n\n\\define exportButton(exportFilter:\"[!is[system]sort[title]]\",lingoBase,baseFilename:\"tiddlers\")\n<span class=\"tc-popup-keep\"><$button popup=<<qualify \"$:/state/popup/export\">> tooltip={{$lingoBase$Hint}} aria-label={{$lingoBase$Caption}} class=<<tv-config-toolbar-class>> selectedClass=\"tc-selected\">\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/export-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$lingoBase$Caption}}/></span>\n</$list>\n</$button></span><$reveal state=<<qualify \"$:/state/popup/export\">> type=\"popup\" position=\"below\" animate=\"yes\">\n<div class=\"tc-drop-down\">\n<$set name=\"count\" value={{{ [subfilter<__exportFilter__>count[]] }}}>\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/Exporter]]\">\n<$list filter=\"[<currentTiddler>has[condition]subfilter{!!condition}limit[1]] ~[<currentTiddler>!has[condition]then[true]]\" variable=\"ignore\">\n<$set name=\"extension\" value={{!!extension}}>\n<$button class=\"tc-btn-invisible\">\n<$action-sendmessage $message=\"tm-download-file\" $param=<<currentTiddler>> exportFilter=<<__exportFilter__>> filename=<<exportButtonFilename \"\"\"$baseFilename$\"\"\">>/>\n<$action-deletetiddler $tiddler=<<qualify \"$:/state/popup/export\">>/>\n<$transclude field=\"description\"/>\n</$button>\n</$set>\n</$list>\n</$list>\n</$set>\n</div>\n</$reveal>\n\\end\n"
        },
        "$:/core/macros/image-picker": {
            "title": "$:/core/macros/image-picker",
            "created": "20170715180840889",
            "modified": "20170715180914005",
            "tags": "$:/tags/Macro",
            "type": "text/vnd.tiddlywiki",
            "text": "\\define image-picker-thumbnail(actions)\n<$button tag=\"a\" tooltip=\"\"\"$(imageTitle)$\"\"\">\n$actions$\n<$transclude tiddler=<<imageTitle>>/>\n</$button>\n\\end\n\n\\define image-picker-list(filter,actions)\n<$list filter=\"\"\"$filter$\"\"\" variable=\"imageTitle\">\n<$macrocall $name=\"image-picker-thumbnail\" actions=\"\"\"$actions$\"\"\"/>\n</$list>\n\\end\n\n\\define image-picker(actions,filter:\"[all[shadows+tiddlers]is[image]] -[type[application/pdf]] +[!has[draft.of]$subfilter$sort[title]]\",subfilter:\"\")\n<div class=\"tc-image-chooser\">\n<$vars state-system=<<qualify \"$:/state/image-picker/system\">>>\n<$checkbox tiddler=<<state-system>> field=\"text\" checked=\"show\" unchecked=\"hide\" default=\"hide\">\n{{$:/language/SystemTiddlers/Include/Prompt}}\n</$checkbox>\n<$reveal state=<<state-system>> type=\"match\" text=\"hide\" default=\"hide\" tag=\"div\">\n<$macrocall $name=\"image-picker-list\" filter=\"\"\"$filter$ +[!is[system]]\"\"\" actions=\"\"\"$actions$\"\"\"/>\n</$reveal>\n<$reveal state=<<state-system>> type=\"nomatch\" text=\"hide\" default=\"hide\" tag=\"div\">\n<$macrocall $name=\"image-picker-list\" filter=\"\"\"$filter$\"\"\" actions=\"\"\"$actions$\"\"\"/>\n</$reveal>\n</$vars>\n</div>\n\\end\n\n\\define image-picker-include-tagged-images(actions)\n<$macrocall $name=\"image-picker\" filter=\"[all[shadows+tiddlers]is[image]] [all[shadows+tiddlers]tag[$:/tags/Image]] -[type[application/pdf]] +[!has[draft.of]sort[title]]\" actions=\"\"\"$actions$\"\"\"/>\n\\end\n"
        },
        "$:/core/macros/keyboard-driven-input": {
            "title": "$:/core/macros/keyboard-driven-input",
            "tags": "$:/tags/Macro",
            "text": "\\define change-input-tab(stateTitle,tag,beforeafter,defaultState,actions)\n<$set name=\"tabsList\" filter=\"[all[shadows+tiddlers]tag<__tag__>!has[draft.of]]\">\n<$vars currentState={{{ [<__stateTitle__>!is[missing]get[text]] ~[<__defaultState__>] }}} firstTab={{{ [enlist<tabsList>nth[1]] }}} lastTab={{{ [enlist<tabsList>last[]] }}}>\n<$set name=\"nextTab\" value={{{ [all[shadows+tiddlers]tag<__tag__>!has[draft.of]$beforeafter$<currentState>] ~[[$beforeafter$]removeprefix[after]suffix[]addprefix<firstTab>] ~[[$beforeafter$]removeprefix[before]suffix[]addprefix<lastTab>] }}}>\n<$action-setfield $tiddler=<<__stateTitle__>> text=<<nextTab>>/>\n$actions$\n</$set>\n</$vars>\n</$set>\n\\end\n\n\\define keyboard-input-actions()\n<$list filter=\"[<__index__>match[]]\">\n<$action-setfield $tiddler=<<__storeTitle__>> text={{{ [<__tiddler__>get<__field__>] }}}/>\n</$list>\n<$list filter=\"[<__index__>!match[]]\">\n<$action-setfield $tiddler=<<__storeTitle__>> text={{{ [<__tiddler__>getindex<__index__>] }}}/>\n</$list>\n\\end\n\n\\define input-next-actions-inner()\n<$list filter=\"[<nextItem>minlength[1]]\" variable=\"ignore\">\n<$action-setfield $tiddler=<<__selectionStateTitle__>> text=<<nextItem>>/>\n<$list filter=\"[<__index__>match[]]\">\n<$action-setfield $tiddler=<<__tiddler__>> $field=<<__field__>> $value={{{ [<nextItem>] +[splitregexp[(?:.(?!-))+$]] }}}/>\n</$list>\n<$list filter=\"[<__index__>!match[]]\">\n<$action-setfield $tiddler=<<__tiddler__>> $index=<<__index__>> $value={{{ [<nextItem>] +[splitregexp[(?:.(?!-))+$]] }}}/>\n</$list>\n<$action-setfield $tiddler=<<__refreshTitle__>> text=\"yes\"/>\n</$list>\n\\end\n\n\\define input-next-actions(afterOrBefore:\"after\",reverse:\"\")\n<$list filter=\"[<__storeTitle__>get[text]minlength<__filterMinLength__>] [<__filterMinLength__>match[0]] +[limit[1]]\" variable=\"ignore\">\n<$vars userInput={{{ [<__storeTitle__>get[text]] }}} selectedItem={{{ [<__selectionStateTitle__>get[text]] }}}>\n<$set name=\"configTiddler\" value={{{ [subfilter<__configTiddlerFilter__>] }}}>\n<$vars primaryListFilter={{{ [<configTiddler>get<__firstSearchFilterField__>] }}} secondaryListFilter={{{ [<configTiddler>get<__secondSearchFilterField__>] }}}>\n<$set name=\"filteredList\" filter=\"[subfilter<primaryListFilter>addsuffix[-primaryList]] =[subfilter<secondaryListFilter>addsuffix[-secondaryList]]\">\n<$vars nextItem={{{ [enlist<filteredList>$afterOrBefore$<selectedItem>] ~[enlist<filteredList>$reverse$nth[1]] }}} firstItem={{{ [enlist<filteredList>nth[1]] }}} lastItem={{{ [enlist<filteredList>last[]] }}}>\n<$list filter=\"[<selectedItem>match<firstItem>!match<lastItem>]\" variable=\"ignore\">\n<$set name=\"nextItem\" value={{{ [[$afterOrBefore$]match[before]then<userInput>addsuffix[-userInput]] ~[<nextItem>] }}}>\n<<input-next-actions-inner>>\n</$set>\n</$list>\n<$list filter=\"[<selectedItem>match<lastItem>!match<firstItem>]\" variable=\"ignore\">\n<$set name=\"nextItem\" value={{{ [[$afterOrBefore$]match[after]then<userInput>addsuffix[-userInput]] ~[<nextItem>] }}}>\n<<input-next-actions-inner>>\n</$set>\n</$list>\n<$list filter=\"[<selectedItem>match<firstItem>match<lastItem>]\" variable=\"ignore\">\n<$set name=\"nextItem\" value={{{ [<userInput>addsuffix[-userInput]] }}}>\n<<input-next-actions-inner>>\n</$set>\n</$list>\n<$list filter=\"[<selectedItem>!match<firstItem>!match<lastItem>]\" variable=\"ignore\">\n<<input-next-actions-inner>>\n</$list>\n</$vars>\n</$set>\n</$vars>\n</$set>\n</$vars>\n</$list>\n\\end\n\n\\define keyboard-driven-input(tiddler,storeTitle,field:\"text\",index:\"\",tag:\"input\",type,focus:\"\",inputAcceptActions,inputAcceptVariantActions,inputCancelActions,placeholder:\"\",default:\"\",class,focusPopup,rows,minHeight,tabindex,size,autoHeight,filterMinLength:\"0\",refreshTitle,selectionStateTitle,cancelPopups:\"\",configTiddlerFilter,firstSearchFilterField:\"first-search-filter\",secondSearchFilterField:\"second-search-filter\")\n\\whitespace trim\n<$keyboard key=\"((input-accept))\" actions=<<__inputAcceptActions__>>>\n<$keyboard key=\"((input-accept-variant))\" actions=<<__inputAcceptVariantActions__>>>\n<$keyboard key=\"((input-up))\" actions=<<input-next-actions \"before\" \"reverse[]\">>>\n<$keyboard key=\"((input-down))\" actions=<<input-next-actions>>>\n<$keyboard key=\"((input-cancel))\" actions=<<__inputCancelActions__>>>\n<$edit-text tiddler=<<__tiddler__>> field=<<__field__>> index=<<__index__>> \n\t\tinputActions=<<keyboard-input-actions>> tag=<<__tag__>> class=<<__class__>> \n\t\tplaceholder=<<__placeholder__>> default=<<__default__>> focusPopup=<<__focusPopup__>> \n\t\tfocus=<<__focus__>> type=<<__type__>> rows=<<__rows__>> minHeight=<<__minHeight__>> \n\t\ttabindex=<<__tabindex__>> size=<<__size__>> autoHeight=<<__autoHeight__>> \n\t\trefreshTitle=<<__refreshTitle__>> cancelPopups=<<__cancelPopups__>>/>\n</$keyboard>\n</$keyboard>\n</$keyboard>\n</$keyboard>\n</$keyboard>\n\\end\n"
        },
        "$:/core/macros/lingo": {
            "title": "$:/core/macros/lingo",
            "tags": "$:/tags/Macro",
            "text": "\\define lingo-base()\n$:/language/\n\\end\n\n\\define lingo(title)\n{{$(lingo-base)$$title$}}\n\\end\n"
        },
        "$:/core/macros/list": {
            "title": "$:/core/macros/list",
            "tags": "$:/tags/Macro",
            "text": "\\define list-links(filter,type:\"ul\",subtype:\"li\",class:\"\",emptyMessage)\n\\whitespace trim\n<$type$ class=\"$class$\">\n<$list filter=\"$filter$\" emptyMessage=<<__emptyMessage__>>>\n<$subtype$>\n<$link to={{!!title}}>\n<$transclude field=\"caption\">\n<$view field=\"title\"/>\n</$transclude>\n</$link>\n</$subtype$>\n</$list>\n</$type$>\n\\end\n\n\\define list-links-draggable-drop-actions()\n<$action-listops $tiddler=<<targetTiddler>> $field=<<targetField>> $subfilter=\"+[insertbefore:currentTiddler<actionTiddler>]\"/>\n\\end\n\n\\define list-links-draggable(tiddler,field:\"list\",type:\"ul\",subtype:\"li\",class:\"\",itemTemplate)\n\\whitespace trim\n<span class=\"tc-links-draggable-list\">\n<$vars targetTiddler=\"\"\"$tiddler$\"\"\" targetField=\"\"\"$field$\"\"\">\n<$type$ class=\"$class$\">\n<$list filter=\"[list[$tiddler$!!$field$]]\">\n<$droppable actions=<<list-links-draggable-drop-actions>> tag=\"\"\"$subtype$\"\"\" enable=<<tv-enable-drag-and-drop>>>\n<div class=\"tc-droppable-placeholder\"/>\n<div>\n<$transclude tiddler=\"\"\"$itemTemplate$\"\"\">\n<$link to={{!!title}}>\n<$transclude field=\"caption\">\n<$view field=\"title\"/>\n</$transclude>\n</$link>\n</$transclude>\n</div>\n</$droppable>\n</$list>\n<$tiddler tiddler=\"\">\n<$droppable actions=<<list-links-draggable-drop-actions>> tag=\"div\" enable=<<tv-enable-drag-and-drop>>>\n<div class=\"tc-droppable-placeholder\">\n{{$:/core/images/blank}}\n</div>\n<div style=\"height:0.5em;\"/>\n</$droppable>\n</$tiddler>\n</$type$>\n</$vars>\n</span>\n\\end\n\n\\define list-tagged-draggable-drop-actions(tag)\n<!-- Save the current ordering of the tiddlers with this tag -->\n<$set name=\"order\" filter=\"[<__tag__>tagging[]]\">\n<!-- Remove any list-after or list-before fields from the tiddlers with this tag -->\n<$list filter=\"[<__tag__>tagging[]]\">\n<$action-deletefield $field=\"list-before\"/>\n<$action-deletefield $field=\"list-after\"/>\n</$list>\n<!-- Save the new order to the Tag Tiddler -->\n<$action-listops $tiddler=<<__tag__>> $field=\"list\" $filter=\"+[enlist<order>] +[insertbefore:currentTiddler<actionTiddler>]\"/>\n<!-- Make sure the newly added item has the right tag -->\n<!-- Removing this line makes dragging tags within the dropdown work as intended -->\n<!--<$action-listops $tiddler=<<actionTiddler>> $tags=<<__tag__>>/>-->\n<!-- Using the following 5 lines as replacement makes dragging titles from outside into the dropdown apply the tag -->\n<$list filter=\"[<actionTiddler>!contains:tags<__tag__>]\">\n<$fieldmangler tiddler=<<actionTiddler>>>\n<$action-sendmessage $message=\"tm-add-tag\" $param=<<__tag__>>/>\n</$fieldmangler>\n</$list>\n</$set>\n\\end\n\n\\define list-tagged-draggable(tag,subFilter,emptyMessage,itemTemplate,elementTag:\"div\",storyview:\"\")\n\\whitespace trim\n<span class=\"tc-tagged-draggable-list\">\n<$set name=\"tag\" value=<<__tag__>>>\n<$list filter=\"[<__tag__>tagging[]$subFilter$]\" emptyMessage=<<__emptyMessage__>> storyview=<<__storyview__>>>\n<$elementTag$ class=\"tc-menu-list-item\">\n<$droppable actions=\"\"\"<$macrocall $name=\"list-tagged-draggable-drop-actions\" tag=<<__tag__>>/>\"\"\" enable=<<tv-enable-drag-and-drop>>>\n<$elementTag$ class=\"tc-droppable-placeholder\"/>\n<$elementTag$>\n<$transclude tiddler=\"\"\"$itemTemplate$\"\"\">\n<$link to={{!!title}}>\n<$view field=\"title\"/>\n</$link>\n</$transclude>\n</$elementTag$>\n</$droppable>\n</$elementTag$>\n</$list>\n<$tiddler tiddler=\"\">\n<$droppable actions=\"\"\"<$macrocall $name=\"list-tagged-draggable-drop-actions\" tag=<<__tag__>>/>\"\"\" enable=<<tv-enable-drag-and-drop>>>\n<$elementTag$ class=\"tc-droppable-placeholder\"/>\n<$elementTag$ style=\"height:0.5em;\">\n</$elementTag$>\n</$droppable>\n</$tiddler>\n</$set>\n</span>\n\\end\n"
        },
        "$:/core/macros/tabs": {
            "title": "$:/core/macros/tabs",
            "tags": "$:/tags/Macro",
            "text": "\\define tabs(tabsList,default,state:\"$:/state/tab\",class,template,buttonTemplate,retain,actions,explicitState)\n<$set name=\"qualifiedState\" value=<<qualify \"$state$\">>>\n<$vars tabsState={{{ [<__explicitState__>minlength[1]] ~[<qualifiedState>] }}}>\n<div class=\"tc-tab-set $class$\">\n<div class=\"tc-tab-buttons $class$\">\n<$list filter=\"$tabsList$\" variable=\"currentTab\" storyview=\"pop\"><$set name=\"save-currentTiddler\" value=<<currentTiddler>>><$tiddler tiddler=<<currentTab>>><$button set=<<tabsState>> setTo=<<currentTab>> default=\"$default$\" selectedClass=\"tc-tab-selected\" tooltip={{!!tooltip}}>\n<$tiddler tiddler=<<save-currentTiddler>>>\n<$set name=\"tv-wikilinks\" value=\"no\">\n<$transclude tiddler=\"$buttonTemplate$\" mode=\"inline\">\n<$transclude tiddler=<<currentTab>> field=\"caption\">\n<$macrocall $name=\"currentTab\" $type=\"text/plain\" $output=\"text/plain\"/>\n</$transclude>\n</$transclude>\n</$set></$tiddler>$actions$</$button></$tiddler></$set></$list>\n</div>\n<div class=\"tc-tab-divider $class$\"/>\n<div class=\"tc-tab-content $class$\">\n<$list filter=\"$tabsList$\" variable=\"currentTab\">\n\n<$reveal type=\"match\" state=<<tabsState>> text=<<currentTab>> default=\"$default$\" retain=\"\"\"$retain$\"\"\">\n\n<$transclude tiddler=\"$template$\" mode=\"block\">\n\n<$transclude tiddler=<<currentTab>> mode=\"block\"/>\n\n</$transclude>\n\n</$reveal>\n\n</$list>\n</div>\n</div>\n</$vars>\n</$set>\n\\end\n"
        },
        "$:/core/macros/tag-picker": {
            "title": "$:/core/macros/tag-picker",
            "tags": "$:/tags/Macro",
            "first-search-filter": "[tags[]!is[system]search:title<userInput>sort[]]",
            "second-search-filter": "[tags[]is[system]search:title<userInput>sort[]]",
            "text": "\\define get-tagpicker-focus-selector() [data-tiddler-title=\"$(currentTiddlerCSSEscaped)$\"] .tc-add-tag-name input\n\n\\define delete-tag-state-tiddlers() <$action-deletetiddler $filter=\"[<newTagNameTiddler>] [<storeTitle>] [<tagSelectionState>]\"/>\n\n\\define add-tag-actions(actions,tagField:\"tags\")\n<$set name=\"tag\" value={{{ [<__tiddler__>get[text]] }}}>\n<$list filter=\"[<saveTiddler>!contains:$tagField$<tag>!match[]]\" variable=\"ignore\" emptyMessage=\"\"\"\n<$action-listops $tiddler=<<saveTiddler>> $field=<<__tagField__>> $subfilter=\"-[<tag>]\"/>\n\"\"\">\n<$action-listops $tiddler=<<saveTiddler>> $field=<<__tagField__>> $subfilter=\"[<tag>]\"/>\n$actions$\n</$list>\n</$set>\n<<delete-tag-state-tiddlers>>\n<$action-setfield $tiddler=<<refreshTitle>> text=\"yes\"/>\n\\end\n\n\\define clear-tags-actions-inner()\n<$list filter=\"[<storeTitle>has[text]] [<newTagNameTiddler>has[text]]\" variable=\"ignore\" emptyMessage=\"\"\"<<cancel-delete-tiddler-actions \"cancel\">>\"\"\">\n<<delete-tag-state-tiddlers>>\n</$list>\n\\end\n\n\\define clear-tags-actions()\n<$set name=\"userInput\" value={{{ [<storeTitle>get[text]] }}}>\n<$list filter=\"[<newTagNameTiddler>get[text]!match<userInput>]\" emptyMessage=\"\"\"<<clear-tags-actions-inner>>\"\"\">\n<$action-setfield $tiddler=<<newTagNameTiddler>> text=<<userInput>>/><$action-setfield $tiddler=<<refreshTitle>> text=\"yes\"/>\n</$list>\n</$set>\n\\end\n\n\\define tag-picker-inner(actions,tagField:\"tags\")\n\\whitespace trim\n<$vars newTagNameInputTiddlerQualified=<<qualify \"$:/temp/NewTagName/input\">> newTagNameSelectionTiddlerQualified=<<qualify \"$:/temp/NewTagName/selected-item\">> fallbackTarget={{$(palette)$##tag-background}} colourA={{$(palette)$##foreground}} colourB={{$(palette)$##background}}>\n<$vars storeTitle={{{ [<newTagNameInputTiddler>!match[]] ~[<newTagNameInputTiddlerQualified>] }}} tagSelectionState={{{ [<newTagNameSelectionTiddler>!match[]] ~[<newTagNameSelectionTiddlerQualified>] }}}>\n<$vars refreshTitle=<<qualify \"$:/temp/NewTagName/refresh\">> nonSystemTagsFilter=\"[tags[]!is[system]search:title<userInput>sort[]]\" systemTagsFilter=\"[tags[]is[system]search:title<userInput>sort[]]\">\n<div class=\"tc-edit-add-tag\">\n<div>\n<span class=\"tc-add-tag-name tc-small-gap-right\">\n<$macrocall $name=\"keyboard-driven-input\" tiddler=<<newTagNameTiddler>> storeTitle=<<storeTitle>> refreshTitle=<<refreshTitle>>\n\t\tselectionStateTitle=<<tagSelectionState>> inputAcceptActions=\"\"\"<$macrocall $name=\"add-tag-actions\" actions=<<__actions__>> tagField=<<__tagField__>>/>\"\"\"\n\t\tinputCancelActions=<<clear-tags-actions>> tag=\"input\" placeholder={{$:/language/EditTemplate/Tags/Add/Placeholder}}\n\t\tfocusPopup=<<qualify \"$:/state/popup/tags-auto-complete\">> class=\"tc-edit-texteditor tc-popup-handle\" tabindex=<<tabIndex>> \n\t\tfocus={{{ [{$:/config/AutoFocus}match[tags]then[true]] ~[[false]] }}} filterMinLength={{$:/config/Tags/MinLength}} \n\t\tcancelPopups=<<cancelPopups>> configTiddlerFilter=\"[[$:/core/macros/tag-picker]]\"/>\n</span><$button popup=<<qualify \"$:/state/popup/tags-auto-complete\">> class=\"tc-btn-invisible tc-btn-dropdown\" tooltip={{$:/language/EditTemplate/Tags/Dropdown/Hint}} aria-label={{$:/language/EditTemplate/Tags/Dropdown/Caption}}>{{$:/core/images/down-arrow}}</$button><$reveal state=<<storeTitle>> type=\"nomatch\" text=\"\"><$button class=\"tc-btn-invisible tc-small-gap tc-btn-dropdown\" tooltip={{$:/language/EditTemplate/Tags/ClearInput/Hint}} aria-label={{$:/language/EditTemplate/Tags/ClearInput/Caption}}>{{$:/core/images/close-button}}<<delete-tag-state-tiddlers>></$button></$reveal><span class=\"tc-add-tag-button tc-small-gap-left\">\n<$set name=\"tag\" value={{{ [<newTagNameTiddler>get[text]] }}}>\n<$button set=<<newTagNameTiddler>> setTo=\"\" class=\"\">\n<$action-listops $tiddler=<<saveTiddler>> $field=<<__tagField__>> $subfilter=\"[<tag>]\"/>\n$actions$\n<$set name=\"currentTiddlerCSSEscaped\" value={{{ [<saveTiddler>escapecss[]] }}}>\n<<delete-tag-state-tiddlers>><$action-sendmessage $message=\"tm-focus-selector\" $param=<<get-tagpicker-focus-selector>>/>\n</$set>\n{{$:/language/EditTemplate/Tags/Add/Button}}\n</$button>\n</$set>\n</span>\n</div>\n<div class=\"tc-block-dropdown-wrapper\">\n<$reveal state=<<qualify \"$:/state/popup/tags-auto-complete\">> type=\"nomatch\" text=\"\" default=\"\">\n<div class=\"tc-block-dropdown tc-block-tags-dropdown\">\n<$set name=\"userInput\" value={{{ [<storeTitle>get[text]] }}}>\n<$list filter=\"[<userInput>minlength{$:/config/Tags/MinLength}limit[1]]\" emptyMessage=\"\"\"<div class=\"tc-search-results\">{{$:/language/Search/Search/TooShort}}</div>\"\"\" variable=\"listItem\">\n<$list filter=<<nonSystemTagsFilter>> variable=\"tag\">\n<$list filter=\"[<tag>addsuffix[-primaryList]] -[<tagSelectionState>get[text]]\" emptyMessage=\"\"\"<$vars button-classes=\"tc-btn-invisible tc-tag-button-selected\" actions=<<__actions__>> tagField=<<__tagField__>> currentTiddler=<<tag>>>{{||$:/core/ui/TagPickerTagTemplate}}</$vars>\"\"\">\n<$vars button-classes=\"tc-btn-invisible\" actions=<<__actions__>> tagField=<<__tagField__>> currentTiddler=<<tag>>>{{||$:/core/ui/TagPickerTagTemplate}}</$vars>\n</$list>\n</$list></$list>\n<hr>\n<$list filter=\"[<userInput>minlength{$:/config/Tags/MinLength}limit[1]]\" emptyMessage=\"\"\"<div class=\"tc-search-results\">{{$:/language/Search/Search/TooShort}}</div>\"\"\" variable=\"listItem\">\n<$list filter=<<systemTagsFilter>> variable=\"tag\">\n<$list filter=\"[<tag>addsuffix[-secondaryList]] -[<tagSelectionState>get[text]]\" emptyMessage=\"\"\"<$vars button-classes=\"tc-btn-invisible tc-tag-button-selected\" actions=<<__actions__>> tagField=<<__tagField__>> currentTiddler=<<tag>>>{{||$:/core/ui/TagPickerTagTemplate}}</$vars>\"\"\">\n<$vars button-classes=\"tc-btn-invisible\" actions=<<__actions__>> tagField=<<__tagField__>> currentTiddler=<<tag>>>{{||$:/core/ui/TagPickerTagTemplate}}</$vars>\n</$list>\n</$list></$list>\n</$set>\n</div>\n</$reveal>\n</div>\n</div>\n</$vars>\n</$vars>\n</$vars>\n\\end\n\\define tag-picker(actions,tagField:\"tags\")\n\\whitespace trim\n<$vars saveTiddler=<<currentTiddler>> palette={{$:/palette}}>\n<$list filter=\"[<newTagNameTiddler>match[]]\" emptyMessage=\"\"\"<$macrocall $name=\"tag-picker-inner\" actions=<<__actions__>> tagField=<<__tagField__>>/>\"\"\">\n<$set name=\"newTagNameTiddler\" value=<<qualify \"$:/temp/NewTagName\">>>\n<$macrocall $name=\"tag-picker-inner\" actions=<<__actions__>> tagField=<<__tagField__>>/>\n</$set>\n</$list>\n</$vars>\n\\end\n"
        },
        "$:/core/macros/tag": {
            "title": "$:/core/macros/tag",
            "tags": "$:/tags/Macro",
            "text": "\\define tag-pill-styles()\nbackground-color:$(backgroundColor)$;\nfill:$(foregroundColor)$;\ncolor:$(foregroundColor)$;\n\\end\n\n\\define tag-pill-inner(tag,icon,colour,fallbackTarget,colourA,colourB,element-tag,element-attributes,actions)\n<$vars foregroundColor=<<contrastcolour target:\"\"\"$colour$\"\"\" fallbackTarget:\"\"\"$fallbackTarget$\"\"\" colourA:\"\"\"$colourA$\"\"\" colourB:\"\"\"$colourB$\"\"\">> backgroundColor=\"\"\"$colour$\"\"\">\n<$element-tag$ $element-attributes$ class=\"tc-tag-label tc-btn-invisible\" style=<<tag-pill-styles>>>\n$actions$<$transclude tiddler=\"\"\"$icon$\"\"\"/><$view tiddler=<<__tag__>> field=\"title\" format=\"text\" />\n</$element-tag$>\n</$vars>\n\\end\n\n\\define tag-pill-body(tag,icon,colour,palette,element-tag,element-attributes,actions)\n<$macrocall $name=\"tag-pill-inner\" tag=<<__tag__>> icon=\"\"\"$icon$\"\"\" colour=\"\"\"$colour$\"\"\" fallbackTarget={{$palette$##tag-background}} colourA={{$palette$##foreground}} colourB={{$palette$##background}} element-tag=\"\"\"$element-tag$\"\"\" element-attributes=\"\"\"$element-attributes$\"\"\" actions=\"\"\"$actions$\"\"\"/>\n\\end\n\n\\define tag-pill(tag,element-tag:\"span\",element-attributes:\"\",actions:\"\")\n<span class=\"tc-tag-list-item\">\n<$macrocall $name=\"tag-pill-body\" tag=<<__tag__>> icon={{{ [<__tag__>get[icon]] }}} colour={{{ [<__tag__>get[color]] }}} palette={{$:/palette}} element-tag=\"\"\"$element-tag$\"\"\" element-attributes=\"\"\"$element-attributes$\"\"\" actions=\"\"\"$actions$\"\"\"/>\n</span>\n\\end\n\n\\define tag(tag)\n{{$tag$||$:/core/ui/TagTemplate}}\n\\end\n"
        },
        "$:/core/macros/thumbnails": {
            "title": "$:/core/macros/thumbnails",
            "tags": "$:/tags/Macro",
            "text": "\\define thumbnail(link,icon,color,background-color,image,caption,width:\"280\",height:\"157\")\n<$link to=\"\"\"$link$\"\"\"><div class=\"tc-thumbnail-wrapper\">\n<div class=\"tc-thumbnail-image\" style=\"width:$width$px;height:$height$px;\"><$reveal type=\"nomatch\" text=\"\" default=\"\"\"$image$\"\"\" tag=\"div\" style=\"width:$width$px;height:$height$px;\">\n[img[$image$]]\n</$reveal><$reveal type=\"match\" text=\"\" default=\"\"\"$image$\"\"\" tag=\"div\" class=\"tc-thumbnail-background\" style=\"width:$width$px;height:$height$px;background-color:$background-color$;\"></$reveal></div><div class=\"tc-thumbnail-icon\" style=\"fill:$color$;color:$color$;\">\n$icon$\n</div><div class=\"tc-thumbnail-caption\">\n$caption$\n</div>\n</div></$link>\n\\end\n\n\\define thumbnail-right(link,icon,color,background-color,image,caption,width:\"280\",height:\"157\")\n<div class=\"tc-thumbnail-right-wrapper\"><<thumbnail \"\"\"$link$\"\"\" \"\"\"$icon$\"\"\" \"\"\"$color$\"\"\" \"\"\"$background-color$\"\"\" \"\"\"$image$\"\"\" \"\"\"$caption$\"\"\" \"\"\"$width$\"\"\" \"\"\"$height$\"\"\">></div>\n\\end\n\n\\define list-thumbnails(filter,width:\"280\",height:\"157\")\n<$list filter=\"\"\"$filter$\"\"\"><$macrocall $name=\"thumbnail\" link={{!!link}} icon={{!!icon}} color={{!!color}} background-color={{!!background-color}} image={{!!image}} caption={{!!caption}} width=\"\"\"$width$\"\"\" height=\"\"\"$height$\"\"\"/></$list>\n\\end\n"
        },
        "$:/core/macros/timeline": {
            "title": "$:/core/macros/timeline",
            "created": "20141212105914482",
            "modified": "20141212110330815",
            "tags": "$:/tags/Macro",
            "text": "\\define timeline-title()\n\\whitespace trim\n<!-- Override this macro with a global macro \n     of the same name if you need to change \n     how titles are displayed on the timeline \n     -->\n<$view field=\"title\"/>\n\\end\n\\define timeline(limit:\"100\",format:\"DDth MMM YYYY\",subfilter:\"\",dateField:\"modified\")\n<div class=\"tc-timeline\">\n<$list filter=\"[!is[system]$subfilter$has[$dateField$]!sort[$dateField$]limit[$limit$]eachday[$dateField$]]\">\n<div class=\"tc-menu-list-item\">\n<$view field=\"$dateField$\" format=\"date\" template=\"$format$\"/>\n<$list filter=\"[sameday:$dateField${!!$dateField$}!is[system]$subfilter$!sort[$dateField$]]\">\n<div class=\"tc-menu-list-subitem\">\n<$link to={{!!title}}><<timeline-title>></$link>\n</div>\n</$list>\n</div>\n</$list>\n</div>\n\\end\n"
        },
        "$:/core/macros/toc": {
            "title": "$:/core/macros/toc",
            "tags": "$:/tags/Macro",
            "text": "\\define toc-caption()\n<$set name=\"tv-wikilinks\" value=\"no\">\n  <$transclude field=\"caption\">\n    <$view field=\"title\"/>\n  </$transclude>\n</$set>\n\\end\n\n\\define toc-body(tag,sort:\"\",itemClassFilter,exclude,path)\n<ol class=\"tc-toc\">\n  <$list filter=\"\"\"[all[shadows+tiddlers]tag<__tag__>!has[draft.of]$sort$] -[<__tag__>] -[enlist<__exclude__>]\"\"\">\n    <$vars item=<<currentTiddler>> path={{{ [<__path__>addsuffix[/]addsuffix<__tag__>] }}}>\n      <$set name=\"excluded\" filter=\"\"\"[enlist<__exclude__>] [<__tag__>]\"\"\">\n        <$set name=\"toc-item-class\" filter=<<__itemClassFilter__>> emptyValue=\"toc-item-selected\" value=\"toc-item\">\n          <li class=<<toc-item-class>>>\n            <$list filter=\"[all[current]toc-link[no]]\" emptyMessage=\"<$link to={{{ [<currentTiddler>get[target]else<currentTiddler>] }}}><$view field='caption'><$view field='title'/></$view></$link>\">\n              <<toc-caption>>\n            </$list>\n            <$macrocall $name=\"toc-body\" tag=<<item>> sort=<<__sort__>> itemClassFilter=<<__itemClassFilter__>> exclude=<<excluded>> path=<<path>>/>\n          </li>\n        </$set>\n      </$set>\n    </$vars>\n  </$list>\n</ol>\n\\end\n\n\\define toc(tag,sort:\"\",itemClassFilter:\"\")\n<$macrocall $name=\"toc-body\"  tag=<<__tag__>> sort=<<__sort__>> itemClassFilter=<<__itemClassFilter__>> />\n\\end\n\n\\define toc-linked-expandable-body(tag,sort:\"\",itemClassFilter,exclude,path)\n<!-- helper function -->\n<$qualify name=\"toc-state\" title={{{ [[$:/state/toc]addsuffix<__path__>addsuffix[-]addsuffix<currentTiddler>] }}}>\n  <$set name=\"toc-item-class\" filter=<<__itemClassFilter__>> emptyValue=\"toc-item-selected\" value=\"toc-item\">\n    <li class=<<toc-item-class>>>\n    <$link to={{{ [<currentTiddler>get[target]else<currentTiddler>] }}}>\n      <$reveal type=\"nomatch\" stateTitle=<<toc-state>> text=\"open\">\n        <$button setTitle=<<toc-state>> setTo=\"open\" class=\"tc-btn-invisible tc-popup-keep\">\n          {{$:/core/images/right-arrow}}\n        </$button>\n      </$reveal>\n      <$reveal type=\"match\" stateTitle=<<toc-state>> text=\"open\">\n        <$button setTitle=<<toc-state>> setTo=\"close\" class=\"tc-btn-invisible tc-popup-keep\">\n          {{$:/core/images/down-arrow}}\n        </$button>\n      </$reveal>\n      <<toc-caption>>\n    </$link>\n    <$reveal type=\"match\" stateTitle=<<toc-state>> text=\"open\">\n      <$macrocall $name=\"toc-expandable\" tag=<<currentTiddler>> sort=<<__sort__>> itemClassFilter=<<__itemClassFilter__>> exclude=<<__exclude__>> path=<<__path__>>/>\n    </$reveal>\n    </li>\n  </$set>\n</$qualify>\n\\end\n\n\\define toc-unlinked-expandable-body(tag,sort:\"\",itemClassFilter,exclude,path)\n<!-- helper function -->\n<$qualify name=\"toc-state\" title={{{ [[$:/state/toc]addsuffix<__path__>addsuffix[-]addsuffix<currentTiddler>] }}}>\n  <$set name=\"toc-item-class\" filter=<<__itemClassFilter__>> emptyValue=\"toc-item-selected\" value=\"toc-item\">\n    <li class=<<toc-item-class>>>\n      <$reveal type=\"nomatch\" stateTitle=<<toc-state>> text=\"open\">\n        <$button setTitle=<<toc-state>> setTo=\"open\" class=\"tc-btn-invisible tc-popup-keep\">\n          {{$:/core/images/right-arrow}}\n          <<toc-caption>>\n        </$button>\n      </$reveal>\n      <$reveal type=\"match\" stateTitle=<<toc-state>> text=\"open\">\n        <$button setTitle=<<toc-state>> setTo=\"close\" class=\"tc-btn-invisible tc-popup-keep\">\n          {{$:/core/images/down-arrow}}\n          <<toc-caption>>\n        </$button>\n      </$reveal>\n      <$reveal type=\"match\" stateTitle=<<toc-state>> text=\"open\">\n        <$macrocall $name=\"toc-expandable\" tag=<<currentTiddler>> sort=<<__sort__>> itemClassFilter=<<__itemClassFilter__>> exclude=<<__exclude__>> path=<<__path__>>/>\n      </$reveal>\n    </li>\n  </$set>\n</$qualify>\n\\end\n\n\\define toc-expandable-empty-message()\n<$macrocall $name=\"toc-linked-expandable-body\" tag=<<tag>> sort=<<sort>> itemClassFilter=<<itemClassFilter>> exclude=<<excluded>> path=<<path>>/>\n\\end\n\n\\define toc-expandable(tag,sort:\"\",itemClassFilter:\"\",exclude,path)\n<$vars tag=<<__tag__>> sort=<<__sort__>> itemClassFilter=<<__itemClassFilter__>> path={{{ [<__path__>addsuffix[/]addsuffix<__tag__>] }}}>\n  <$set name=\"excluded\" filter=\"\"\"[enlist<__exclude__>] [<__tag__>]\"\"\">\n    <ol class=\"tc-toc toc-expandable\">\n      <$list filter=\"\"\"[all[shadows+tiddlers]tag<__tag__>!has[draft.of]$sort$] -[<__tag__>] -[enlist<__exclude__>]\"\"\">\n        <$list filter=\"[all[current]toc-link[no]]\" emptyMessage=<<toc-expandable-empty-message>> >\n          <$macrocall $name=\"toc-unlinked-expandable-body\" tag=<<__tag__>> sort=<<__sort__>> itemClassFilter=\"\"\"itemClassFilter\"\"\" exclude=<<excluded>> path=<<path>> />\n        </$list>\n      </$list>\n    </ol>\n  </$set>\n</$vars>\n\\end\n\n\\define toc-linked-selective-expandable-body(tag,sort:\"\",itemClassFilter,exclude,path)\n<$qualify name=\"toc-state\" title={{{ [[$:/state/toc]addsuffix<__path__>addsuffix[-]addsuffix<currentTiddler>] }}}>\n  <$set name=\"toc-item-class\" filter=<<__itemClassFilter__>> emptyValue=\"toc-item-selected\" value=\"toc-item\" >\n    <li class=<<toc-item-class>>>\n      <$link to={{{ [<currentTiddler>get[target]else<currentTiddler>] }}}>\n          <$list filter=\"[all[current]tagging[]$sort$limit[1]]\" variable=\"ignore\" emptyMessage=\"<$button class='tc-btn-invisible'>{{$:/core/images/blank}}</$button>\">\n          <$reveal type=\"nomatch\" stateTitle=<<toc-state>> text=\"open\">\n            <$button setTitle=<<toc-state>> setTo=\"open\" class=\"tc-btn-invisible tc-popup-keep\">\n              {{$:/core/images/right-arrow}}\n            </$button>\n          </$reveal>\n          <$reveal type=\"match\" stateTitle=<<toc-state>> text=\"open\">\n            <$button setTitle=<<toc-state>> setTo=\"close\" class=\"tc-btn-invisible tc-popup-keep\">\n              {{$:/core/images/down-arrow}}\n            </$button>\n          </$reveal>\n        </$list>\n        <<toc-caption>>\n      </$link>\n      <$reveal type=\"match\" stateTitle=<<toc-state>> text=\"open\">\n        <$macrocall $name=\"toc-selective-expandable\" tag=<<currentTiddler>> sort=<<__sort__>> itemClassFilter=<<__itemClassFilter__>> exclude=<<__exclude__>> path=<<__path__>>/>\n      </$reveal>\n    </li>\n  </$set>\n</$qualify>\n\\end\n\n\\define toc-unlinked-selective-expandable-body(tag,sort:\"\",itemClassFilter,exclude,path)\n<$qualify name=\"toc-state\" title={{{ [[$:/state/toc]addsuffix<__path__>addsuffix[-]addsuffix<currentTiddler>] }}}>\n  <$set name=\"toc-item-class\" filter=<<__itemClassFilter__>> emptyValue=\"toc-item-selected\" value=\"toc-item\">\n    <li class=<<toc-item-class>>>\n      <$list filter=\"[all[current]tagging[]$sort$limit[1]]\" variable=\"ignore\" emptyMessage=\"<$button class='tc-btn-invisible'>{{$:/core/images/blank}}</$button> <$view field='caption'><$view field='title'/></$view>\">\n        <$reveal type=\"nomatch\" stateTitle=<<toc-state>> text=\"open\">\n          <$button setTitle=<<toc-state>> setTo=\"open\" class=\"tc-btn-invisible tc-popup-keep\">\n            {{$:/core/images/right-arrow}}\n            <<toc-caption>>\n          </$button>\n        </$reveal>\n        <$reveal type=\"match\" stateTitle=<<toc-state>> text=\"open\">\n          <$button setTitle=<<toc-state>> setTo=\"close\" class=\"tc-btn-invisible tc-popup-keep\">\n            {{$:/core/images/down-arrow}}\n            <<toc-caption>>\n          </$button>\n        </$reveal>\n      </$list>\n      <$reveal type=\"match\" stateTitle=<<toc-state>> text=\"open\">\n        <$macrocall $name=\"toc-selective-expandable\" tag=<<currentTiddler>> sort=<<__sort__>> itemClassFilter=<<__itemClassFilter__>> exclude=<<__exclude__>> path=<<__path__>>/>\n      </$reveal>\n    </li>\n  </$set>\n</$qualify>\n\\end\n\n\\define toc-selective-expandable-empty-message()\n<$macrocall $name=\"toc-linked-selective-expandable-body\" tag=<<tag>> sort=<<sort>> itemClassFilter=<<itemClassFilter>> exclude=<<excluded>> path=<<path>>/>\n\\end\n\n\\define toc-selective-expandable(tag,sort:\"\",itemClassFilter,exclude,path)\n<$vars tag=<<__tag__>> sort=<<__sort__>> itemClassFilter=<<__itemClassFilter__>> path={{{ [<__path__>addsuffix[/]addsuffix<__tag__>] }}}>\n  <$set name=\"excluded\" filter=\"\"\"[enlist<__exclude__>] [<__tag__>]\"\"\">\n    <ol class=\"tc-toc toc-selective-expandable\">\n      <$list filter=\"\"\"[all[shadows+tiddlers]tag<__tag__>!has[draft.of]$sort$] -[<__tag__>] -[enlist<__exclude__>]\"\"\">\n        <$list filter=\"[all[current]toc-link[no]]\" variable=\"ignore\" emptyMessage=<<toc-selective-expandable-empty-message>> >\n          <$macrocall $name=\"toc-unlinked-selective-expandable-body\" tag=<<__tag__>> sort=<<__sort__>> itemClassFilter=<<__itemClassFilter__>> exclude=<<excluded>> path=<<path>>/>\n        </$list>\n      </$list>\n    </ol>\n  </$set>\n</$vars>\n\\end\n\n\\define toc-tabbed-external-nav(tag,sort:\"\",selectedTiddler:\"$:/temp/toc/selectedTiddler\",unselectedText,missingText,template:\"\")\n<$tiddler tiddler={{{ [<__selectedTiddler__>get[text]] }}}>\n  <div class=\"tc-tabbed-table-of-contents\">\n    <$linkcatcher to=<<__selectedTiddler__>>>\n      <div class=\"tc-table-of-contents\">\n        <$macrocall $name=\"toc-selective-expandable\" tag=<<__tag__>> sort=<<__sort__>> itemClassFilter=\"[all[current]] -[<__selectedTiddler__>get[text]]\"/>\n      </div>\n    </$linkcatcher>\n    <div class=\"tc-tabbed-table-of-contents-content\">\n      <$reveal stateTitle=<<__selectedTiddler__>> type=\"nomatch\" text=\"\">\n        <$transclude mode=\"block\" tiddler=<<__template__>>>\n          <h1><<toc-caption>></h1>\n          <$transclude mode=\"block\">$missingText$</$transclude>\n        </$transclude>\n      </$reveal>\n      <$reveal stateTitle=<<__selectedTiddler__>> type=\"match\" text=\"\">\n        $unselectedText$\n      </$reveal>\n    </div>\n  </div>\n</$tiddler>\n\\end\n\n\\define toc-tabbed-internal-nav(tag,sort:\"\",selectedTiddler:\"$:/temp/toc/selectedTiddler\",unselectedText,missingText,template:\"\")\n<$linkcatcher to=<<__selectedTiddler__>>>\n  <$macrocall $name=\"toc-tabbed-external-nav\" tag=<<__tag__>> sort=<<__sort__>> selectedTiddler=<<__selectedTiddler__>> unselectedText=<<__unselectedText__>> missingText=<<__missingText__>> template=<<__template__>>/>\n</$linkcatcher>\n\\end\n\n"
        },
        "$:/core/macros/translink": {
            "title": "$:/core/macros/translink",
            "tags": "$:/tags/Macro",
            "text": "\\define translink(title,mode:\"block\")\n<div style=\"border:1px solid #ccc; padding: 0.5em; background: black; foreground; white;\">\n<$link to=\"\"\"$title$\"\"\">\n<$text text=\"\"\"$title$\"\"\"/>\n</$link>\n<div style=\"border:1px solid #ccc; padding: 0.5em; background: white; foreground; black;\">\n<$transclude tiddler=\"\"\"$title$\"\"\" mode=\"$mode$\">\n\"<$text text=\"\"\"$title$\"\"\"/>\" is missing\n</$transclude>\n</div>\n</div>\n\\end\n"
        },
        "$:/core/macros/tree": {
            "title": "$:/core/macros/tree",
            "tags": "$:/tags/Macro",
            "text": "\\define leaf-link(full-title,chunk,separator: \"/\")\n<$link to=<<__full-title__>>><$text text=<<__chunk__>>/></$link>\n\\end\n\n\\define leaf-node(prefix,chunk)\n<li>\n<$list filter=\"[<__prefix__>addsuffix<__chunk__>is[shadow]] [<__prefix__>addsuffix<__chunk__>is[tiddler]]\" variable=\"full-title\">\n<$list filter=\"[<full-title>removeprefix<__prefix__>]\" variable=\"chunk\">\n<span>{{$:/core/images/file}}</span> <$macrocall $name=\"leaf-link\" full-title=<<full-title>> chunk=<<chunk>>/>\n</$list>\n</$list>\n</li>\n\\end\n\n\\define branch-node(prefix,chunk,separator: \"/\")\n<li>\n<$set name=\"reveal-state\" value={{{ [[$:/state/tree/]addsuffix<__prefix__>addsuffix<__chunk__>] }}}>\n<$reveal type=\"nomatch\" stateTitle=<<reveal-state>> text=\"show\">\n<$button setTitle=<<reveal-state>> setTo=\"show\" class=\"tc-btn-invisible\">\n{{$:/core/images/folder}} <$text text=<<__chunk__>>/>\n</$button>\n</$reveal>\n<$reveal type=\"match\" stateTitle=<<reveal-state>> text=\"show\">\n<$button setTitle=<<reveal-state>> setTo=\"hide\" class=\"tc-btn-invisible\">\n{{$:/core/images/folder}} <$text text=<<__chunk__>>/>\n</$button>\n</$reveal>\n<span>(<$count filter=\"[all[shadows+tiddlers]removeprefix<__prefix__>removeprefix<__chunk__>] -[<__prefix__>addsuffix<__chunk__>]\"/>)</span>\n<$reveal type=\"match\" stateTitle=<<reveal-state>> text=\"show\">\n<$macrocall $name=\"tree-node\" prefix={{{ [<__prefix__>addsuffix<__chunk__>] }}} separator=<<__separator__>>/>\n</$reveal>\n</$set>\n</li>\n\\end\n\n\\define tree-node(prefix,separator: \"/\")\n<ol>\n<$list filter=\"[all[shadows+tiddlers]removeprefix<__prefix__>splitbefore<__separator__>sort[]!suffix<__separator__>]\" variable=\"chunk\">\n<$macrocall $name=\"leaf-node\" prefix=<<__prefix__>> chunk=<<chunk>> separator=<<__separator__>>/>\n</$list>\n<$list filter=\"[all[shadows+tiddlers]removeprefix<__prefix__>splitbefore<__separator__>sort[]suffix<__separator__>]\" variable=\"chunk\">\n<$macrocall $name=\"branch-node\" prefix=<<__prefix__>> chunk=<<chunk>> separator=<<__separator__>>/>\n</$list>\n</ol>\n\\end\n\n\\define tree(prefix: \"$:/\",separator: \"/\")\n<div class=\"tc-tree\">\n<span><$text text=<<__prefix__>>/></span>\n<div>\n<$macrocall $name=\"tree-node\" prefix=<<__prefix__>> separator=<<__separator__>>/>\n</div>\n</div>\n\\end\n"
        },
        "$:/core/macros/utils": {
            "title": "$:/core/macros/utils",
            "text": "\\define colour(colour)\n$colour$\n\\end\n"
        },
        "$:/snippets/minifocusswitcher": {
            "title": "$:/snippets/minifocusswitcher",
            "text": "<$select tiddler=\"$:/config/AutoFocus\">\n<$list filter=\"title tags text type fields\">\n<option value=<<currentTiddler>>><<currentTiddler>></option>\n</$list>\n</$select>\n"
        },
        "$:/snippets/minilanguageswitcher": {
            "title": "$:/snippets/minilanguageswitcher",
            "text": "<$select tiddler=\"$:/language\">\n<$list filter=\"[[$:/languages/en-GB]] [plugin-type[language]sort[title]]\">\n<option value=<<currentTiddler>>><$view field=\"description\"><$view field=\"name\"><$view field=\"title\"/></$view></$view></option>\n</$list>\n</$select>"
        },
        "$:/snippets/minithemeswitcher": {
            "title": "$:/snippets/minithemeswitcher",
            "text": "\\define lingo-base() $:/language/ControlPanel/Theme/\n<<lingo Prompt>> <$select tiddler=\"$:/theme\">\n<$list filter=\"[plugin-type[theme]sort[title]]\">\n<option value=<<currentTiddler>>><$view field=\"name\"><$view field=\"title\"/></$view></option>\n</$list>\n</$select>"
        },
        "$:/snippets/modules": {
            "title": "$:/snippets/modules",
            "text": "\\define describeModuleType(type)\n{{$:/language/Docs/ModuleTypes/$type$}}\n\\end\n<$list filter=\"[moduletypes[]]\">\n\n!! <$macrocall $name=\"currentTiddler\" $type=\"text/plain\" $output=\"text/plain\"/>\n\n<$macrocall $name=\"describeModuleType\" type=<<currentTiddler>>/>\n\n<ul><$list filter=\"[all[current]modules[]]\"><li><$link><<currentTiddler>></$link>\n</li>\n</$list>\n</ul>\n</$list>\n"
        },
        "$:/palette": {
            "title": "$:/palette",
            "text": "$:/palettes/Vanilla"
        },
        "$:/snippets/paletteeditor": {
            "title": "$:/snippets/paletteeditor",
            "text": "<$transclude tiddler=\"$:/PaletteManager\"/>\n"
        },
        "$:/snippets/palettepreview": {
            "title": "$:/snippets/palettepreview",
            "text": "<$set name=\"currentTiddler\" value={{$:/palette}}>\n{{||$:/snippets/currpalettepreview}}\n</$set>\n"
        },
        "$:/snippets/paletteswitcher": {
            "title": "$:/snippets/paletteswitcher",
            "text": "<$linkcatcher to=\"$:/palette\">\n<div class=\"tc-chooser\"><$list filter=\"[all[shadows+tiddlers]tag[$:/tags/Palette]sort[name]]\"><$set name=\"cls\" filter=\"[all[current]prefix{$:/palette}]\" value=\"tc-chooser-item tc-chosen\" emptyValue=\"tc-chooser-item\"><div class=<<cls>>><$link to={{!!title}}>''<$view field=\"name\" format=\"text\"/>'' - <$view field=\"description\" format=\"text\"/>{{||$:/snippets/currpalettepreview}}</$link>\n</div></$set>\n</$list>\n</div>\n</$linkcatcher>\n"
        },
        "$:/snippets/peek-stylesheets": {
            "title": "$:/snippets/peek-stylesheets",
            "text": "\\define expandable-stylesheets-list()\n<ol>\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/Stylesheet]!has[draft.of]]\">\n<$vars state=<<qualify \"$:/state/peek-stylesheets/open/\">>>\n<$set name=\"state\" value={{{ [<state>addsuffix<currentTiddler>] }}}>\n<li>\n<$reveal type=\"match\" state=<<state>> text=\"yes\" tag=\"span\">\n<$button set=<<state>> setTo=\"no\" class=\"tc-btn-invisible\">\n{{$:/core/images/down-arrow}}\n</$button>\n</$reveal>\n<$reveal type=\"nomatch\" state=<<state>> text=\"yes\" tag=\"span\">\n<$button set=<<state>> setTo=\"yes\" class=\"tc-btn-invisible\">\n{{$:/core/images/right-arrow}}\n</$button>\n</$reveal>\n<$link>\n<$view field=\"title\"/>\n</$link>\n<$reveal type=\"match\" state=<<state>> text=\"yes\" tag=\"div\">\n<$set name=\"source\" tiddler=<<currentTiddler>>>\n<$wikify name=\"styles\" text=<<source>>>\n<pre>\n<code>\n<$text text=<<styles>>/>\n</code>\n</pre>\n</$wikify>\n</$set>\n</$reveal>\n</li>\n</$set>\n</$vars>\n</$list>\n</ol>\n\\end\n\n\\define stylesheets-list()\n<ol>\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/Stylesheet]!has[draft.of]]\">\n<li>\n<$link>\n<$view field=\"title\"/>\n</$link>\n<$set name=\"source\" tiddler=<<currentTiddler>>>\n<$wikify name=\"styles\" text=<<source>>>\n<pre>\n<code>\n<$text text=<<styles>>/>\n</code>\n</pre>\n</$wikify>\n</$set>\n</li>\n</$list>\n</ol>\n\\end\n\n<$vars modeState=<<qualify \"$:/state/peek-stylesheets/mode/\">>>\n\n<$reveal type=\"nomatch\" state=<<modeState>> text=\"expanded\" tag=\"div\">\n<$button set=<<modeState>> setTo=\"expanded\" class=\"tc-btn-invisible\">{{$:/core/images/chevron-right}} {{$:/language/ControlPanel/Stylesheets/Expand/Caption}}</$button>\n</$reveal>\n<$reveal type=\"match\" state=<<modeState>> text=\"expanded\" tag=\"div\">\n<$button set=<<modeState>> setTo=\"restored\" class=\"tc-btn-invisible\">{{$:/core/images/chevron-down}} {{$:/language/ControlPanel/Stylesheets/Restore/Caption}}</$button>\n</$reveal>\n\n<$reveal type=\"nomatch\" state=<<modeState>> text=\"expanded\" tag=\"div\">\n<<expandable-stylesheets-list>>\n</$reveal>\n<$reveal type=\"match\" state=<<modeState>> text=\"expanded\" tag=\"div\">\n<<stylesheets-list>>\n</$reveal>\n\n</$vars>\n"
        },
        "$:/temp/search": {
            "title": "$:/temp/search",
            "text": ""
        },
        "$:/tags/AdvancedSearch": {
            "title": "$:/tags/AdvancedSearch",
            "list": "[[$:/core/ui/AdvancedSearch/Standard]] [[$:/core/ui/AdvancedSearch/System]] [[$:/core/ui/AdvancedSearch/Shadows]] [[$:/core/ui/AdvancedSearch/Filter]]"
        },
        "$:/tags/AdvancedSearch/FilterButton": {
            "title": "$:/tags/AdvancedSearch/FilterButton",
            "list": "$:/core/ui/AdvancedSearch/Filter/FilterButtons/dropdown $:/core/ui/AdvancedSearch/Filter/FilterButtons/clear $:/core/ui/AdvancedSearch/Filter/FilterButtons/export $:/core/ui/AdvancedSearch/Filter/FilterButtons/delete"
        },
        "$:/tags/ControlPanel": {
            "title": "$:/tags/ControlPanel",
            "list": "$:/core/ui/ControlPanel/Info $:/core/ui/ControlPanel/Appearance $:/core/ui/ControlPanel/Settings $:/core/ui/ControlPanel/Saving $:/core/ui/ControlPanel/Plugins $:/core/ui/ControlPanel/Tools $:/core/ui/ControlPanel/Internals"
        },
        "$:/tags/ControlPanel/Info": {
            "title": "$:/tags/ControlPanel/Info",
            "list": "$:/core/ui/ControlPanel/Basics $:/core/ui/ControlPanel/Advanced"
        },
        "$:/tags/ControlPanel/Plugins": {
            "title": "$:/tags/ControlPanel/Plugins",
            "list": "[[$:/core/ui/ControlPanel/Plugins/Installed]] [[$:/core/ui/ControlPanel/Plugins/Add]]"
        },
        "$:/tags/EditTemplate": {
            "title": "$:/tags/EditTemplate",
            "list": "[[$:/core/ui/EditTemplate/controls]] [[$:/core/ui/EditTemplate/title]] [[$:/core/ui/EditTemplate/tags]] [[$:/core/ui/EditTemplate/shadow]] [[$:/core/ui/ViewTemplate/classic]] [[$:/core/ui/EditTemplate/body]] [[$:/core/ui/EditTemplate/type]] [[$:/core/ui/EditTemplate/fields]]"
        },
        "$:/tags/EditToolbar": {
            "title": "$:/tags/EditToolbar",
            "list": "[[$:/core/ui/Buttons/delete]] [[$:/core/ui/Buttons/cancel]] [[$:/core/ui/Buttons/save]]"
        },
        "$:/tags/EditorToolbar": {
            "title": "$:/tags/EditorToolbar",
            "list": "$:/core/ui/EditorToolbar/paint $:/core/ui/EditorToolbar/opacity $:/core/ui/EditorToolbar/line-width $:/core/ui/EditorToolbar/rotate-left $:/core/ui/EditorToolbar/clear $:/core/ui/EditorToolbar/bold $:/core/ui/EditorToolbar/italic $:/core/ui/EditorToolbar/strikethrough $:/core/ui/EditorToolbar/underline $:/core/ui/EditorToolbar/superscript $:/core/ui/EditorToolbar/subscript $:/core/ui/EditorToolbar/mono-line $:/core/ui/EditorToolbar/mono-block $:/core/ui/EditorToolbar/quote $:/core/ui/EditorToolbar/list-bullet $:/core/ui/EditorToolbar/list-number $:/core/ui/EditorToolbar/heading-1 $:/core/ui/EditorToolbar/heading-2 $:/core/ui/EditorToolbar/heading-3 $:/core/ui/EditorToolbar/heading-4 $:/core/ui/EditorToolbar/heading-5 $:/core/ui/EditorToolbar/heading-6 $:/core/ui/EditorToolbar/link $:/core/ui/EditorToolbar/excise $:/core/ui/EditorToolbar/picture $:/core/ui/EditorToolbar/stamp $:/core/ui/EditorToolbar/size $:/core/ui/EditorToolbar/editor-height $:/core/ui/EditorToolbar/more $:/core/ui/EditorToolbar/preview $:/core/ui/EditorToolbar/preview-type"
        },
        "$:/tags/Manager/ItemMain": {
            "title": "$:/tags/Manager/ItemMain",
            "list": "$:/Manager/ItemMain/WikifiedText $:/Manager/ItemMain/RawText $:/Manager/ItemMain/Fields"
        },
        "$:/tags/Manager/ItemSidebar": {
            "title": "$:/tags/Manager/ItemSidebar",
            "list": "$:/Manager/ItemSidebar/Tags $:/Manager/ItemSidebar/Colour $:/Manager/ItemSidebar/Icon $:/Manager/ItemSidebar/Tools"
        },
        "$:/tags/MoreSideBar": {
            "title": "$:/tags/MoreSideBar",
            "list": "[[$:/core/ui/MoreSideBar/All]] [[$:/core/ui/MoreSideBar/Recent]] [[$:/core/ui/MoreSideBar/Tags]] [[$:/core/ui/MoreSideBar/Missing]] [[$:/core/ui/MoreSideBar/Drafts]] [[$:/core/ui/MoreSideBar/Orphans]] [[$:/core/ui/MoreSideBar/Types]] [[$:/core/ui/MoreSideBar/System]] [[$:/core/ui/MoreSideBar/Shadows]] [[$:/core/ui/MoreSideBar/Explorer]] [[$:/core/ui/MoreSideBar/Plugins]]",
            "text": ""
        },
        "$:/tags/PageControls": {
            "title": "$:/tags/PageControls",
            "list": "[[$:/core/ui/Buttons/home]] [[$:/core/ui/Buttons/close-all]] [[$:/core/ui/Buttons/fold-all]] [[$:/core/ui/Buttons/unfold-all]] [[$:/core/ui/Buttons/permaview]] [[$:/core/ui/Buttons/new-tiddler]] [[$:/core/ui/Buttons/new-journal]] [[$:/core/ui/Buttons/new-image]] [[$:/core/ui/Buttons/import]] [[$:/core/ui/Buttons/export-page]] [[$:/core/ui/Buttons/control-panel]] [[$:/core/ui/Buttons/advanced-search]] [[$:/core/ui/Buttons/manager]] [[$:/core/ui/Buttons/tag-manager]] [[$:/core/ui/Buttons/language]] [[$:/core/ui/Buttons/palette]] [[$:/core/ui/Buttons/theme]] [[$:/core/ui/Buttons/storyview]] [[$:/core/ui/Buttons/encryption]] [[$:/core/ui/Buttons/timestamp]] [[$:/core/ui/Buttons/full-screen]] [[$:/core/ui/Buttons/print]] [[$:/core/ui/Buttons/save-wiki]] [[$:/core/ui/Buttons/refresh]] [[$:/core/ui/Buttons/more-page-actions]]"
        },
        "$:/tags/PageTemplate": {
            "title": "$:/tags/PageTemplate",
            "list": "[[$:/core/ui/PageTemplate/topleftbar]] [[$:/core/ui/PageTemplate/toprightbar]] [[$:/core/ui/PageTemplate/sidebar]] [[$:/core/ui/PageTemplate/story]] [[$:/core/ui/PageTemplate/alerts]]",
            "text": ""
        },
        "$:/tags/PluginLibrary": {
            "title": "$:/tags/PluginLibrary",
            "list": "$:/config/OfficialPluginLibrary"
        },
        "$:/tags/SideBar": {
            "title": "$:/tags/SideBar",
            "list": "[[$:/core/ui/SideBar/Open]] [[$:/core/ui/SideBar/Recent]] [[$:/core/ui/SideBar/Tools]] [[$:/core/ui/SideBar/More]]",
            "text": ""
        },
        "$:/tags/SideBarSegment": {
            "title": "$:/tags/SideBarSegment",
            "list": "[[$:/core/ui/SideBarSegments/site-title]] [[$:/core/ui/SideBarSegments/site-subtitle]] [[$:/core/ui/SideBarSegments/page-controls]] [[$:/core/ui/SideBarSegments/search]] [[$:/core/ui/SideBarSegments/tabs]]"
        },
        "$:/tags/TiddlerInfo": {
            "title": "$:/tags/TiddlerInfo",
            "list": "[[$:/core/ui/TiddlerInfo/Tools]] [[$:/core/ui/TiddlerInfo/References]] [[$:/core/ui/TiddlerInfo/Tagging]] [[$:/core/ui/TiddlerInfo/List]] [[$:/core/ui/TiddlerInfo/Listed]] [[$:/core/ui/TiddlerInfo/Fields]]",
            "text": ""
        },
        "$:/tags/TiddlerInfo/Advanced": {
            "title": "$:/tags/TiddlerInfo/Advanced",
            "list": "[[$:/core/ui/TiddlerInfo/Advanced/ShadowInfo]] [[$:/core/ui/TiddlerInfo/Advanced/PluginInfo]]"
        },
        "$:/tags/ViewTemplate": {
            "title": "$:/tags/ViewTemplate",
            "list": "[[$:/core/ui/ViewTemplate/title]] [[$:/core/ui/ViewTemplate/unfold]] [[$:/core/ui/ViewTemplate/subtitle]] [[$:/core/ui/ViewTemplate/tags]] [[$:/core/ui/ViewTemplate/classic]] [[$:/core/ui/ViewTemplate/body]]"
        },
        "$:/tags/ViewToolbar": {
            "title": "$:/tags/ViewToolbar",
            "list": "[[$:/core/ui/Buttons/more-tiddler-actions]] [[$:/core/ui/Buttons/info]] [[$:/core/ui/Buttons/new-here]] [[$:/core/ui/Buttons/new-journal-here]] [[$:/core/ui/Buttons/clone]] [[$:/core/ui/Buttons/export-tiddler]] [[$:/core/ui/Buttons/edit]] [[$:/core/ui/Buttons/delete]] [[$:/core/ui/Buttons/permalink]] [[$:/core/ui/Buttons/permaview]] [[$:/core/ui/Buttons/open-window]] [[$:/core/ui/Buttons/close-others]] [[$:/core/ui/Buttons/close]] [[$:/core/ui/Buttons/fold-others]] [[$:/core/ui/Buttons/fold]]"
        },
        "$:/snippets/themeswitcher": {
            "title": "$:/snippets/themeswitcher",
            "text": "<$linkcatcher to=\"$:/theme\">\n<div class=\"tc-chooser\"><$list filter=\"[plugin-type[theme]sort[title]]\"><$set name=\"cls\" filter=\"[all[current]field:title{$:/theme}] [[$:/theme]!has[text]addsuffix[s/tiddlywiki/vanilla]field:title<currentTiddler>] +[limit[1]]\" value=\"tc-chooser-item tc-chosen\" emptyValue=\"tc-chooser-item\"><div class=<<cls>>><$link to={{!!title}}>''<$view field=\"name\" format=\"text\"/>'' <$view field=\"description\" format=\"text\"/></$link></div>\n</$set>\n</$list>\n</div>\n</$linkcatcher>"
        },
        "$:/core/wiki/title": {
            "title": "$:/core/wiki/title",
            "text": "{{$:/SiteTitle}} --- {{$:/SiteSubtitle}}"
        },
        "$:/view": {
            "title": "$:/view",
            "text": "classic"
        },
        "$:/snippets/viewswitcher": {
            "title": "$:/snippets/viewswitcher",
            "text": "\\define icon()\n$:/core/images/storyview-$(storyview)$\n\\end\n<$linkcatcher to=\"$:/view\">\n<div class=\"tc-chooser tc-viewswitcher\">\n<$list filter=\"[storyviews[]]\" variable=\"storyview\">\n<$set name=\"cls\" filter=\"[<storyview>prefix{$:/view}]\" value=\"tc-chooser-item tc-chosen\" emptyValue=\"tc-chooser-item\"><div class=<<cls>>>\n<$link to=<<storyview>>><$transclude tiddler=<<icon>>/><$text text=<<storyview>>/></$link>\n</div>\n</$set>\n</$list>\n</div>\n</$linkcatcher>"
        }
    }
}
任務
外部連結:總覽
main
index.html
lycsjm/kancolle-wiki
lycsjm
no
$:/languages/zh-TW
遠征 ID
海域 ID
用來指示 tiddler 是否完成的欄位
{
    "tiddlers": {
        "$:/language/Buttons/AdvancedSearch/Caption": {
            "title": "$:/language/Buttons/AdvancedSearch/Caption",
            "text": "進階搜尋"
        },
        "$:/language/Buttons/AdvancedSearch/Hint": {
            "title": "$:/language/Buttons/AdvancedSearch/Hint",
            "text": "進階搜尋"
        },
        "$:/language/Buttons/Cancel/Caption": {
            "title": "$:/language/Buttons/Cancel/Caption",
            "text": "取消"
        },
        "$:/language/Buttons/Cancel/Hint": {
            "title": "$:/language/Buttons/Cancel/Hint",
            "text": "放棄對此條目的更改"
        },
        "$:/language/Buttons/Clone/Caption": {
            "title": "$:/language/Buttons/Clone/Caption",
            "text": "複製"
        },
        "$:/language/Buttons/Clone/Hint": {
            "title": "$:/language/Buttons/Clone/Hint",
            "text": "複製此條目"
        },
        "$:/language/Buttons/Close/Caption": {
            "title": "$:/language/Buttons/Close/Caption",
            "text": "關閉"
        },
        "$:/language/Buttons/Close/Hint": {
            "title": "$:/language/Buttons/Close/Hint",
            "text": "關閉此條目"
        },
        "$:/language/Buttons/CloseAll/Caption": {
            "title": "$:/language/Buttons/CloseAll/Caption",
            "text": "全部關閉"
        },
        "$:/language/Buttons/CloseAll/Hint": {
            "title": "$:/language/Buttons/CloseAll/Hint",
            "text": "關閉所有條目"
        },
        "$:/language/Buttons/CloseOthers/Caption": {
            "title": "$:/language/Buttons/CloseOthers/Caption",
            "text": "關閉其他"
        },
        "$:/language/Buttons/CloseOthers/Hint": {
            "title": "$:/language/Buttons/CloseOthers/Hint",
            "text": "關閉其他條目"
        },
        "$:/language/Buttons/ControlPanel/Caption": {
            "title": "$:/language/Buttons/ControlPanel/Caption",
            "text": "控制台"
        },
        "$:/language/Buttons/ControlPanel/Hint": {
            "title": "$:/language/Buttons/ControlPanel/Hint",
            "text": "開啟控制台"
        },
        "$:/language/Buttons/CopyToClipboard/Caption": {
            "title": "$:/language/Buttons/CopyToClipboard/Caption",
            "text": "複製到剪貼簿"
        },
        "$:/language/Buttons/CopyToClipboard/Hint": {
            "title": "$:/language/Buttons/CopyToClipboard/Hint",
            "text": "將此文字複製到剪貼簿"
        },
        "$:/language/Buttons/Delete/Caption": {
            "title": "$:/language/Buttons/Delete/Caption",
            "text": "刪除"
        },
        "$:/language/Buttons/Delete/Hint": {
            "title": "$:/language/Buttons/Delete/Hint",
            "text": "刪除此條目"
        },
        "$:/language/Buttons/Edit/Caption": {
            "title": "$:/language/Buttons/Edit/Caption",
            "text": "編輯"
        },
        "$:/language/Buttons/Edit/Hint": {
            "title": "$:/language/Buttons/Edit/Hint",
            "text": "編輯此條目"
        },
        "$:/language/Buttons/Encryption/Caption": {
            "title": "$:/language/Buttons/Encryption/Caption",
            "text": "加密"
        },
        "$:/language/Buttons/Encryption/Hint": {
            "title": "$:/language/Buttons/Encryption/Hint",
            "text": "設定或清除儲存此維基的密碼"
        },
        "$:/language/Buttons/Encryption/ClearPassword/Caption": {
            "title": "$:/language/Buttons/Encryption/ClearPassword/Caption",
            "text": "清除密碼"
        },
        "$:/language/Buttons/Encryption/ClearPassword/Hint": {
            "title": "$:/language/Buttons/Encryption/ClearPassword/Hint",
            "text": "清除密碼且不加密儲存此維基"
        },
        "$:/language/Buttons/Encryption/SetPassword/Caption": {
            "title": "$:/language/Buttons/Encryption/SetPassword/Caption",
            "text": "設定密碼"
        },
        "$:/language/Buttons/Encryption/SetPassword/Hint": {
            "title": "$:/language/Buttons/Encryption/SetPassword/Hint",
            "text": "設定加密儲存此維基的密碼"
        },
        "$:/language/Buttons/ExportPage/Caption": {
            "title": "$:/language/Buttons/ExportPage/Caption",
            "text": "導出所有條目"
        },
        "$:/language/Buttons/ExportPage/Hint": {
            "title": "$:/language/Buttons/ExportPage/Hint",
            "text": "導出所有條目"
        },
        "$:/language/Buttons/ExportTiddler/Caption": {
            "title": "$:/language/Buttons/ExportTiddler/Caption",
            "text": "導出此條目"
        },
        "$:/language/Buttons/ExportTiddler/Hint": {
            "title": "$:/language/Buttons/ExportTiddler/Hint",
            "text": "導出此條目"
        },
        "$:/language/Buttons/ExportTiddlers/Caption": {
            "title": "$:/language/Buttons/ExportTiddlers/Caption",
            "text": "導出條目"
        },
        "$:/language/Buttons/ExportTiddlers/Hint": {
            "title": "$:/language/Buttons/ExportTiddlers/Hint",
            "text": "導出條目"
        },
        "$:/language/Buttons/SidebarSearch/Hint": {
            "title": "$:/language/Buttons/SidebarSearch/Hint",
            "text": "選擇側邊欄的搜尋欄位"
        },
        "$:/language/Buttons/Fold/Caption": {
            "title": "$:/language/Buttons/Fold/Caption",
            "text": "收合條目"
        },
        "$:/language/Buttons/Fold/Hint": {
            "title": "$:/language/Buttons/Fold/Hint",
            "text": "收合此條目的內容"
        },
        "$:/language/Buttons/Fold/FoldBar/Caption": {
            "title": "$:/language/Buttons/Fold/FoldBar/Caption",
            "text": "收合條"
        },
        "$:/language/Buttons/Fold/FoldBar/Hint": {
            "title": "$:/language/Buttons/Fold/FoldBar/Hint",
            "text": "可選的收合與展開條目的長條按鈕"
        },
        "$:/language/Buttons/Unfold/Caption": {
            "title": "$:/language/Buttons/Unfold/Caption",
            "text": "展開條目"
        },
        "$:/language/Buttons/Unfold/Hint": {
            "title": "$:/language/Buttons/Unfold/Hint",
            "text": "展開此條目的內容"
        },
        "$:/language/Buttons/FoldOthers/Caption": {
            "title": "$:/language/Buttons/FoldOthers/Caption",
            "text": "收合其他條目"
        },
        "$:/language/Buttons/FoldOthers/Hint": {
            "title": "$:/language/Buttons/FoldOthers/Hint",
            "text": "收合其他已開啟條目的內容"
        },
        "$:/language/Buttons/FoldAll/Caption": {
            "title": "$:/language/Buttons/FoldAll/Caption",
            "text": "收合所有條目"
        },
        "$:/language/Buttons/FoldAll/Hint": {
            "title": "$:/language/Buttons/FoldAll/Hint",
            "text": "收合所有已開啟條目的內容"
        },
        "$:/language/Buttons/UnfoldAll/Caption": {
            "title": "$:/language/Buttons/UnfoldAll/Caption",
            "text": "展開所有條目"
        },
        "$:/language/Buttons/UnfoldAll/Hint": {
            "title": "$:/language/Buttons/UnfoldAll/Hint",
            "text": "展開所有已開啟條目的內容"
        },
        "$:/language/Buttons/FullScreen/Caption": {
            "title": "$:/language/Buttons/FullScreen/Caption",
            "text": "全螢幕"
        },
        "$:/language/Buttons/FullScreen/Hint": {
            "title": "$:/language/Buttons/FullScreen/Hint",
            "text": "進入或離開全螢幕模式"
        },
        "$:/language/Buttons/Help/Caption": {
            "title": "$:/language/Buttons/Help/Caption",
            "text": "說明"
        },
        "$:/language/Buttons/Help/Hint": {
            "title": "$:/language/Buttons/Help/Hint",
            "text": "顯示說明中心"
        },
        "$:/language/Buttons/Home/Caption": {
            "title": "$:/language/Buttons/Home/Caption",
            "text": "首頁"
        },
        "$:/language/Buttons/Home/Hint": {
            "title": "$:/language/Buttons/Home/Hint",
            "text": "開啟首頁條目"
        },
        "$:/language/Buttons/Import/Caption": {
            "title": "$:/language/Buttons/Import/Caption",
            "text": "導入"
        },
        "$:/language/Buttons/Import/Hint": {
            "title": "$:/language/Buttons/Import/Hint",
            "text": "導入許多類型的檔案包括文字、圖像、TiddlyWiki 或 JSON"
        },
        "$:/language/Buttons/Info/Caption": {
            "title": "$:/language/Buttons/Info/Caption",
            "text": "資訊"
        },
        "$:/language/Buttons/Info/Hint": {
            "title": "$:/language/Buttons/Info/Hint",
            "text": "顯示此條目的資訊"
        },
        "$:/language/Buttons/Language/Caption": {
            "title": "$:/language/Buttons/Language/Caption",
            "text": "語言"
        },
        "$:/language/Buttons/Language/Hint": {
            "title": "$:/language/Buttons/Language/Hint",
            "text": "選擇使用者介面語言"
        },
        "$:/language/Buttons/Manager/Caption": {
            "title": "$:/language/Buttons/Manager/Caption",
            "text": "條目管理器"
        },
        "$:/language/Buttons/Manager/Hint": {
            "title": "$:/language/Buttons/Manager/Hint",
            "text": "開啟條目管理器"
        },
        "$:/language/Buttons/More/Caption": {
            "title": "$:/language/Buttons/More/Caption",
            "text": "更多"
        },
        "$:/language/Buttons/More/Hint": {
            "title": "$:/language/Buttons/More/Hint",
            "text": "更多動作"
        },
        "$:/language/Buttons/NewHere/Caption": {
            "title": "$:/language/Buttons/NewHere/Caption",
            "text": "新增子條目"
        },
        "$:/language/Buttons/NewHere/Hint": {
            "title": "$:/language/Buttons/NewHere/Hint",
            "text": "建立一個標籤為此條目名稱的新條目"
        },
        "$:/language/Buttons/NewJournal/Caption": {
            "title": "$:/language/Buttons/NewJournal/Caption",
            "text": "新增日誌"
        },
        "$:/language/Buttons/NewJournal/Hint": {
            "title": "$:/language/Buttons/NewJournal/Hint",
            "text": "建立一個新的日誌條目"
        },
        "$:/language/Buttons/NewJournalHere/Caption": {
            "title": "$:/language/Buttons/NewJournalHere/Caption",
            "text": "新增子日誌"
        },
        "$:/language/Buttons/NewJournalHere/Hint": {
            "title": "$:/language/Buttons/NewJournalHere/Hint",
            "text": "建立一個標籤含此條目名稱的新日誌條目"
        },
        "$:/language/Buttons/NewImage/Caption": {
            "title": "$:/language/Buttons/NewImage/Caption",
            "text": "新增圖像"
        },
        "$:/language/Buttons/NewImage/Hint": {
            "title": "$:/language/Buttons/NewImage/Hint",
            "text": "建立一個新的圖像條目"
        },
        "$:/language/Buttons/NewMarkdown/Caption": {
            "title": "$:/language/Buttons/NewMarkdown/Caption",
            "text": "新增 Markdown 條目"
        },
        "$:/language/Buttons/NewMarkdown/Hint": {
            "title": "$:/language/Buttons/NewMarkdown/Hint",
            "text": "建立一個新的 Markdown 條目"
        },
        "$:/language/Buttons/NewTiddler/Caption": {
            "title": "$:/language/Buttons/NewTiddler/Caption",
            "text": "新增條目"
        },
        "$:/language/Buttons/NewTiddler/Hint": {
            "title": "$:/language/Buttons/NewTiddler/Hint",
            "text": "建立一個新的條目"
        },
        "$:/language/Buttons/OpenWindow/Caption": {
            "title": "$:/language/Buttons/OpenWindow/Caption",
            "text": "開啟於新視窗"
        },
        "$:/language/Buttons/OpenWindow/Hint": {
            "title": "$:/language/Buttons/OpenWindow/Hint",
            "text": "在新視窗中開啟條目"
        },
        "$:/language/Buttons/Palette/Caption": {
            "title": "$:/language/Buttons/Palette/Caption",
            "text": "調色盤"
        },
        "$:/language/Buttons/Palette/Hint": {
            "title": "$:/language/Buttons/Palette/Hint",
            "text": "選擇調色盤"
        },
        "$:/language/Buttons/Permalink/Caption": {
            "title": "$:/language/Buttons/Permalink/Caption",
            "text": "引用連結"
        },
        "$:/language/Buttons/Permalink/Hint": {
            "title": "$:/language/Buttons/Permalink/Hint",
            "text": "設定瀏覽器網址列為直接連結到此條目"
        },
        "$:/language/Buttons/Permaview/Caption": {
            "title": "$:/language/Buttons/Permaview/Caption",
            "text": "固定連結"
        },
        "$:/language/Buttons/Permaview/Hint": {
            "title": "$:/language/Buttons/Permaview/Hint",
            "text": "設定瀏覽器網址列為直接連結到當前所有已開啟條目"
        },
        "$:/language/Buttons/Print/Caption": {
            "title": "$:/language/Buttons/Print/Caption",
            "text": "列印頁面"
        },
        "$:/language/Buttons/Print/Hint": {
            "title": "$:/language/Buttons/Print/Hint",
            "text": "列印當前頁面"
        },
        "$:/language/Buttons/Refresh/Caption": {
            "title": "$:/language/Buttons/Refresh/Caption",
            "text": "重新整理"
        },
        "$:/language/Buttons/Refresh/Hint": {
            "title": "$:/language/Buttons/Refresh/Hint",
            "text": "執行維基的完全刷新"
        },
        "$:/language/Buttons/Save/Caption": {
            "title": "$:/language/Buttons/Save/Caption",
            "text": "確定"
        },
        "$:/language/Buttons/Save/Hint": {
            "title": "$:/language/Buttons/Save/Hint",
            "text": "確定對此條目的更改"
        },
        "$:/language/Buttons/SaveWiki/Caption": {
            "title": "$:/language/Buttons/SaveWiki/Caption",
            "text": "儲存變更"
        },
        "$:/language/Buttons/SaveWiki/Hint": {
            "title": "$:/language/Buttons/SaveWiki/Hint",
            "text": "儲存變更"
        },
        "$:/language/Buttons/StoryView/Caption": {
            "title": "$:/language/Buttons/StoryView/Caption",
            "text": "檢視模式"
        },
        "$:/language/Buttons/StoryView/Hint": {
            "title": "$:/language/Buttons/StoryView/Hint",
            "text": "選擇檢視條目的視覺效果"
        },
        "$:/language/Buttons/HideSideBar/Caption": {
            "title": "$:/language/Buttons/HideSideBar/Caption",
            "text": "隱藏側邊欄"
        },
        "$:/language/Buttons/HideSideBar/Hint": {
            "title": "$:/language/Buttons/HideSideBar/Hint",
            "text": "隱藏側邊欄"
        },
        "$:/language/Buttons/ShowSideBar/Caption": {
            "title": "$:/language/Buttons/ShowSideBar/Caption",
            "text": "顯示側邊欄"
        },
        "$:/language/Buttons/ShowSideBar/Hint": {
            "title": "$:/language/Buttons/ShowSideBar/Hint",
            "text": "顯示側邊欄"
        },
        "$:/language/Buttons/TagManager/Caption": {
            "title": "$:/language/Buttons/TagManager/Caption",
            "text": "標籤管理"
        },
        "$:/language/Buttons/TagManager/Hint": {
            "title": "$:/language/Buttons/TagManager/Hint",
            "text": "標籤管理"
        },
        "$:/language/Buttons/Timestamp/Caption": {
            "title": "$:/language/Buttons/Timestamp/Caption",
            "text": "時間戳記"
        },
        "$:/language/Buttons/Timestamp/Hint": {
            "title": "$:/language/Buttons/Timestamp/Hint",
            "text": "選擇修改是否更新時間戳記"
        },
        "$:/language/Buttons/Timestamp/On/Caption": {
            "title": "$:/language/Buttons/Timestamp/On/Caption",
            "text": "時間戳記開啟"
        },
        "$:/language/Buttons/Timestamp/On/Hint": {
            "title": "$:/language/Buttons/Timestamp/On/Hint",
            "text": "條目被修改時,更新時間戳記"
        },
        "$:/language/Buttons/Timestamp/Off/Caption": {
            "title": "$:/language/Buttons/Timestamp/Off/Caption",
            "text": "時間戳記關閉"
        },
        "$:/language/Buttons/Timestamp/Off/Hint": {
            "title": "$:/language/Buttons/Timestamp/Off/Hint",
            "text": "條目被修改時,不更新時間戳記"
        },
        "$:/language/Buttons/Theme/Caption": {
            "title": "$:/language/Buttons/Theme/Caption",
            "text": "佈景主題"
        },
        "$:/language/Buttons/Theme/Hint": {
            "title": "$:/language/Buttons/Theme/Hint",
            "text": "選擇佈景主題"
        },
        "$:/language/Buttons/Bold/Caption": {
            "title": "$:/language/Buttons/Bold/Caption",
            "text": "粗體"
        },
        "$:/language/Buttons/Bold/Hint": {
            "title": "$:/language/Buttons/Bold/Hint",
            "text": "套用粗體格式於所選文字"
        },
        "$:/language/Buttons/Clear/Caption": {
            "title": "$:/language/Buttons/Clear/Caption",
            "text": "清除"
        },
        "$:/language/Buttons/Clear/Hint": {
            "title": "$:/language/Buttons/Clear/Hint",
            "text": "清除圖像為純色"
        },
        "$:/language/Buttons/EditorHeight/Caption": {
            "title": "$:/language/Buttons/EditorHeight/Caption",
            "text": "編輯器高度"
        },
        "$:/language/Buttons/EditorHeight/Caption/Auto": {
            "title": "$:/language/Buttons/EditorHeight/Caption/Auto",
            "text": "自動調整高度以適合內容"
        },
        "$:/language/Buttons/EditorHeight/Caption/Fixed": {
            "title": "$:/language/Buttons/EditorHeight/Caption/Fixed",
            "text": "固定高度︰"
        },
        "$:/language/Buttons/EditorHeight/Hint": {
            "title": "$:/language/Buttons/EditorHeight/Hint",
            "text": "選擇文字編輯器的高度"
        },
        "$:/language/Buttons/Excise/Caption": {
            "title": "$:/language/Buttons/Excise/Caption",
            "text": "剪切"
        },
        "$:/language/Buttons/Excise/Caption/Excise": {
            "title": "$:/language/Buttons/Excise/Caption/Excise",
            "text": "執行剪切"
        },
        "$:/language/Buttons/Excise/Caption/MacroName": {
            "title": "$:/language/Buttons/Excise/Caption/MacroName",
            "text": "巨集名稱︰"
        },
        "$:/language/Buttons/Excise/Caption/NewTitle": {
            "title": "$:/language/Buttons/Excise/Caption/NewTitle",
            "text": "新條目的名稱︰"
        },
        "$:/language/Buttons/Excise/Caption/Replace": {
            "title": "$:/language/Buttons/Excise/Caption/Replace",
            "text": "替換剪切的文本為:"
        },
        "$:/language/Buttons/Excise/Caption/Replace/Macro": {
            "title": "$:/language/Buttons/Excise/Caption/Replace/Macro",
            "text": "巨集"
        },
        "$:/language/Buttons/Excise/Caption/Replace/Link": {
            "title": "$:/language/Buttons/Excise/Caption/Replace/Link",
            "text": "鏈接"
        },
        "$:/language/Buttons/Excise/Caption/Replace/Transclusion": {
            "title": "$:/language/Buttons/Excise/Caption/Replace/Transclusion",
            "text": "嵌入"
        },
        "$:/language/Buttons/Excise/Caption/Tag": {
            "title": "$:/language/Buttons/Excise/Caption/Tag",
            "text": "將新條目的標籤設為此條目的名稱"
        },
        "$:/language/Buttons/Excise/Caption/TiddlerExists": {
            "title": "$:/language/Buttons/Excise/Caption/TiddlerExists",
            "text": "警示:條目已經存在"
        },
        "$:/language/Buttons/Excise/Hint": {
            "title": "$:/language/Buttons/Excise/Hint",
            "text": "剪切所選文字到一個新條目"
        },
        "$:/language/Buttons/Heading1/Caption": {
            "title": "$:/language/Buttons/Heading1/Caption",
            "text": "標題 1"
        },
        "$:/language/Buttons/Heading1/Hint": {
            "title": "$:/language/Buttons/Heading1/Hint",
            "text": "套用標題級別 1 的格式於包含所選文字的列"
        },
        "$:/language/Buttons/Heading2/Caption": {
            "title": "$:/language/Buttons/Heading2/Caption",
            "text": "標題 2"
        },
        "$:/language/Buttons/Heading2/Hint": {
            "title": "$:/language/Buttons/Heading2/Hint",
            "text": "套用標題級別 2 的格式於包含所選文字的列"
        },
        "$:/language/Buttons/Heading3/Caption": {
            "title": "$:/language/Buttons/Heading3/Caption",
            "text": "標題 3"
        },
        "$:/language/Buttons/Heading3/Hint": {
            "title": "$:/language/Buttons/Heading3/Hint",
            "text": "套用標題級別 3 的格式於包含所選文字的列"
        },
        "$:/language/Buttons/Heading4/Caption": {
            "title": "$:/language/Buttons/Heading4/Caption",
            "text": "標題 4"
        },
        "$:/language/Buttons/Heading4/Hint": {
            "title": "$:/language/Buttons/Heading4/Hint",
            "text": "套用標題級別 4 的格式於包含所選文字的列"
        },
        "$:/language/Buttons/Heading5/Caption": {
            "title": "$:/language/Buttons/Heading5/Caption",
            "text": "標題 5"
        },
        "$:/language/Buttons/Heading5/Hint": {
            "title": "$:/language/Buttons/Heading5/Hint",
            "text": "套用標題級別 5 的格式於包含所選文字的列"
        },
        "$:/language/Buttons/Heading6/Caption": {
            "title": "$:/language/Buttons/Heading6/Caption",
            "text": "標題 6"
        },
        "$:/language/Buttons/Heading6/Hint": {
            "title": "$:/language/Buttons/Heading6/Hint",
            "text": "套用標題級別 6 的格式於包含所選文字的列"
        },
        "$:/language/Buttons/Italic/Caption": {
            "title": "$:/language/Buttons/Italic/Caption",
            "text": "斜體"
        },
        "$:/language/Buttons/Italic/Hint": {
            "title": "$:/language/Buttons/Italic/Hint",
            "text": "套用斜體格式於所選文字"
        },
        "$:/language/Buttons/LineWidth/Caption": {
            "title": "$:/language/Buttons/LineWidth/Caption",
            "text": "線寬"
        },
        "$:/language/Buttons/LineWidth/Hint": {
            "title": "$:/language/Buttons/LineWidth/Hint",
            "text": "設定繪畫的線條寬度"
        },
        "$:/language/Buttons/Link/Caption": {
            "title": "$:/language/Buttons/Link/Caption",
            "text": "鏈接"
        },
        "$:/language/Buttons/Link/Hint": {
            "title": "$:/language/Buttons/Link/Hint",
            "text": "建立維基文字鏈接"
        },
        "$:/language/Buttons/Linkify/Caption": {
            "title": "$:/language/Buttons/Linkify/Caption",
            "text": "維基鏈接"
        },
        "$:/language/Buttons/Linkify/Hint": {
            "title": "$:/language/Buttons/Linkify/Hint",
            "text": "套用維基鏈接於所選文字"
        },
        "$:/language/Buttons/ListBullet/Caption": {
            "title": "$:/language/Buttons/ListBullet/Caption",
            "text": "符號清單"
        },
        "$:/language/Buttons/ListBullet/Hint": {
            "title": "$:/language/Buttons/ListBullet/Hint",
            "text": "套用符號清單格式於包含所選文字的列"
        },
        "$:/language/Buttons/ListNumber/Caption": {
            "title": "$:/language/Buttons/ListNumber/Caption",
            "text": "數字清單"
        },
        "$:/language/Buttons/ListNumber/Hint": {
            "title": "$:/language/Buttons/ListNumber/Hint",
            "text": "套用數字清單格式於包含所選文字的列"
        },
        "$:/language/Buttons/MonoBlock/Caption": {
            "title": "$:/language/Buttons/MonoBlock/Caption",
            "text": "等寬區塊"
        },
        "$:/language/Buttons/MonoBlock/Hint": {
            "title": "$:/language/Buttons/MonoBlock/Hint",
            "text": "套用等寬區塊格式於包含所選文字的列"
        },
        "$:/language/Buttons/MonoLine/Caption": {
            "title": "$:/language/Buttons/MonoLine/Caption",
            "text": "等寬"
        },
        "$:/language/Buttons/MonoLine/Hint": {
            "title": "$:/language/Buttons/MonoLine/Hint",
            "text": "套用等寬字元格式於所選文字"
        },
        "$:/language/Buttons/Opacity/Caption": {
            "title": "$:/language/Buttons/Opacity/Caption",
            "text": "不透明度"
        },
        "$:/language/Buttons/Opacity/Hint": {
            "title": "$:/language/Buttons/Opacity/Hint",
            "text": "設定繪畫的不透明度"
        },
        "$:/language/Buttons/Paint/Caption": {
            "title": "$:/language/Buttons/Paint/Caption",
            "text": "繪畫顏色"
        },
        "$:/language/Buttons/Paint/Hint": {
            "title": "$:/language/Buttons/Paint/Hint",
            "text": "設定繪畫的顏色"
        },
        "$:/language/Buttons/Picture/Caption": {
            "title": "$:/language/Buttons/Picture/Caption",
            "text": "圖片"
        },
        "$:/language/Buttons/Picture/Hint": {
            "title": "$:/language/Buttons/Picture/Hint",
            "text": "插入圖片"
        },
        "$:/language/Buttons/Preview/Caption": {
            "title": "$:/language/Buttons/Preview/Caption",
            "text": "預覽"
        },
        "$:/language/Buttons/Preview/Hint": {
            "title": "$:/language/Buttons/Preview/Hint",
            "text": "顯示預覽窗格"
        },
        "$:/language/Buttons/PreviewType/Caption": {
            "title": "$:/language/Buttons/PreviewType/Caption",
            "text": "預覽類型"
        },
        "$:/language/Buttons/PreviewType/Hint": {
            "title": "$:/language/Buttons/PreviewType/Hint",
            "text": "選擇預覽類型"
        },
        "$:/language/Buttons/Quote/Caption": {
            "title": "$:/language/Buttons/Quote/Caption",
            "text": "引言"
        },
        "$:/language/Buttons/Quote/Hint": {
            "title": "$:/language/Buttons/Quote/Hint",
            "text": "套用引言文字格式於包含所選文字的列"
        },
        "$:/language/Buttons/RotateLeft/Caption": {
            "title": "$:/language/Buttons/RotateLeft/Caption",
            "text": "向左旋轉"
        },
        "$:/language/Buttons/RotateLeft/Hint": {
            "title": "$:/language/Buttons/RotateLeft/Hint",
            "text": "圖像向左旋轉 90 度"
        },
        "$:/language/Buttons/Size/Caption": {
            "title": "$:/language/Buttons/Size/Caption",
            "text": "圖像大小"
        },
        "$:/language/Buttons/Size/Caption/Height": {
            "title": "$:/language/Buttons/Size/Caption/Height",
            "text": "高度︰"
        },
        "$:/language/Buttons/Size/Caption/Resize": {
            "title": "$:/language/Buttons/Size/Caption/Resize",
            "text": "調整圖像的大小"
        },
        "$:/language/Buttons/Size/Caption/Width": {
            "title": "$:/language/Buttons/Size/Caption/Width",
            "text": "寬度:"
        },
        "$:/language/Buttons/Size/Hint": {
            "title": "$:/language/Buttons/Size/Hint",
            "text": "設定圖像的大小"
        },
        "$:/language/Buttons/Stamp/Caption": {
            "title": "$:/language/Buttons/Stamp/Caption",
            "text": "印記"
        },
        "$:/language/Buttons/Stamp/Caption/New": {
            "title": "$:/language/Buttons/Stamp/Caption/New",
            "text": "新增您自己的"
        },
        "$:/language/Buttons/Stamp/Hint": {
            "title": "$:/language/Buttons/Stamp/Hint",
            "text": "插入一個預配置的文字片段"
        },
        "$:/language/Buttons/Stamp/New/Title": {
            "title": "$:/language/Buttons/Stamp/New/Title",
            "text": "在選單中顯示的標題"
        },
        "$:/language/Buttons/Stamp/New/Text": {
            "title": "$:/language/Buttons/Stamp/New/Text",
            "text": "片段的文字。(記得在 `caption` 欄位中新增一個說明性的標題)。"
        },
        "$:/language/Buttons/Strikethrough/Caption": {
            "title": "$:/language/Buttons/Strikethrough/Caption",
            "text": "刪除線"
        },
        "$:/language/Buttons/Strikethrough/Hint": {
            "title": "$:/language/Buttons/Strikethrough/Hint",
            "text": "套用刪除線格式於所選文字"
        },
        "$:/language/Buttons/Subscript/Caption": {
            "title": "$:/language/Buttons/Subscript/Caption",
            "text": "下標"
        },
        "$:/language/Buttons/Subscript/Hint": {
            "title": "$:/language/Buttons/Subscript/Hint",
            "text": "套用下標格式於所選文字"
        },
        "$:/language/Buttons/Superscript/Caption": {
            "title": "$:/language/Buttons/Superscript/Caption",
            "text": "上標"
        },
        "$:/language/Buttons/Superscript/Hint": {
            "title": "$:/language/Buttons/Superscript/Hint",
            "text": "套用上標格式於所選文字"
        },
        "$:/language/Buttons/ToggleSidebar/Hint": {
            "title": "$:/language/Buttons/ToggleSidebar/Hint",
            "text": "切換顯示或隱藏側邊欄"
        },
        "$:/language/Buttons/Transcludify/Caption": {
            "title": "$:/language/Buttons/Transcludify/Caption",
            "text": "嵌入"
        },
        "$:/language/Buttons/Transcludify/Hint": {
            "title": "$:/language/Buttons/Transcludify/Hint",
            "text": "套用嵌入於所選文字"
        },
        "$:/language/Buttons/Underline/Caption": {
            "title": "$:/language/Buttons/Underline/Caption",
            "text": "底線"
        },
        "$:/language/Buttons/Underline/Hint": {
            "title": "$:/language/Buttons/Underline/Hint",
            "text": "套用底線格式於所選文字"
        },
        "$:/language/ControlPanel/Advanced/Caption": {
            "title": "$:/language/ControlPanel/Advanced/Caption",
            "text": "進階"
        },
        "$:/language/ControlPanel/Advanced/Hint": {
            "title": "$:/language/ControlPanel/Advanced/Hint",
            "text": "關於此 TiddlyWiki 的內部資訊"
        },
        "$:/language/ControlPanel/Appearance/Caption": {
            "title": "$:/language/ControlPanel/Appearance/Caption",
            "text": "視覺外觀"
        },
        "$:/language/ControlPanel/Appearance/Hint": {
            "title": "$:/language/ControlPanel/Appearance/Hint",
            "text": "自訂您的 TiddlyWiki 外觀。"
        },
        "$:/language/ControlPanel/Basics/AnimDuration/Prompt": {
            "title": "$:/language/ControlPanel/Basics/AnimDuration/Prompt",
            "text": "動畫持續時間"
        },
        "$:/language/ControlPanel/Basics/AutoFocus/Prompt": {
            "title": "$:/language/ControlPanel/Basics/AutoFocus/Prompt",
            "text": "編輯條目時的預設自動停留欄位"
        },
        "$:/language/ControlPanel/Basics/Caption": {
            "title": "$:/language/ControlPanel/Basics/Caption",
            "text": "基本"
        },
        "$:/language/ControlPanel/Basics/DefaultTiddlers/BottomHint": {
            "title": "$:/language/ControlPanel/Basics/DefaultTiddlers/BottomHint",
            "text": "標題含空白時請使用 &#91;&#91;雙中括弧&#93;&#93;,或者您可用 <$button set=\"$:/DefaultTiddlers\" setTo=\"[list[$:/StoryList]]\">保留開啟中的條目順序</$button>"
        },
        "$:/language/ControlPanel/Basics/DefaultTiddlers/Prompt": {
            "title": "$:/language/ControlPanel/Basics/DefaultTiddlers/Prompt",
            "text": "首頁"
        },
        "$:/language/ControlPanel/Basics/DefaultTiddlers/TopHint": {
            "title": "$:/language/ControlPanel/Basics/DefaultTiddlers/TopHint",
            "text": "預設開啟的條目"
        },
        "$:/language/ControlPanel/Basics/Language/Prompt": {
            "title": "$:/language/ControlPanel/Basics/Language/Prompt",
            "text": "您好!當前的語言:"
        },
        "$:/language/ControlPanel/Basics/NewJournal/Tags/Prompt": {
            "title": "$:/language/ControlPanel/Basics/NewJournal/Tags/Prompt",
            "text": "新日誌條目的標籤"
        },
        "$:/language/ControlPanel/Basics/NewJournal/Text/Prompt": {
            "title": "$:/language/ControlPanel/Basics/NewJournal/Text/Prompt",
            "text": "新日誌條目的內容"
        },
        "$:/language/ControlPanel/Basics/NewJournal/Title/Prompt": {
            "title": "$:/language/ControlPanel/Basics/NewJournal/Title/Prompt",
            "text": "新日誌條目的名稱"
        },
        "$:/language/ControlPanel/Basics/NewTiddler/Tags/Prompt": {
            "title": "$:/language/ControlPanel/Basics/NewTiddler/Tags/Prompt",
            "text": "新條目的標籤"
        },
        "$:/language/ControlPanel/Basics/NewTiddler/Title/Prompt": {
            "title": "$:/language/ControlPanel/Basics/NewTiddler/Title/Prompt",
            "text": "新條目的名稱"
        },
        "$:/language/ControlPanel/Basics/OverriddenShadowTiddlers/Prompt": {
            "title": "$:/language/ControlPanel/Basics/OverriddenShadowTiddlers/Prompt",
            "text": "被覆寫的預設條目數量"
        },
        "$:/language/ControlPanel/Basics/RemoveTags": {
            "title": "$:/language/ControlPanel/Basics/RemoveTags",
            "text": "更新到當前格式"
        },
        "$:/language/ControlPanel/Basics/RemoveTags/Hint": {
            "title": "$:/language/ControlPanel/Basics/RemoveTags/Hint",
            "text": "將標籤設定更新為最新格式"
        },
        "$:/language/ControlPanel/Basics/ShadowTiddlers/Prompt": {
            "title": "$:/language/ControlPanel/Basics/ShadowTiddlers/Prompt",
            "text": "預設條目數量"
        },
        "$:/language/ControlPanel/Basics/Subtitle/Prompt": {
            "title": "$:/language/ControlPanel/Basics/Subtitle/Prompt",
            "text": "副標題"
        },
        "$:/language/ControlPanel/Basics/SystemTiddlers/Prompt": {
            "title": "$:/language/ControlPanel/Basics/SystemTiddlers/Prompt",
            "text": "系統條目數量"
        },
        "$:/language/ControlPanel/Basics/Tags/Prompt": {
            "title": "$:/language/ControlPanel/Basics/Tags/Prompt",
            "text": "標籤數量"
        },
        "$:/language/ControlPanel/Basics/Tiddlers/Prompt": {
            "title": "$:/language/ControlPanel/Basics/Tiddlers/Prompt",
            "text": "一般條目數量"
        },
        "$:/language/ControlPanel/Basics/Title/Prompt": {
            "title": "$:/language/ControlPanel/Basics/Title/Prompt",
            "text": "標題"
        },
        "$:/language/ControlPanel/Basics/Username/Prompt": {
            "title": "$:/language/ControlPanel/Basics/Username/Prompt",
            "text": "編輯者署名"
        },
        "$:/language/ControlPanel/Basics/Version/Prompt": {
            "title": "$:/language/ControlPanel/Basics/Version/Prompt",
            "text": "~TiddlyWiki 版本"
        },
        "$:/language/ControlPanel/EditorTypes/Caption": {
            "title": "$:/language/ControlPanel/EditorTypes/Caption",
            "text": "編輯器類型"
        },
        "$:/language/ControlPanel/EditorTypes/Editor/Caption": {
            "title": "$:/language/ControlPanel/EditorTypes/Editor/Caption",
            "text": "編輯器"
        },
        "$:/language/ControlPanel/EditorTypes/Hint": {
            "title": "$:/language/ControlPanel/EditorTypes/Hint",
            "text": "這些條目決定使用哪個編輯器來編輯特定條目類型。"
        },
        "$:/language/ControlPanel/EditorTypes/Type/Caption": {
            "title": "$:/language/ControlPanel/EditorTypes/Type/Caption",
            "text": "類型"
        },
        "$:/language/ControlPanel/Info/Caption": {
            "title": "$:/language/ControlPanel/Info/Caption",
            "text": "資訊"
        },
        "$:/language/ControlPanel/Info/Hint": {
            "title": "$:/language/ControlPanel/Info/Hint",
            "text": "有關此 TiddlyWiki 的資訊"
        },
        "$:/language/ControlPanel/KeyboardShortcuts/Add/Prompt": {
            "title": "$:/language/ControlPanel/KeyboardShortcuts/Add/Prompt",
            "text": "在此輸入快捷鍵"
        },
        "$:/language/ControlPanel/KeyboardShortcuts/Add/Caption": {
            "title": "$:/language/ControlPanel/KeyboardShortcuts/Add/Caption",
            "text": "新增快捷鍵"
        },
        "$:/language/ControlPanel/KeyboardShortcuts/Caption": {
            "title": "$:/language/ControlPanel/KeyboardShortcuts/Caption",
            "text": "快捷鍵"
        },
        "$:/language/ControlPanel/KeyboardShortcuts/Hint": {
            "title": "$:/language/ControlPanel/KeyboardShortcuts/Hint",
            "text": "管理鍵盤快捷鍵分配"
        },
        "$:/language/ControlPanel/KeyboardShortcuts/NoShortcuts/Caption": {
            "title": "$:/language/ControlPanel/KeyboardShortcuts/NoShortcuts/Caption",
            "text": "尚無指定快捷鍵"
        },
        "$:/language/ControlPanel/KeyboardShortcuts/Remove/Hint": {
            "title": "$:/language/ControlPanel/KeyboardShortcuts/Remove/Hint",
            "text": "刪除快捷鍵"
        },
        "$:/language/ControlPanel/KeyboardShortcuts/Platform/All": {
            "title": "$:/language/ControlPanel/KeyboardShortcuts/Platform/All",
            "text": "所有平臺"
        },
        "$:/language/ControlPanel/KeyboardShortcuts/Platform/Mac": {
            "title": "$:/language/ControlPanel/KeyboardShortcuts/Platform/Mac",
            "text": "僅 Macintosh 平臺"
        },
        "$:/language/ControlPanel/KeyboardShortcuts/Platform/NonMac": {
            "title": "$:/language/ControlPanel/KeyboardShortcuts/Platform/NonMac",
            "text": "僅非 Macintosh 平臺"
        },
        "$:/language/ControlPanel/KeyboardShortcuts/Platform/Linux": {
            "title": "$:/language/ControlPanel/KeyboardShortcuts/Platform/Linux",
            "text": "僅 Linux 平臺"
        },
        "$:/language/ControlPanel/KeyboardShortcuts/Platform/NonLinux": {
            "title": "$:/language/ControlPanel/KeyboardShortcuts/Platform/NonLinux",
            "text": "僅非 Linux 平臺"
        },
        "$:/language/ControlPanel/KeyboardShortcuts/Platform/Windows": {
            "title": "$:/language/ControlPanel/KeyboardShortcuts/Platform/Windows",
            "text": "僅 Windows 平臺"
        },
        "$:/language/ControlPanel/KeyboardShortcuts/Platform/NonWindows": {
            "title": "$:/language/ControlPanel/KeyboardShortcuts/Platform/NonWindows",
            "text": "僅非 Windows 平臺"
        },
        "$:/language/ControlPanel/LayoutSwitcher/Caption": {
            "title": "$:/language/ControlPanel/LayoutSwitcher/Caption",
            "text": "版面"
        },
        "$:/language/ControlPanel/LoadedModules/Caption": {
            "title": "$:/language/ControlPanel/LoadedModules/Caption",
            "text": "已載入的模組"
        },
        "$:/language/ControlPanel/LoadedModules/Hint": {
            "title": "$:/language/ControlPanel/LoadedModules/Hint",
            "text": "這些是當前已載入的模組之源碼條目。斜體的模組則無源碼條目,通常是因為它們是在引導過程中設置。"
        },
        "$:/language/ControlPanel/Palette/Caption": {
            "title": "$:/language/ControlPanel/Palette/Caption",
            "text": "調色盤"
        },
        "$:/language/ControlPanel/Palette/Editor/Clone/Caption": {
            "title": "$:/language/ControlPanel/Palette/Editor/Clone/Caption",
            "text": "複製"
        },
        "$:/language/ControlPanel/Palette/Editor/Clone/Prompt": {
            "title": "$:/language/ControlPanel/Palette/Editor/Clone/Prompt",
            "text": "建議您修改前先複製此預設調色盤"
        },
        "$:/language/ControlPanel/Palette/Editor/Delete/Hint": {
            "title": "$:/language/ControlPanel/Palette/Editor/Delete/Hint",
            "text": "從當前調色盤中刪除此項"
        },
        "$:/language/ControlPanel/Palette/Editor/Names/External/Show": {
            "title": "$:/language/ControlPanel/Palette/Editor/Names/External/Show",
            "text": "顯示不屬於當前調色盤的顏色名稱"
        },
        "$:/language/ControlPanel/Palette/Editor/Prompt/Modified": {
            "title": "$:/language/ControlPanel/Palette/Editor/Prompt/Modified",
            "text": "此預設調色盤已被修改過"
        },
        "$:/language/ControlPanel/Palette/Editor/Prompt": {
            "title": "$:/language/ControlPanel/Palette/Editor/Prompt",
            "text": "編輯"
        },
        "$:/language/ControlPanel/Palette/Editor/Reset/Caption": {
            "title": "$:/language/ControlPanel/Palette/Editor/Reset/Caption",
            "text": "重置"
        },
        "$:/language/ControlPanel/Palette/HideEditor/Caption": {
            "title": "$:/language/ControlPanel/Palette/HideEditor/Caption",
            "text": "隱藏編輯器"
        },
        "$:/language/ControlPanel/Palette/Prompt": {
            "title": "$:/language/ControlPanel/Palette/Prompt",
            "text": "當前的調色盤:"
        },
        "$:/language/ControlPanel/Palette/ShowEditor/Caption": {
            "title": "$:/language/ControlPanel/Palette/ShowEditor/Caption",
            "text": "顯示編輯器"
        },
        "$:/language/ControlPanel/Plugins/Add/Hint": {
            "title": "$:/language/ControlPanel/Plugins/Add/Hint",
            "text": "從官方插件庫安裝插件"
        },
        "$:/language/ControlPanel/Plugins/Add/Caption": {
            "title": "$:/language/ControlPanel/Plugins/Add/Caption",
            "text": "獲取更多插件"
        },
        "$:/language/ControlPanel/Plugins/AlreadyInstalled/Hint": {
            "title": "$:/language/ControlPanel/Plugins/AlreadyInstalled/Hint",
            "text": "此插件已經安裝版本 <$text text=<<installedVersion>>/>"
        },
        "$:/language/ControlPanel/Plugins/AlsoRequires": {
            "title": "$:/language/ControlPanel/Plugins/AlsoRequires",
            "text": "還需要:"
        },
        "$:/language/ControlPanel/Plugins/Caption": {
            "title": "$:/language/ControlPanel/Plugins/Caption",
            "text": "插件"
        },
        "$:/language/ControlPanel/Plugins/Disable/Caption": {
            "title": "$:/language/ControlPanel/Plugins/Disable/Caption",
            "text": "停用"
        },
        "$:/language/ControlPanel/Plugins/Disable/Hint": {
            "title": "$:/language/ControlPanel/Plugins/Disable/Hint",
            "text": "重新載入頁面時停用此插件"
        },
        "$:/language/ControlPanel/Plugins/Disabled/Status": {
            "title": "$:/language/ControlPanel/Plugins/Disabled/Status",
            "text": "(已停用)"
        },
        "$:/language/ControlPanel/Plugins/Downgrade/Caption": {
            "title": "$:/language/ControlPanel/Plugins/Downgrade/Caption",
            "text": "降級"
        },
        "$:/language/ControlPanel/Plugins/Empty/Hint": {
            "title": "$:/language/ControlPanel/Plugins/Empty/Hint",
            "text": "無"
        },
        "$:/language/ControlPanel/Plugins/Enable/Caption": {
            "title": "$:/language/ControlPanel/Plugins/Enable/Caption",
            "text": "啟用"
        },
        "$:/language/ControlPanel/Plugins/Enable/Hint": {
            "title": "$:/language/ControlPanel/Plugins/Enable/Hint",
            "text": "重新載入頁面時啟用此插件"
        },
        "$:/language/ControlPanel/Plugins/Install/Caption": {
            "title": "$:/language/ControlPanel/Plugins/Install/Caption",
            "text": "安裝"
        },
        "$:/language/ControlPanel/Plugins/Installed/Hint": {
            "title": "$:/language/ControlPanel/Plugins/Installed/Hint",
            "text": "當前已安裝的插件:"
        },
        "$:/language/ControlPanel/Plugins/Languages/Caption": {
            "title": "$:/language/ControlPanel/Plugins/Languages/Caption",
            "text": "語言"
        },
        "$:/language/ControlPanel/Plugins/Languages/Hint": {
            "title": "$:/language/ControlPanel/Plugins/Languages/Hint",
            "text": "語言包插件"
        },
        "$:/language/ControlPanel/Plugins/NoInfoFound/Hint": {
            "title": "$:/language/ControlPanel/Plugins/NoInfoFound/Hint",
            "text": "無 ''\"<$text text=<<currentTab>>/>\"''"
        },
        "$:/language/ControlPanel/Plugins/NoInformation/Hint": {
            "title": "$:/language/ControlPanel/Plugins/NoInformation/Hint",
            "text": "未提供資訊"
        },
        "$:/language/ControlPanel/Plugins/NotInstalled/Hint": {
            "title": "$:/language/ControlPanel/Plugins/NotInstalled/Hint",
            "text": "尚未安裝此插件"
        },
        "$:/language/ControlPanel/Plugins/OpenPluginLibrary": {
            "title": "$:/language/ControlPanel/Plugins/OpenPluginLibrary",
            "text": "開啟插件程式庫"
        },
        "$:/language/ControlPanel/Plugins/ClosePluginLibrary": {
            "title": "$:/language/ControlPanel/Plugins/ClosePluginLibrary",
            "text": "關閉插件程式庫"
        },
        "$:/language/ControlPanel/Plugins/PluginWillRequireReload": {
            "title": "$:/language/ControlPanel/Plugins/PluginWillRequireReload",
            "text": "(需要重新載入)"
        },
        "$:/language/ControlPanel/Plugins/Plugins/Caption": {
            "title": "$:/language/ControlPanel/Plugins/Plugins/Caption",
            "text": "插件"
        },
        "$:/language/ControlPanel/Plugins/Plugins/Hint": {
            "title": "$:/language/ControlPanel/Plugins/Plugins/Hint",
            "text": "插件"
        },
        "$:/language/ControlPanel/Plugins/Reinstall/Caption": {
            "title": "$:/language/ControlPanel/Plugins/Reinstall/Caption",
            "text": "重新安裝"
        },
        "$:/language/ControlPanel/Plugins/Themes/Caption": {
            "title": "$:/language/ControlPanel/Plugins/Themes/Caption",
            "text": "佈景主題"
        },
        "$:/language/ControlPanel/Plugins/Themes/Hint": {
            "title": "$:/language/ControlPanel/Plugins/Themes/Hint",
            "text": "佈景主題插件"
        },
        "$:/language/ControlPanel/Plugins/Update/Caption": {
            "title": "$:/language/ControlPanel/Plugins/Update/Caption",
            "text": "更新"
        },
        "$:/language/ControlPanel/Plugins/Updates/Caption": {
            "title": "$:/language/ControlPanel/Plugins/Updates/Caption",
            "text": "更新"
        },
        "$:/language/ControlPanel/Plugins/Updates/Hint": {
            "title": "$:/language/ControlPanel/Plugins/Updates/Hint",
            "text": "已安裝插件的可用更新"
        },
        "$:/language/ControlPanel/Plugins/Updates/UpdateAll/Caption": {
            "title": "$:/language/ControlPanel/Plugins/Updates/UpdateAll/Caption",
            "text": "更新 <<update-count>> 個插件"
        },
        "$:/language/ControlPanel/Plugins/SubPluginPrompt": {
            "title": "$:/language/ControlPanel/Plugins/SubPluginPrompt",
            "text": "提供 <<count>> 個可用的附加插件"
        },
        "$:/language/ControlPanel/Parsing/Caption": {
            "title": "$:/language/ControlPanel/Parsing/Caption",
            "text": "解析"
        },
        "$:/language/ControlPanel/Parsing/Hint": {
            "title": "$:/language/ControlPanel/Parsing/Hint",
            "text": "在此您可以全域停用或啟用維基解析規則。要使更改生效,請儲存並重新載入您的維基。停用某些解析規則,會妨礙 <$text text=\"TiddlyWiki\"/>  正常運作。可使用[[安全模式|https://tiddlywiki.com/#SafeMode]]恢復正常操作。"
        },
        "$:/language/ControlPanel/Parsing/Block/Caption": {
            "title": "$:/language/ControlPanel/Parsing/Block/Caption",
            "text": "區塊解析規則"
        },
        "$:/language/ControlPanel/Parsing/Inline/Caption": {
            "title": "$:/language/ControlPanel/Parsing/Inline/Caption",
            "text": "行內解析規則"
        },
        "$:/language/ControlPanel/Parsing/Pragma/Caption": {
            "title": "$:/language/ControlPanel/Parsing/Pragma/Caption",
            "text": "編譯指示解析規則"
        },
        "$:/language/ControlPanel/Saving/Caption": {
            "title": "$:/language/ControlPanel/Saving/Caption",
            "text": "儲存"
        },
        "$:/language/ControlPanel/Saving/DownloadSaver/AutoSave/Description": {
            "title": "$:/language/ControlPanel/Saving/DownloadSaver/AutoSave/Description",
            "text": "允許下載儲存模組的自動儲存"
        },
        "$:/language/ControlPanel/Saving/DownloadSaver/AutoSave/Hint": {
            "title": "$:/language/ControlPanel/Saving/DownloadSaver/AutoSave/Hint",
            "text": "啟用下載儲存模組的自動儲存"
        },
        "$:/language/ControlPanel/Saving/DownloadSaver/Caption": {
            "title": "$:/language/ControlPanel/Saving/DownloadSaver/Caption",
            "text": "下載儲存模組"
        },
        "$:/language/ControlPanel/Saving/DownloadSaver/Hint": {
            "title": "$:/language/ControlPanel/Saving/DownloadSaver/Hint",
            "text": "這些設定適用於相容 HTML5 的下載儲存模組"
        },
        "$:/language/ControlPanel/Saving/General/Caption": {
            "title": "$:/language/ControlPanel/Saving/General/Caption",
            "text": "通用"
        },
        "$:/language/ControlPanel/Saving/General/Hint": {
            "title": "$:/language/ControlPanel/Saving/General/Hint",
            "text": "這些設定適用於所有已載入的儲存模組"
        },
        "$:/language/ControlPanel/Saving/Hint": {
            "title": "$:/language/ControlPanel/Saving/Hint",
            "text": "用於通過儲存模組將整個 TiddlyWiki 儲存為單個檔案的設定"
        },
        "$:/language/ControlPanel/Saving/GitService/Branch": {
            "title": "$:/language/ControlPanel/Saving/GitService/Branch",
            "text": "用於儲存的目標分支"
        },
        "$:/language/ControlPanel/Saving/GitService/CommitMessage": {
            "title": "$:/language/ControlPanel/Saving/GitService/CommitMessage",
            "text": "由 TiddlyWiki 儲存"
        },
        "$:/language/ControlPanel/Saving/GitService/Description": {
            "title": "$:/language/ControlPanel/Saving/GitService/Description",
            "text": "這些設定僅用於儲存至 <<service-name>>"
        },
        "$:/language/ControlPanel/Saving/GitService/Filename": {
            "title": "$:/language/ControlPanel/Saving/GitService/Filename",
            "text": "目標檔案的檔案名稱 (例如,`index.html`)"
        },
        "$:/language/ControlPanel/Saving/GitService/Path": {
            "title": "$:/language/ControlPanel/Saving/GitService/Path",
            "text": "目標檔案的路徑 (例如,`/wiki/`)"
        },
        "$:/language/ControlPanel/Saving/GitService/Repo": {
            "title": "$:/language/ControlPanel/Saving/GitService/Repo",
            "text": "目標存儲庫 (例如,`Jermolene/TiddlyWiki5`)"
        },
        "$:/language/ControlPanel/Saving/GitService/ServerURL": {
            "title": "$:/language/ControlPanel/Saving/GitService/ServerURL",
            "text": "伺服器 API 網址"
        },
        "$:/language/ControlPanel/Saving/GitService/UserName": {
            "title": "$:/language/ControlPanel/Saving/GitService/UserName",
            "text": "使用者名稱"
        },
        "$:/language/ControlPanel/Saving/GitService/GitHub/Caption": {
            "title": "$:/language/ControlPanel/Saving/GitService/GitHub/Caption",
            "text": "~GitHub 儲存模組"
        },
        "$:/language/ControlPanel/Saving/GitService/GitHub/Password": {
            "title": "$:/language/ControlPanel/Saving/GitService/GitHub/Password",
            "text": "密碼、OAUTH 權杖,或個人存取權杖 (詳見 [[GitHub 說明頁面|https://help.github.com/en/articles/creating-a-personal-access-token-for-the-command-line]])"
        },
        "$:/language/ControlPanel/Saving/GitService/GitLab/Caption": {
            "title": "$:/language/ControlPanel/Saving/GitService/GitLab/Caption",
            "text": "~GitLab 儲存模組"
        },
        "$:/language/ControlPanel/Saving/GitService/GitLab/Password": {
            "title": "$:/language/ControlPanel/Saving/GitService/GitLab/Password",
            "text": "個人存取權杖的 API (詳見 [[GitLab 說明頁面|https://docs.gitlab.com/ee/user/profile/personal_access_tokens.html]])"
        },
        "$:/language/ControlPanel/Saving/GitService/Gitea/Caption": {
            "title": "$:/language/ControlPanel/Saving/GitService/Gitea/Caption",
            "text": "Gitea 儲存模組"
        },
        "$:/language/ControlPanel/Saving/GitService/Gitea/Password": {
            "title": "$:/language/ControlPanel/Saving/GitService/Gitea/Password",
            "text": "個人存取權杖的 API (通過 Gitea 的 Web 介面:`設定 | 應用程式 | 產生新的權杖`)"
        },
        "$:/language/ControlPanel/Saving/TiddlySpot/Advanced/Heading": {
            "title": "$:/language/ControlPanel/Saving/TiddlySpot/Advanced/Heading",
            "text": "進階設定"
        },
        "$:/language/ControlPanel/Saving/TiddlySpot/BackupDir": {
            "title": "$:/language/ControlPanel/Saving/TiddlySpot/BackupDir",
            "text": "備份資料夾"
        },
        "$:/language/ControlPanel/Saving/TiddlySpot/Backups": {
            "title": "$:/language/ControlPanel/Saving/TiddlySpot/Backups",
            "text": "備份"
        },
        "$:/language/ControlPanel/Saving/TiddlySpot/Caption": {
            "title": "$:/language/ControlPanel/Saving/TiddlySpot/Caption",
            "text": "~TiddlySpot 儲存模組"
        },
        "$:/language/ControlPanel/Saving/TiddlySpot/ControlPanel": {
            "title": "$:/language/ControlPanel/Saving/TiddlySpot/ControlPanel",
            "text": "~TiddlySpot 控制台"
        },
        "$:/language/ControlPanel/Saving/TiddlySpot/Description": {
            "title": "$:/language/ControlPanel/Saving/TiddlySpot/Description",
            "text": "這些設定只適用於儲存到 http://tiddlyspot.com 或相容的遠端伺服器時。"
        },
        "$:/language/ControlPanel/Saving/TiddlySpot/Filename": {
            "title": "$:/language/ControlPanel/Saving/TiddlySpot/Filename",
            "text": "上傳檔名"
        },
        "$:/language/ControlPanel/Saving/TiddlySpot/Heading": {
            "title": "$:/language/ControlPanel/Saving/TiddlySpot/Heading",
            "text": "~TiddlySpot"
        },
        "$:/language/ControlPanel/Saving/TiddlySpot/Hint": {
            "title": "$:/language/ControlPanel/Saving/TiddlySpot/Hint",
            "text": "//預設之伺服器網址 `http://<wikiname>.tiddlyspot.com/store.cgi`,可改為自訂之伺服器網址,例如 `http://example.com/store.php`。//"
        },
        "$:/language/ControlPanel/Saving/TiddlySpot/Password": {
            "title": "$:/language/ControlPanel/Saving/TiddlySpot/Password",
            "text": "密碼"
        },
        "$:/language/ControlPanel/Saving/TiddlySpot/ReadOnly": {
            "title": "$:/language/ControlPanel/Saving/TiddlySpot/ReadOnly",
            "text": "~TiddlySpot 服務目前僅以唯讀形式提供。相關最新詳細資訊,請參閱 http://tiddlyspot.com/ 。~TiddlySpot 儲存模組仍可用於儲存到相容的伺服器。"
        },
        "$:/language/ControlPanel/Saving/TiddlySpot/ServerURL": {
            "title": "$:/language/ControlPanel/Saving/TiddlySpot/ServerURL",
            "text": "伺服器網址"
        },
        "$:/language/ControlPanel/Saving/TiddlySpot/UploadDir": {
            "title": "$:/language/ControlPanel/Saving/TiddlySpot/UploadDir",
            "text": "上傳資料夾"
        },
        "$:/language/ControlPanel/Saving/TiddlySpot/UserName": {
            "title": "$:/language/ControlPanel/Saving/TiddlySpot/UserName",
            "text": "帳號"
        },
        "$:/language/ControlPanel/Settings/AutoSave/Caption": {
            "title": "$:/language/ControlPanel/Settings/AutoSave/Caption",
            "text": "自動儲存"
        },
        "$:/language/ControlPanel/Settings/AutoSave/Disabled/Description": {
            "title": "$:/language/ControlPanel/Settings/AutoSave/Disabled/Description",
            "text": "不要自動儲存變更"
        },
        "$:/language/ControlPanel/Settings/AutoSave/Enabled/Description": {
            "title": "$:/language/ControlPanel/Settings/AutoSave/Enabled/Description",
            "text": "自動儲存變更"
        },
        "$:/language/ControlPanel/Settings/AutoSave/Hint": {
            "title": "$:/language/ControlPanel/Settings/AutoSave/Hint",
            "text": "當使用支援的儲存模組時,在編輯期間嘗試自動儲存變更"
        },
        "$:/language/ControlPanel/Settings/CamelCase/Caption": {
            "title": "$:/language/ControlPanel/Settings/CamelCase/Caption",
            "text": "駝峰式維基鏈接"
        },
        "$:/language/ControlPanel/Settings/CamelCase/Hint": {
            "title": "$:/language/ControlPanel/Settings/CamelCase/Hint",
            "text": "您可以全域停用駝峰式短語自動鏈接。須儲存後重新載入,方才生效。"
        },
        "$:/language/ControlPanel/Settings/CamelCase/Description": {
            "title": "$:/language/ControlPanel/Settings/CamelCase/Description",
            "text": "啟用自動駝峰式鏈接"
        },
        "$:/language/ControlPanel/Settings/Caption": {
            "title": "$:/language/ControlPanel/Settings/Caption",
            "text": "設定"
        },
        "$:/language/ControlPanel/Settings/DefaultSidebarTab/Caption": {
            "title": "$:/language/ControlPanel/Settings/DefaultSidebarTab/Caption",
            "text": "預設側邊欄頁籤"
        },
        "$:/language/ControlPanel/Settings/DefaultSidebarTab/Hint": {
            "title": "$:/language/ControlPanel/Settings/DefaultSidebarTab/Hint",
            "text": "指定預設顯示的側邊欄頁籤"
        },
        "$:/language/ControlPanel/Settings/DefaultMoreSidebarTab/Caption": {
            "title": "$:/language/ControlPanel/Settings/DefaultMoreSidebarTab/Caption",
            "text": "更多側邊欄的預設頁籤"
        },
        "$:/language/ControlPanel/Settings/DefaultMoreSidebarTab/Hint": {
            "title": "$:/language/ControlPanel/Settings/DefaultMoreSidebarTab/Hint",
            "text": "指定預設顯示的更多側欄頁籤"
        },
        "$:/language/ControlPanel/Settings/EditorToolbar/Caption": {
            "title": "$:/language/ControlPanel/Settings/EditorToolbar/Caption",
            "text": "編輯器工具列"
        },
        "$:/language/ControlPanel/Settings/EditorToolbar/Hint": {
            "title": "$:/language/ControlPanel/Settings/EditorToolbar/Hint",
            "text": "啟用或停用編輯器工具列︰"
        },
        "$:/language/ControlPanel/Settings/EditorToolbar/Description": {
            "title": "$:/language/ControlPanel/Settings/EditorToolbar/Description",
            "text": "顯示編輯器工具列"
        },
        "$:/language/ControlPanel/Settings/InfoPanelMode/Caption": {
            "title": "$:/language/ControlPanel/Settings/InfoPanelMode/Caption",
            "text": "條目資訊面板模式"
        },
        "$:/language/ControlPanel/Settings/InfoPanelMode/Hint": {
            "title": "$:/language/ControlPanel/Settings/InfoPanelMode/Hint",
            "text": "控制條目資訊面板何時關閉︰"
        },
        "$:/language/ControlPanel/Settings/InfoPanelMode/Popup/Description": {
            "title": "$:/language/ControlPanel/Settings/InfoPanelMode/Popup/Description",
            "text": "條目資訊面板自動關閉"
        },
        "$:/language/ControlPanel/Settings/InfoPanelMode/Sticky/Description": {
            "title": "$:/language/ControlPanel/Settings/InfoPanelMode/Sticky/Description",
            "text": "條目資訊面板保持開啟狀態,直到明確關閉"
        },
        "$:/language/ControlPanel/Settings/Hint": {
            "title": "$:/language/ControlPanel/Settings/Hint",
            "text": "這些進階設定讓您自訂 TiddlyWiki 的行為。"
        },
        "$:/language/ControlPanel/Settings/LinkToBehaviour/Caption": {
            "title": "$:/language/ControlPanel/Settings/LinkToBehaviour/Caption",
            "text": "條目開啟行為"
        },
        "$:/language/ControlPanel/Settings/LinkToBehaviour/InsideRiver/Hint": {
            "title": "$:/language/ControlPanel/Settings/LinkToBehaviour/InsideRiver/Hint",
            "text": "從故事河//中//導航"
        },
        "$:/language/ControlPanel/Settings/LinkToBehaviour/OutsideRiver/Hint": {
            "title": "$:/language/ControlPanel/Settings/LinkToBehaviour/OutsideRiver/Hint",
            "text": "從故事河//外//導航"
        },
        "$:/language/ControlPanel/Settings/LinkToBehaviour/OpenAbove": {
            "title": "$:/language/ControlPanel/Settings/LinkToBehaviour/OpenAbove",
            "text": "開啟於當前條目之上"
        },
        "$:/language/ControlPanel/Settings/LinkToBehaviour/OpenBelow": {
            "title": "$:/language/ControlPanel/Settings/LinkToBehaviour/OpenBelow",
            "text": "開啟於當前條目之下"
        },
        "$:/language/ControlPanel/Settings/LinkToBehaviour/OpenAtTop": {
            "title": "$:/language/ControlPanel/Settings/LinkToBehaviour/OpenAtTop",
            "text": "開啟於故事河的頂端"
        },
        "$:/language/ControlPanel/Settings/LinkToBehaviour/OpenAtBottom": {
            "title": "$:/language/ControlPanel/Settings/LinkToBehaviour/OpenAtBottom",
            "text": "開啟於故事河的底部"
        },
        "$:/language/ControlPanel/Settings/MissingLinks/Caption": {
            "title": "$:/language/ControlPanel/Settings/MissingLinks/Caption",
            "text": "維基鏈接"
        },
        "$:/language/ControlPanel/Settings/MissingLinks/Hint": {
            "title": "$:/language/ControlPanel/Settings/MissingLinks/Hint",
            "text": "選擇是否要鏈接到尚未存在的條目"
        },
        "$:/language/ControlPanel/Settings/MissingLinks/Description": {
            "title": "$:/language/ControlPanel/Settings/MissingLinks/Description",
            "text": "啟用鏈接到佚失條目"
        },
        "$:/language/ControlPanel/Settings/NavigationAddressBar/Caption": {
            "title": "$:/language/ControlPanel/Settings/NavigationAddressBar/Caption",
            "text": "網址列導覽"
        },
        "$:/language/ControlPanel/Settings/NavigationAddressBar/Hint": {
            "title": "$:/language/ControlPanel/Settings/NavigationAddressBar/Hint",
            "text": "在瀏覽器網址列導覽到條目時的行為:"
        },
        "$:/language/ControlPanel/Settings/NavigationAddressBar/No/Description": {
            "title": "$:/language/ControlPanel/Settings/NavigationAddressBar/No/Description",
            "text": "不更新網址列"
        },
        "$:/language/ControlPanel/Settings/NavigationAddressBar/Permalink/Description": {
            "title": "$:/language/ControlPanel/Settings/NavigationAddressBar/Permalink/Description",
            "text": "包含目標條目"
        },
        "$:/language/ControlPanel/Settings/NavigationAddressBar/Permaview/Description": {
            "title": "$:/language/ControlPanel/Settings/NavigationAddressBar/Permaview/Description",
            "text": "包括目標條目和當前已開啟的條目序列"
        },
        "$:/language/ControlPanel/Settings/NavigationHistory/Caption": {
            "title": "$:/language/ControlPanel/Settings/NavigationHistory/Caption",
            "text": "歷史記錄導覽"
        },
        "$:/language/ControlPanel/Settings/NavigationHistory/Hint": {
            "title": "$:/language/ControlPanel/Settings/NavigationHistory/Hint",
            "text": "當導覽到條目時,更新瀏覽器歷史記錄:"
        },
        "$:/language/ControlPanel/Settings/NavigationHistory/No/Description": {
            "title": "$:/language/ControlPanel/Settings/NavigationHistory/No/Description",
            "text": "不更新歷史記錄"
        },
        "$:/language/ControlPanel/Settings/NavigationHistory/Yes/Description": {
            "title": "$:/language/ControlPanel/Settings/NavigationHistory/Yes/Description",
            "text": "更新歷史記錄"
        },
        "$:/language/ControlPanel/Settings/NavigationPermalinkviewMode/Caption": {
            "title": "$:/language/ControlPanel/Settings/NavigationPermalinkviewMode/Caption",
            "text": "引用連結/固定連結 模式"
        },
        "$:/language/ControlPanel/Settings/NavigationPermalinkviewMode/Hint": {
            "title": "$:/language/ControlPanel/Settings/NavigationPermalinkviewMode/Hint",
            "text": "選擇 引用連結/固定連結 的處理方式:"
        },
        "$:/language/ControlPanel/Settings/NavigationPermalinkviewMode/CopyToClipboard/Description": {
            "title": "$:/language/ControlPanel/Settings/NavigationPermalinkviewMode/CopyToClipboard/Description",
            "text": "將 引用連結/固定連結 網址複製到剪貼簿"
        },
        "$:/language/ControlPanel/Settings/NavigationPermalinkviewMode/UpdateAddressBar/Description": {
            "title": "$:/language/ControlPanel/Settings/NavigationPermalinkviewMode/UpdateAddressBar/Description",
            "text": "以 引用連結/固定連結 更新網址列"
        },
        "$:/language/ControlPanel/Settings/PerformanceInstrumentation/Caption": {
            "title": "$:/language/ControlPanel/Settings/PerformanceInstrumentation/Caption",
            "text": "效能檢測"
        },
        "$:/language/ControlPanel/Settings/PerformanceInstrumentation/Hint": {
            "title": "$:/language/ControlPanel/Settings/PerformanceInstrumentation/Hint",
            "text": "在瀏覽器的開發人員主控台,顯示效能統計資訊。需要重新載入才能生效。"
        },
        "$:/language/ControlPanel/Settings/PerformanceInstrumentation/Description": {
            "title": "$:/language/ControlPanel/Settings/PerformanceInstrumentation/Description",
            "text": "啟用效能檢測"
        },
        "$:/language/ControlPanel/Settings/ToolbarButtonStyle/Caption": {
            "title": "$:/language/ControlPanel/Settings/ToolbarButtonStyle/Caption",
            "text": "工具列按鈕樣式"
        },
        "$:/language/ControlPanel/Settings/ToolbarButtonStyle/Hint": {
            "title": "$:/language/ControlPanel/Settings/ToolbarButtonStyle/Hint",
            "text": "選擇工具列按鈕的樣式:"
        },
        "$:/language/ControlPanel/Settings/ToolbarButtonStyle/Styles/Borderless": {
            "title": "$:/language/ControlPanel/Settings/ToolbarButtonStyle/Styles/Borderless",
            "text": "無邊框"
        },
        "$:/language/ControlPanel/Settings/ToolbarButtonStyle/Styles/Boxed": {
            "title": "$:/language/ControlPanel/Settings/ToolbarButtonStyle/Styles/Boxed",
            "text": "方框"
        },
        "$:/language/ControlPanel/Settings/ToolbarButtonStyle/Styles/Rounded": {
            "title": "$:/language/ControlPanel/Settings/ToolbarButtonStyle/Styles/Rounded",
            "text": "圓形"
        },
        "$:/language/ControlPanel/Settings/ToolbarButtons/Caption": {
            "title": "$:/language/ControlPanel/Settings/ToolbarButtons/Caption",
            "text": "工具列按鈕"
        },
        "$:/language/ControlPanel/Settings/ToolbarButtons/Hint": {
            "title": "$:/language/ControlPanel/Settings/ToolbarButtons/Hint",
            "text": "預設的工具列按鈕外觀:"
        },
        "$:/language/ControlPanel/Settings/ToolbarButtons/Icons/Description": {
            "title": "$:/language/ControlPanel/Settings/ToolbarButtons/Icons/Description",
            "text": "包含圖示"
        },
        "$:/language/ControlPanel/Settings/ToolbarButtons/Text/Description": {
            "title": "$:/language/ControlPanel/Settings/ToolbarButtons/Text/Description",
            "text": "包含文字"
        },
        "$:/language/ControlPanel/Settings/TitleLinks/Caption": {
            "title": "$:/language/ControlPanel/Settings/TitleLinks/Caption",
            "text": "條目標題"
        },
        "$:/language/ControlPanel/Settings/TitleLinks/Hint": {
            "title": "$:/language/ControlPanel/Settings/TitleLinks/Hint",
            "text": "可選地顯示條目標題為鏈接"
        },
        "$:/language/ControlPanel/Settings/TitleLinks/No/Description": {
            "title": "$:/language/ControlPanel/Settings/TitleLinks/No/Description",
            "text": "不顯示條目標題為鏈接"
        },
        "$:/language/ControlPanel/Settings/TitleLinks/Yes/Description": {
            "title": "$:/language/ControlPanel/Settings/TitleLinks/Yes/Description",
            "text": "顯示條目標題為鏈接"
        },
        "$:/language/ControlPanel/StoryView/Caption": {
            "title": "$:/language/ControlPanel/StoryView/Caption",
            "text": "檢視模式"
        },
        "$:/language/ControlPanel/StoryView/Prompt": {
            "title": "$:/language/ControlPanel/StoryView/Prompt",
            "text": "當前的檢視模式:"
        },
        "$:/language/ControlPanel/Stylesheets/Caption": {
            "title": "$:/language/ControlPanel/Stylesheets/Caption",
            "text": "樣式表"
        },
        "$:/language/ControlPanel/Stylesheets/Expand/Caption": {
            "title": "$:/language/ControlPanel/Stylesheets/Expand/Caption",
            "text": "全部展開"
        },
        "$:/language/ControlPanel/Stylesheets/Hint": {
            "title": "$:/language/ControlPanel/Stylesheets/Hint",
            "text": "這是當前標籤為 <<tag \"$:/tags/Stylesheet\">> 的樣式表條目呈現的 CSS"
        },
        "$:/language/ControlPanel/Stylesheets/Restore/Caption": {
            "title": "$:/language/ControlPanel/Stylesheets/Restore/Caption",
            "text": "復原"
        },
        "$:/language/ControlPanel/Theme/Caption": {
            "title": "$:/language/ControlPanel/Theme/Caption",
            "text": "佈景主題"
        },
        "$:/language/ControlPanel/Theme/Prompt": {
            "title": "$:/language/ControlPanel/Theme/Prompt",
            "text": "當前的佈景主題:"
        },
        "$:/language/ControlPanel/TiddlerFields/Caption": {
            "title": "$:/language/ControlPanel/TiddlerFields/Caption",
            "text": "條目欄位"
        },
        "$:/language/ControlPanel/TiddlerFields/Hint": {
            "title": "$:/language/ControlPanel/TiddlerFields/Hint",
            "text": "這是本維基使用中的所有條目欄位(含系統條目的欄位,但預設條目的欄位除外)。"
        },
        "$:/language/ControlPanel/Toolbars/Caption": {
            "title": "$:/language/ControlPanel/Toolbars/Caption",
            "text": "工具列"
        },
        "$:/language/ControlPanel/Toolbars/EditToolbar/Caption": {
            "title": "$:/language/ControlPanel/Toolbars/EditToolbar/Caption",
            "text": "編輯工具列"
        },
        "$:/language/ControlPanel/Toolbars/EditToolbar/Hint": {
            "title": "$:/language/ControlPanel/Toolbars/EditToolbar/Hint",
            "text": "選擇將顯示哪些按鈕於條目的編輯模式工具列。拖放可改變順序。"
        },
        "$:/language/ControlPanel/Toolbars/Hint": {
            "title": "$:/language/ControlPanel/Toolbars/Hint",
            "text": "選擇將顯示哪些工具列按鈕"
        },
        "$:/language/ControlPanel/Toolbars/PageControls/Caption": {
            "title": "$:/language/ControlPanel/Toolbars/PageControls/Caption",
            "text": "頁面工具列"
        },
        "$:/language/ControlPanel/Toolbars/PageControls/Hint": {
            "title": "$:/language/ControlPanel/Toolbars/PageControls/Hint",
            "text": "選擇將顯示哪些按鈕於主頁面的工具列。拖放可改變順序。"
        },
        "$:/language/ControlPanel/Toolbars/EditorToolbar/Caption": {
            "title": "$:/language/ControlPanel/Toolbars/EditorToolbar/Caption",
            "text": "編輯器工具列"
        },
        "$:/language/ControlPanel/Toolbars/EditorToolbar/Hint": {
            "title": "$:/language/ControlPanel/Toolbars/EditorToolbar/Hint",
            "text": "選擇將顯示哪些按鈕於編輯器工具列。請注意,某些按鈕只會出現在編輯某一類型的條目時。拖放可改變順序。"
        },
        "$:/language/ControlPanel/Toolbars/ViewToolbar/Caption": {
            "title": "$:/language/ControlPanel/Toolbars/ViewToolbar/Caption",
            "text": "檢視工具列"
        },
        "$:/language/ControlPanel/Toolbars/ViewToolbar/Hint": {
            "title": "$:/language/ControlPanel/Toolbars/ViewToolbar/Hint",
            "text": "選擇將顯示哪些按鈕於條目的檢視模式工具列。拖放可改變順序。"
        },
        "$:/language/ControlPanel/Tools/Download/Full/Caption": {
            "title": "$:/language/ControlPanel/Tools/Download/Full/Caption",
            "text": "下載完整副本"
        },
        "$:/core/zh-Hant/readme": {
            "title": "$:/core/zh-Hant/readme",
            "text": "此插件包含 TiddlyWiki 的核心元件,包括:\n\n* JavaScript 程式碼模組\n* 圖示\n* 建立 TiddlyWiki 的使用者介面所需的範本\n* 核心所使用的可當地語系化字串的英國英語 (''en-GB'') 翻譯\n"
        },
        "$:/language/Date/Long/Day/0": {
            "title": "$:/language/Date/Long/Day/0",
            "text": "星期日"
        },
        "$:/language/Date/Long/Day/1": {
            "title": "$:/language/Date/Long/Day/1",
            "text": "星期一"
        },
        "$:/language/Date/Long/Day/2": {
            "title": "$:/language/Date/Long/Day/2",
            "text": "星期二"
        },
        "$:/language/Date/Long/Day/3": {
            "title": "$:/language/Date/Long/Day/3",
            "text": "星期三"
        },
        "$:/language/Date/Long/Day/4": {
            "title": "$:/language/Date/Long/Day/4",
            "text": "星期四"
        },
        "$:/language/Date/Long/Day/5": {
            "title": "$:/language/Date/Long/Day/5",
            "text": "星期五"
        },
        "$:/language/Date/Long/Day/6": {
            "title": "$:/language/Date/Long/Day/6",
            "text": "星期六"
        },
        "$:/language/Date/Long/Month/1": {
            "title": "$:/language/Date/Long/Month/1",
            "text": "一月"
        },
        "$:/language/Date/Long/Month/2": {
            "title": "$:/language/Date/Long/Month/2",
            "text": "二月"
        },
        "$:/language/Date/Long/Month/3": {
            "title": "$:/language/Date/Long/Month/3",
            "text": "三月"
        },
        "$:/language/Date/Long/Month/4": {
            "title": "$:/language/Date/Long/Month/4",
            "text": "四月"
        },
        "$:/language/Date/Long/Month/5": {
            "title": "$:/language/Date/Long/Month/5",
            "text": "五月"
        },
        "$:/language/Date/Long/Month/6": {
            "title": "$:/language/Date/Long/Month/6",
            "text": "六月"
        },
        "$:/language/Date/Long/Month/7": {
            "title": "$:/language/Date/Long/Month/7",
            "text": "七月"
        },
        "$:/language/Date/Long/Month/8": {
            "title": "$:/language/Date/Long/Month/8",
            "text": "八月"
        },
        "$:/language/Date/Long/Month/9": {
            "title": "$:/language/Date/Long/Month/9",
            "text": "九月"
        },
        "$:/language/Date/Long/Month/10": {
            "title": "$:/language/Date/Long/Month/10",
            "text": "十月"
        },
        "$:/language/Date/Long/Month/11": {
            "title": "$:/language/Date/Long/Month/11",
            "text": "十一月"
        },
        "$:/language/Date/Long/Month/12": {
            "title": "$:/language/Date/Long/Month/12",
            "text": "十二月"
        },
        "$:/language/Date/Period/am": {
            "title": "$:/language/Date/Period/am",
            "text": "上午"
        },
        "$:/language/Date/Period/pm": {
            "title": "$:/language/Date/Period/pm",
            "text": "下午"
        },
        "$:/language/Date/Short/Day/0": {
            "title": "$:/language/Date/Short/Day/0",
            "text": "日"
        },
        "$:/language/Date/Short/Day/1": {
            "title": "$:/language/Date/Short/Day/1",
            "text": "一"
        },
        "$:/language/Date/Short/Day/2": {
            "title": "$:/language/Date/Short/Day/2",
            "text": "二"
        },
        "$:/language/Date/Short/Day/3": {
            "title": "$:/language/Date/Short/Day/3",
            "text": "三"
        },
        "$:/language/Date/Short/Day/4": {
            "title": "$:/language/Date/Short/Day/4",
            "text": "四"
        },
        "$:/language/Date/Short/Day/5": {
            "title": "$:/language/Date/Short/Day/5",
            "text": "五"
        },
        "$:/language/Date/Short/Day/6": {
            "title": "$:/language/Date/Short/Day/6",
            "text": "六"
        },
        "$:/language/Date/Short/Month/1": {
            "title": "$:/language/Date/Short/Month/1",
            "text": "01月"
        },
        "$:/language/Date/Short/Month/2": {
            "title": "$:/language/Date/Short/Month/2",
            "text": "02月"
        },
        "$:/language/Date/Short/Month/3": {
            "title": "$:/language/Date/Short/Month/3",
            "text": "03月"
        },
        "$:/language/Date/Short/Month/4": {
            "title": "$:/language/Date/Short/Month/4",
            "text": "04月"
        },
        "$:/language/Date/Short/Month/5": {
            "title": "$:/language/Date/Short/Month/5",
            "text": "05月"
        },
        "$:/language/Date/Short/Month/6": {
            "title": "$:/language/Date/Short/Month/6",
            "text": "06月"
        },
        "$:/language/Date/Short/Month/7": {
            "title": "$:/language/Date/Short/Month/7",
            "text": "07月"
        },
        "$:/language/Date/Short/Month/8": {
            "title": "$:/language/Date/Short/Month/8",
            "text": "08月"
        },
        "$:/language/Date/Short/Month/9": {
            "title": "$:/language/Date/Short/Month/9",
            "text": "09月"
        },
        "$:/language/Date/Short/Month/10": {
            "title": "$:/language/Date/Short/Month/10",
            "text": "10月"
        },
        "$:/language/Date/Short/Month/11": {
            "title": "$:/language/Date/Short/Month/11",
            "text": "11月"
        },
        "$:/language/Date/Short/Month/12": {
            "title": "$:/language/Date/Short/Month/12",
            "text": "12月"
        },
        "$:/language/RelativeDate/Future/Days": {
            "title": "$:/language/RelativeDate/Future/Days",
            "text": "<<period>> 天後"
        },
        "$:/language/RelativeDate/Future/Hours": {
            "title": "$:/language/RelativeDate/Future/Hours",
            "text": "<<period>> 小時後"
        },
        "$:/language/RelativeDate/Future/Minutes": {
            "title": "$:/language/RelativeDate/Future/Minutes",
            "text": "<<period>> 分鐘後"
        },
        "$:/language/RelativeDate/Future/Months": {
            "title": "$:/language/RelativeDate/Future/Months",
            "text": "<<period>> 個月後"
        },
        "$:/language/RelativeDate/Future/Second": {
            "title": "$:/language/RelativeDate/Future/Second",
            "text": "1 秒後"
        },
        "$:/language/RelativeDate/Future/Seconds": {
            "title": "$:/language/RelativeDate/Future/Seconds",
            "text": "<<period>> 秒後"
        },
        "$:/language/RelativeDate/Future/Years": {
            "title": "$:/language/RelativeDate/Future/Years",
            "text": "<<period>> 年後"
        },
        "$:/language/RelativeDate/Past/Days": {
            "title": "$:/language/RelativeDate/Past/Days",
            "text": "<<period>> 天前"
        },
        "$:/language/RelativeDate/Past/Hours": {
            "title": "$:/language/RelativeDate/Past/Hours",
            "text": "<<period>> 小時前"
        },
        "$:/language/RelativeDate/Past/Minutes": {
            "title": "$:/language/RelativeDate/Past/Minutes",
            "text": "<<period>> 分鐘前"
        },
        "$:/language/RelativeDate/Past/Months": {
            "title": "$:/language/RelativeDate/Past/Months",
            "text": "<<period>> 個月前"
        },
        "$:/language/RelativeDate/Past/Second": {
            "title": "$:/language/RelativeDate/Past/Second",
            "text": "1 秒前"
        },
        "$:/language/RelativeDate/Past/Seconds": {
            "title": "$:/language/RelativeDate/Past/Seconds",
            "text": "<<period>> 秒前"
        },
        "$:/language/RelativeDate/Past/Years": {
            "title": "$:/language/RelativeDate/Past/Years",
            "text": "<<period>> 年前"
        },
        "$:/language/Docs/ModuleTypes/allfilteroperator": {
            "title": "$:/language/Docs/ModuleTypes/allfilteroperator",
            "text": "''all'' 篩選器運算子的子運算子。"
        },
        "$:/language/Docs/ModuleTypes/animation": {
            "title": "$:/language/Docs/ModuleTypes/animation",
            "text": "動畫模組包含可用於 RevealWidget 的動畫。"
        },
        "$:/language/Docs/ModuleTypes/authenticator": {
            "title": "$:/language/Docs/ModuleTypes/authenticator",
            "text": "定義內建 HTTP 伺服器對請求的身份驗證方式。"
        },
        "$:/language/Docs/ModuleTypes/bitmapeditoroperation": {
            "title": "$:/language/Docs/ModuleTypes/bitmapeditoroperation",
            "text": "一個點陣圖編輯器工具列操作。"
        },
        "$:/language/Docs/ModuleTypes/command": {
            "title": "$:/language/Docs/ModuleTypes/command",
            "text": "可於 Node.js 執行的指令。"
        },
        "$:/language/Docs/ModuleTypes/config": {
            "title": "$:/language/Docs/ModuleTypes/config",
            "text": "加入 `$tw.config` 的資料。"
        },
        "$:/language/Docs/ModuleTypes/filteroperator": {
            "title": "$:/language/Docs/ModuleTypes/filteroperator",
            "text": "個別篩選器運算元方法。"
        },
        "$:/language/Docs/ModuleTypes/global": {
            "title": "$:/language/Docs/ModuleTypes/global",
            "text": "加入 `$tw` 的全域資料。"
        },
        "$:/language/Docs/ModuleTypes/info": {
            "title": "$:/language/Docs/ModuleTypes/info",
            "text": "透過 [[$:/temp/info-plugin]] 偽插件,發佈系統資訊。"
        },
        "$:/language/Docs/ModuleTypes/isfilteroperator": {
            "title": "$:/language/Docs/ModuleTypes/isfilteroperator",
            "text": "''is'' 篩選器運算元的運算子。"
        },
        "$:/language/Docs/ModuleTypes/library": {
            "title": "$:/language/Docs/ModuleTypes/library",
            "text": "一般用途的 JavaScript 模組的通用的模組類型。"
        },
        "$:/language/Docs/ModuleTypes/macro": {
            "title": "$:/language/Docs/ModuleTypes/macro",
            "text": "JavaScript ''巨集''定義。"
        },
        "$:/language/Docs/ModuleTypes/parser": {
            "title": "$:/language/Docs/ModuleTypes/parser",
            "text": "不同內容類型的解析器。"
        },
        "$:/language/Docs/ModuleTypes/route": {
            "title": "$:/language/Docs/ModuleTypes/route",
            "text": "定義內建 HTTP 伺服器如何處理各個網址格式。"
        },
        "$:/language/Docs/ModuleTypes/saver": {
            "title": "$:/language/Docs/ModuleTypes/saver",
            "text": "於瀏覽器儲存檔案的不同的儲存處理方法。"
        },
        "$:/language/Docs/ModuleTypes/startup": {
            "title": "$:/language/Docs/ModuleTypes/startup",
            "text": "啟動時期的功能函數。"
        },
        "$:/language/Docs/ModuleTypes/storyview": {
            "title": "$:/language/Docs/ModuleTypes/storyview",
            "text": "檢視模式用以自訂 list 小工具的動畫與行為。"
        },
        "$:/language/Docs/ModuleTypes/texteditoroperation": {
            "title": "$:/language/Docs/ModuleTypes/texteditoroperation",
            "text": "一個文字編輯器工具列操作。"
        },
        "$:/language/Docs/ModuleTypes/tiddlerdeserializer": {
            "title": "$:/language/Docs/ModuleTypes/tiddlerdeserializer",
            "text": "轉換不同內容類型至條目。"
        },
        "$:/language/Docs/ModuleTypes/tiddlerfield": {
            "title": "$:/language/Docs/ModuleTypes/tiddlerfield",
            "text": "定義個別條目欄位的行為。"
        },
        "$:/language/Docs/ModuleTypes/tiddlermethod": {
            "title": "$:/language/Docs/ModuleTypes/tiddlermethod",
            "text": "新增方法至 `$tw.Tiddler` 原型。"
        },
        "$:/language/Docs/ModuleTypes/upgrader": {
            "title": "$:/language/Docs/ModuleTypes/upgrader",
            "text": "於升級/導入過程中,套用升級處理至條目。"
        },
        "$:/language/Docs/ModuleTypes/utils": {
            "title": "$:/language/Docs/ModuleTypes/utils",
            "text": "新增方法至 `$tw.utils`。"
        },
        "$:/language/Docs/ModuleTypes/utils-node": {
            "title": "$:/language/Docs/ModuleTypes/utils-node",
            "text": "將特定於 Node.js 的方法新增到 '$tw.utils'。."
        },
        "$:/language/Docs/ModuleTypes/widget": {
            "title": "$:/language/Docs/ModuleTypes/widget",
            "text": "封裝 DOM 渲染和刷新的小工具。"
        },
        "$:/language/Docs/ModuleTypes/wikimethod": {
            "title": "$:/language/Docs/ModuleTypes/wikimethod",
            "text": "新增方法至 `$tw.Wiki`。"
        },
        "$:/language/Docs/ModuleTypes/wikirule": {
            "title": "$:/language/Docs/ModuleTypes/wikirule",
            "text": "WikiText 解析器的個別的語法規則。"
        },
        "$:/language/Docs/PaletteColours/alert-background": {
            "title": "$:/language/Docs/PaletteColours/alert-background",
            "text": "警示背景"
        },
        "$:/language/Docs/PaletteColours/alert-border": {
            "title": "$:/language/Docs/PaletteColours/alert-border",
            "text": "警示邊框"
        },
        "$:/language/Docs/PaletteColours/alert-highlight": {
            "title": "$:/language/Docs/PaletteColours/alert-highlight",
            "text": "警示高亮度"
        },
        "$:/language/Docs/PaletteColours/alert-muted-foreground": {
            "title": "$:/language/Docs/PaletteColours/alert-muted-foreground",
            "text": "警示的低調前景"
        },
        "$:/language/Docs/PaletteColours/background": {
            "title": "$:/language/Docs/PaletteColours/background",
            "text": "一般背景"
        },
        "$:/language/Docs/PaletteColours/blockquote-bar": {
            "title": "$:/language/Docs/PaletteColours/blockquote-bar",
            "text": "引言條"
        },
        "$:/language/Docs/PaletteColours/button-background": {
            "title": "$:/language/Docs/PaletteColours/button-background",
            "text": "預設按鈕背景"
        },
        "$:/language/Docs/PaletteColours/button-border": {
            "title": "$:/language/Docs/PaletteColours/button-border",
            "text": "預設按鈕邊框"
        },
        "$:/language/Docs/PaletteColours/button-foreground": {
            "title": "$:/language/Docs/PaletteColours/button-foreground",
            "text": "預設按鈕前景"
        },
        "$:/language/Docs/PaletteColours/code-background": {
            "title": "$:/language/Docs/PaletteColours/code-background",
            "text": "程式碼背景"
        },
        "$:/language/Docs/PaletteColours/code-border": {
            "title": "$:/language/Docs/PaletteColours/code-border",
            "text": "程式碼邊框"
        },
        "$:/language/Docs/PaletteColours/code-foreground": {
            "title": "$:/language/Docs/PaletteColours/code-foreground",
            "text": "程式碼前景"
        },
        "$:/language/Docs/PaletteColours/dirty-indicator": {
            "title": "$:/language/Docs/PaletteColours/dirty-indicator",
            "text": "未儲存變更指示器"
        },
        "$:/language/Docs/PaletteColours/download-background": {
            "title": "$:/language/Docs/PaletteColours/download-background",
            "text": "下載按鈕背景"
        },
        "$:/language/Docs/PaletteColours/download-foreground": {
            "title": "$:/language/Docs/PaletteColours/download-foreground",
            "text": "下載按鈕前景"
        },
        "$:/language/Docs/PaletteColours/dragger-background": {
            "title": "$:/language/Docs/PaletteColours/dragger-background",
            "text": "拖動區背景"
        },
        "$:/language/Docs/PaletteColours/dragger-foreground": {
            "title": "$:/language/Docs/PaletteColours/dragger-foreground",
            "text": "拖動區前景"
        },
        "$:/language/Docs/PaletteColours/dropdown-background": {
            "title": "$:/language/Docs/PaletteColours/dropdown-background",
            "text": "下拉背景"
        },
        "$:/language/Docs/PaletteColours/dropdown-border": {
            "title": "$:/language/Docs/PaletteColours/dropdown-border",
            "text": "下拉邊框"
        },
        "$:/language/Docs/PaletteColours/dropdown-tab-background-selected": {
            "title": "$:/language/Docs/PaletteColours/dropdown-tab-background-selected",
            "text": "選定的下拉頁籤背景"
        },
        "$:/language/Docs/PaletteColours/dropdown-tab-background": {
            "title": "$:/language/Docs/PaletteColours/dropdown-tab-background",
            "text": "下拉頁籤背景"
        },
        "$:/language/Docs/PaletteColours/dropzone-background": {
            "title": "$:/language/Docs/PaletteColours/dropzone-background",
            "text": "拖放區背景"
        },
        "$:/language/Docs/PaletteColours/external-link-background-hover": {
            "title": "$:/language/Docs/PaletteColours/external-link-background-hover",
            "text": "懸停外部鏈結背景"
        },
        "$:/language/Docs/PaletteColours/external-link-background-visited": {
            "title": "$:/language/Docs/PaletteColours/external-link-background-visited",
            "text": "已造訪過的外部鏈結背景"
        },
        "$:/language/Docs/PaletteColours/external-link-background": {
            "title": "$:/language/Docs/PaletteColours/external-link-background",
            "text": "外部鏈結背景"
        },
        "$:/language/Docs/PaletteColours/external-link-foreground-hover": {
            "title": "$:/language/Docs/PaletteColours/external-link-foreground-hover",
            "text": "懸停外部鏈結前景"
        },
        "$:/language/Docs/PaletteColours/external-link-foreground-visited": {
            "title": "$:/language/Docs/PaletteColours/external-link-foreground-visited",
            "text": "已造訪過的外部鏈結前景"
        },
        "$:/language/Docs/PaletteColours/external-link-foreground": {
            "title": "$:/language/Docs/PaletteColours/external-link-foreground",
            "text": "外部鏈結前景"
        },
        "$:/language/Docs/PaletteColours/foreground": {
            "title": "$:/language/Docs/PaletteColours/foreground",
            "text": "一般前景"
        },
        "$:/language/Docs/PaletteColours/menubar-background": {
            "title": "$:/language/Docs/PaletteColours/menubar-background",
            "text": "選單列背景"
        },
        "$:/language/Docs/PaletteColours/menubar-foreground": {
            "title": "$:/language/Docs/PaletteColours/menubar-foreground",
            "text": "選單列前景"
        },
        "$:/language/Docs/PaletteColours/message-background": {
            "title": "$:/language/Docs/PaletteColours/message-background",
            "text": "訊息框背景"
        },
        "$:/language/Docs/PaletteColours/message-border": {
            "title": "$:/language/Docs/PaletteColours/message-border",
            "text": "訊息邊框"
        },
        "$:/language/Docs/PaletteColours/message-foreground": {
            "title": "$:/language/Docs/PaletteColours/message-foreground",
            "text": "訊息框前景"
        },
        "$:/language/Docs/PaletteColours/modal-backdrop": {
            "title": "$:/language/Docs/PaletteColours/modal-backdrop",
            "text": "模組背景幕"
        },
        "$:/language/Docs/PaletteColours/modal-background": {
            "title": "$:/language/Docs/PaletteColours/modal-background",
            "text": "模組背景"
        },
        "$:/language/Docs/PaletteColours/modal-border": {
            "title": "$:/language/Docs/PaletteColours/modal-border",
            "text": "模組邊框"
        },
        "$:/language/Docs/PaletteColours/modal-footer-background": {
            "title": "$:/language/Docs/PaletteColours/modal-footer-background",
            "text": "模組頁腳背景"
        },
        "$:/language/Docs/PaletteColours/modal-footer-border": {
            "title": "$:/language/Docs/PaletteColours/modal-footer-border",
            "text": "模組頁腳邊框"
        },
        "$:/language/Docs/PaletteColours/modal-header-border": {
            "title": "$:/language/Docs/PaletteColours/modal-header-border",
            "text": "模組標題邊框"
        },
        "$:/language/Docs/PaletteColours/muted-foreground": {
            "title": "$:/language/Docs/PaletteColours/muted-foreground",
            "text": "一般低調前景"
        },
        "$:/language/Docs/PaletteColours/notification-background": {
            "title": "$:/language/Docs/PaletteColours/notification-background",
            "text": "通知背景"
        },
        "$:/language/Docs/PaletteColours/notification-border": {
            "title": "$:/language/Docs/PaletteColours/notification-border",
            "text": "通知邊框"
        },
        "$:/language/Docs/PaletteColours/page-background": {
            "title": "$:/language/Docs/PaletteColours/page-background",
            "text": "頁面背景"
        },
        "$:/language/Docs/PaletteColours/pre-background": {
            "title": "$:/language/Docs/PaletteColours/pre-background",
            "text": "pre 背景"
        },
        "$:/language/Docs/PaletteColours/pre-border": {
            "title": "$:/language/Docs/PaletteColours/pre-border",
            "text": "pre 邊框"
        },
        "$:/language/Docs/PaletteColours/primary": {
            "title": "$:/language/Docs/PaletteColours/primary",
            "text": "主顏色"
        },
        "$:/language/Docs/PaletteColours/select-tag-background": {
            "title": "$:/language/Docs/PaletteColours/select-tag-background",
            "text": "`<select>` 元素背景"
        },
        "$:/language/Docs/PaletteColours/select-tag-foreground": {
            "title": "$:/language/Docs/PaletteColours/select-tag-foreground",
            "text": "`<select>` 元素文字"
        },
        "$:/language/Docs/PaletteColours/sidebar-button-foreground": {
            "title": "$:/language/Docs/PaletteColours/sidebar-button-foreground",
            "text": "側邊欄按鈕前景"
        },
        "$:/language/Docs/PaletteColours/sidebar-controls-foreground-hover": {
            "title": "$:/language/Docs/PaletteColours/sidebar-controls-foreground-hover",
            "text": "懸停側邊欄控制項前景"
        },
        "$:/language/Docs/PaletteColours/sidebar-controls-foreground": {
            "title": "$:/language/Docs/PaletteColours/sidebar-controls-foreground",
            "text": "側邊欄控制項前景"
        },
        "$:/language/Docs/PaletteColours/sidebar-foreground-shadow": {
            "title": "$:/language/Docs/PaletteColours/sidebar-foreground-shadow",
            "text": "側邊欄前景陰影"
        },
        "$:/language/Docs/PaletteColours/sidebar-foreground": {
            "title": "$:/language/Docs/PaletteColours/sidebar-foreground",
            "text": "側邊欄前景"
        },
        "$:/language/Docs/PaletteColours/sidebar-muted-foreground-hover": {
            "title": "$:/language/Docs/PaletteColours/sidebar-muted-foreground-hover",
            "text": "懸停側邊欄低調前景"
        },
        "$:/language/Docs/PaletteColours/sidebar-muted-foreground": {
            "title": "$:/language/Docs/PaletteColours/sidebar-muted-foreground",
            "text": "側邊欄低調前景"
        },
        "$:/language/Docs/PaletteColours/sidebar-tab-background-selected": {
            "title": "$:/language/Docs/PaletteColours/sidebar-tab-background-selected",
            "text": "側邊欄選定的頁籤背景"
        },
        "$:/language/Docs/PaletteColours/sidebar-tab-background": {
            "title": "$:/language/Docs/PaletteColours/sidebar-tab-background",
            "text": "側邊欄頁籤背景"
        },
        "$:/language/Docs/PaletteColours/sidebar-tab-border-selected": {
            "title": "$:/language/Docs/PaletteColours/sidebar-tab-border-selected",
            "text": "側邊欄選定的頁籤邊框"
        },
        "$:/language/Docs/PaletteColours/sidebar-tab-border": {
            "title": "$:/language/Docs/PaletteColours/sidebar-tab-border",
            "text": "側邊欄頁籤邊框"
        },
        "$:/language/Docs/PaletteColours/sidebar-tab-divider": {
            "title": "$:/language/Docs/PaletteColours/sidebar-tab-divider",
            "text": "側邊欄頁籤分隔線"
        },
        "$:/language/Docs/PaletteColours/sidebar-tab-foreground-selected": {
            "title": "$:/language/Docs/PaletteColours/sidebar-tab-foreground-selected",
            "text": "側邊欄選定頁籤前景"
        },
        "$:/language/Docs/PaletteColours/sidebar-tab-foreground": {
            "title": "$:/language/Docs/PaletteColours/sidebar-tab-foreground",
            "text": "側邊欄頁籤前景"
        },
        "$:/language/Docs/PaletteColours/sidebar-tiddler-link-foreground-hover": {
            "title": "$:/language/Docs/PaletteColours/sidebar-tiddler-link-foreground-hover",
            "text": "側邊欄懸停條目鏈結前景"
        },
        "$:/language/Docs/PaletteColours/sidebar-tiddler-link-foreground": {
            "title": "$:/language/Docs/PaletteColours/sidebar-tiddler-link-foreground",
            "text": "側邊欄條目鏈結前景"
        },
        "$:/language/Docs/PaletteColours/site-title-foreground": {
            "title": "$:/language/Docs/PaletteColours/site-title-foreground",
            "text": "網站標題前景"
        },
        "$:/language/Docs/PaletteColours/static-alert-foreground": {
            "title": "$:/language/Docs/PaletteColours/static-alert-foreground",
            "text": "靜態警示前景"
        },
        "$:/language/Docs/PaletteColours/tab-background-selected": {
            "title": "$:/language/Docs/PaletteColours/tab-background-selected",
            "text": "選定的頁籤背景"
        },
        "$:/language/Docs/PaletteColours/tab-background": {
            "title": "$:/language/Docs/PaletteColours/tab-background",
            "text": "頁籤背景"
        },
        "$:/language/Docs/PaletteColours/tab-border-selected": {
            "title": "$:/language/Docs/PaletteColours/tab-border-selected",
            "text": "選定的頁籤邊框"
        },
        "$:/language/Docs/PaletteColours/tab-border": {
            "title": "$:/language/Docs/PaletteColours/tab-border",
            "text": "頁籤邊框"
        },
        "$:/language/Docs/PaletteColours/tab-divider": {
            "title": "$:/language/Docs/PaletteColours/tab-divider",
            "text": "頁籤分隔線"
        },
        "$:/language/Docs/PaletteColours/tab-foreground-selected": {
            "title": "$:/language/Docs/PaletteColours/tab-foreground-selected",
            "text": "選定的頁籤前景"
        },
        "$:/language/Docs/PaletteColours/tab-foreground": {
            "title": "$:/language/Docs/PaletteColours/tab-foreground",
            "text": "頁籤前景"
        },
        "$:/language/Docs/PaletteColours/table-border": {
            "title": "$:/language/Docs/PaletteColours/table-border",
            "text": "表格邊框"
        },
        "$:/language/Docs/PaletteColours/table-footer-background": {
            "title": "$:/language/Docs/PaletteColours/table-footer-background",
            "text": "表格頁腳背景"
        },
        "$:/language/Docs/PaletteColours/table-header-background": {
            "title": "$:/language/Docs/PaletteColours/table-header-background",
            "text": "表格標題背景"
        },
        "$:/language/Docs/PaletteColours/tag-background": {
            "title": "$:/language/Docs/PaletteColours/tag-background",
            "text": "標籤背景"
        },
        "$:/language/Docs/PaletteColours/tag-foreground": {
            "title": "$:/language/Docs/PaletteColours/tag-foreground",
            "text": "標籤前景"
        },
        "$:/language/Docs/PaletteColours/tiddler-background": {
            "title": "$:/language/Docs/PaletteColours/tiddler-background",
            "text": "條目背景"
        },
        "$:/language/Docs/PaletteColours/tiddler-border": {
            "title": "$:/language/Docs/PaletteColours/tiddler-border",
            "text": "條目邊框"
        },
        "$:/language/Docs/PaletteColours/tiddler-controls-foreground-hover": {
            "title": "$:/language/Docs/PaletteColours/tiddler-controls-foreground-hover",
            "text": "懸停的條目控制項前景"
        },
        "$:/language/Docs/PaletteColours/tiddler-controls-foreground-selected": {
            "title": "$:/language/Docs/PaletteColours/tiddler-controls-foreground-selected",
            "text": "選定的條目控制項前景"
        },
        "$:/language/Docs/PaletteColours/tiddler-controls-foreground": {
            "title": "$:/language/Docs/PaletteColours/tiddler-controls-foreground",
            "text": "條目控制項前景"
        },
        "$:/language/Docs/PaletteColours/tiddler-editor-background": {
            "title": "$:/language/Docs/PaletteColours/tiddler-editor-background",
            "text": "條目編輯器背景"
        },
        "$:/language/Docs/PaletteColours/tiddler-editor-border-image": {
            "title": "$:/language/Docs/PaletteColours/tiddler-editor-border-image",
            "text": "條目編輯器邊框圖片"
        },
        "$:/language/Docs/PaletteColours/tiddler-editor-border": {
            "title": "$:/language/Docs/PaletteColours/tiddler-editor-border",
            "text": "條目編輯器邊框"
        },
        "$:/language/Docs/PaletteColours/tiddler-editor-fields-even": {
            "title": "$:/language/Docs/PaletteColours/tiddler-editor-fields-even",
            "text": "條目編輯器中偶數欄位背景"
        },
        "$:/language/Docs/PaletteColours/tiddler-editor-fields-odd": {
            "title": "$:/language/Docs/PaletteColours/tiddler-editor-fields-odd",
            "text": "條目編輯器中奇數欄位背景"
        },
        "$:/language/Docs/PaletteColours/tiddler-info-background": {
            "title": "$:/language/Docs/PaletteColours/tiddler-info-background",
            "text": "條目資訊面板背景"
        },
        "$:/language/Docs/PaletteColours/tiddler-info-border": {
            "title": "$:/language/Docs/PaletteColours/tiddler-info-border",
            "text": "條目資訊面板邊框"
        },
        "$:/language/Docs/PaletteColours/tiddler-info-tab-background": {
            "title": "$:/language/Docs/PaletteColours/tiddler-info-tab-background",
            "text": "條目資訊面板頁籤背景"
        },
        "$:/language/Docs/PaletteColours/tiddler-link-background": {
            "title": "$:/language/Docs/PaletteColours/tiddler-link-background",
            "text": "條目鏈結背景"
        },
        "$:/language/Docs/PaletteColours/tiddler-link-foreground": {
            "title": "$:/language/Docs/PaletteColours/tiddler-link-foreground",
            "text": "條目鏈結前景"
        },
        "$:/language/Docs/PaletteColours/tiddler-subtitle-foreground": {
            "title": "$:/language/Docs/PaletteColours/tiddler-subtitle-foreground",
            "text": "條目副標題前景"
        },
        "$:/language/Docs/PaletteColours/tiddler-title-foreground": {
            "title": "$:/language/Docs/PaletteColours/tiddler-title-foreground",
            "text": "條目標題前景"
        },
        "$:/language/Docs/PaletteColours/toolbar-new-button": {
            "title": "$:/language/Docs/PaletteColours/toolbar-new-button",
            "text": "工具列 '新增條目' 按鈕前景"
        },
        "$:/language/Docs/PaletteColours/toolbar-options-button": {
            "title": "$:/language/Docs/PaletteColours/toolbar-options-button",
            "text": "工具列 '選項' 按鈕前景"
        },
        "$:/language/Docs/PaletteColours/toolbar-save-button": {
            "title": "$:/language/Docs/PaletteColours/toolbar-save-button",
            "text": "工具列 '儲存' 按鈕前景"
        },
        "$:/language/Docs/PaletteColours/toolbar-info-button": {
            "title": "$:/language/Docs/PaletteColours/toolbar-info-button",
            "text": "工具列 '資訊' 按鈕前景"
        },
        "$:/language/Docs/PaletteColours/toolbar-edit-button": {
            "title": "$:/language/Docs/PaletteColours/toolbar-edit-button",
            "text": "工具列 '編輯' 按鈕前景"
        },
        "$:/language/Docs/PaletteColours/toolbar-close-button": {
            "title": "$:/language/Docs/PaletteColours/toolbar-close-button",
            "text": "工具列 '關閉' 按鈕前景"
        },
        "$:/language/Docs/PaletteColours/toolbar-delete-button": {
            "title": "$:/language/Docs/PaletteColours/toolbar-delete-button",
            "text": "工具列 '刪除' 按鈕前景"
        },
        "$:/language/Docs/PaletteColours/toolbar-cancel-button": {
            "title": "$:/language/Docs/PaletteColours/toolbar-cancel-button",
            "text": "工具列 '取消' 按鈕前景"
        },
        "$:/language/Docs/PaletteColours/toolbar-done-button": {
            "title": "$:/language/Docs/PaletteColours/toolbar-done-button",
            "text": "工具列 '完成  按鈕前景"
        },
        "$:/language/Docs/PaletteColours/untagged-background": {
            "title": "$:/language/Docs/PaletteColours/untagged-background",
            "text": "未設標籤的背景"
        },
        "$:/language/Docs/PaletteColours/very-muted-foreground": {
            "title": "$:/language/Docs/PaletteColours/very-muted-foreground",
            "text": "非常低調前景"
        },
        "$:/language/EditTemplate/Body/External/Hint": {
            "title": "$:/language/EditTemplate/Body/External/Hint",
            "text": "此條目顯示儲存於主要的 TiddlyWiki 檔之外的內容。你可以編輯其標籤和欄位,但不能直接編輯內容本身"
        },
        "$:/language/EditTemplate/Body/Placeholder": {
            "title": "$:/language/EditTemplate/Body/Placeholder",
            "text": "輸入此條目的內容"
        },
        "$:/language/EditTemplate/Body/Preview/Type/Output": {
            "title": "$:/language/EditTemplate/Body/Preview/Type/Output",
            "text": "輸出"
        },
        "$:/language/EditTemplate/Field/Remove/Caption": {
            "title": "$:/language/EditTemplate/Field/Remove/Caption",
            "text": "刪除欄位"
        },
        "$:/language/EditTemplate/Field/Remove/Hint": {
            "title": "$:/language/EditTemplate/Field/Remove/Hint",
            "text": "刪除欄位"
        },
        "$:/language/EditTemplate/Field/Dropdown/Caption": {
            "title": "$:/language/EditTemplate/Field/Dropdown/Caption",
            "text": "欄位列表"
        },
        "$:/language/EditTemplate/Field/Dropdown/Hint": {
            "title": "$:/language/EditTemplate/Field/Dropdown/Hint",
            "text": "顯示欄位列表"
        },
        "$:/language/EditTemplate/Fields/Add/Button": {
            "title": "$:/language/EditTemplate/Fields/Add/Button",
            "text": "新增"
        },
        "$:/language/EditTemplate/Fields/Add/Button/Hint": {
            "title": "$:/language/EditTemplate/Fields/Add/Button/Hint",
            "text": "新增欄位至條目"
        },
        "$:/language/EditTemplate/Fields/Add/Dropdown/System": {
            "title": "$:/language/EditTemplate/Fields/Add/Dropdown/System",
            "text": "系統欄位"
        },
        "$:/language/EditTemplate/Fields/Add/Dropdown/User": {
            "title": "$:/language/EditTemplate/Fields/Add/Dropdown/User",
            "text": "使用者欄位"
        },
        "$:/language/EditTemplate/Fields/Add/Name/Placeholder": {
            "title": "$:/language/EditTemplate/Fields/Add/Name/Placeholder",
            "text": "欄位名稱"
        },
        "$:/language/EditTemplate/Fields/Add/Prompt": {
            "title": "$:/language/EditTemplate/Fields/Add/Prompt",
            "text": "新增欄位:"
        },
        "$:/language/EditTemplate/Fields/Add/Value/Placeholder": {
            "title": "$:/language/EditTemplate/Fields/Add/Value/Placeholder",
            "text": "欄位內容"
        },
        "$:/language/EditTemplate/Shadow/Warning": {
            "title": "$:/language/EditTemplate/Shadow/Warning",
            "text": "這是一個預設條目。您做的任何更改將會覆蓋來自 <<pluginLink>> 插件的預設版本。"
        },
        "$:/language/EditTemplate/Shadow/OverriddenWarning": {
            "title": "$:/language/EditTemplate/Shadow/OverriddenWarning",
            "text": "這是一個修改過的預設條目。刪除此條目可以還原為 <<pluginLink>> 插件中的預設版本。"
        },
        "$:/language/EditTemplate/Tags/Add/Button": {
            "title": "$:/language/EditTemplate/Tags/Add/Button",
            "text": "新增"
        },
        "$:/language/EditTemplate/Tags/Add/Button/Hint": {
            "title": "$:/language/EditTemplate/Tags/Add/Button/Hint",
            "text": "新增標籤"
        },
        "$:/language/EditTemplate/Tags/Add/Placeholder": {
            "title": "$:/language/EditTemplate/Tags/Add/Placeholder",
            "text": "標籤名稱"
        },
        "$:/language/EditTemplate/Tags/ClearInput/Caption": {
            "title": "$:/language/EditTemplate/Tags/ClearInput/Caption",
            "text": "清除輸入"
        },
        "$:/language/EditTemplate/Tags/ClearInput/Hint": {
            "title": "$:/language/EditTemplate/Tags/ClearInput/Hint",
            "text": "清除標籤輸入"
        },
        "$:/language/EditTemplate/Tags/Dropdown/Caption": {
            "title": "$:/language/EditTemplate/Tags/Dropdown/Caption",
            "text": "標籤清單"
        },
        "$:/language/EditTemplate/Tags/Dropdown/Hint": {
            "title": "$:/language/EditTemplate/Tags/Dropdown/Hint",
            "text": "顯示標籤清單"
        },
        "$:/language/EditTemplate/Title/BadCharacterWarning": {
            "title": "$:/language/EditTemplate/Title/BadCharacterWarning",
            "text": "請注意,避免在條目名稱中使用這些字元:<<bad-chars>>"
        },
        "$:/language/EditTemplate/Title/Exists/Prompt": {
            "title": "$:/language/EditTemplate/Title/Exists/Prompt",
            "text": "目標條目已經存在"
        },
        "$:/language/EditTemplate/Title/Relink/Prompt": {
            "title": "$:/language/EditTemplate/Title/Relink/Prompt",
            "text": "將在其他條目的 //tags// 和 //list// 欄位中的 ''<$text text=<<fromTitle>>/>'' 改為 ''<$text text=<<toTitle>>/>''"
        },
        "$:/language/EditTemplate/Title/References/Prompt": {
            "title": "$:/language/EditTemplate/Title/References/Prompt",
            "text": "下列對此條目的引用,不會自動更新:"
        },
        "$:/language/EditTemplate/Type/Dropdown/Caption": {
            "title": "$:/language/EditTemplate/Type/Dropdown/Caption",
            "text": "內容類型清單"
        },
        "$:/language/EditTemplate/Type/Dropdown/Hint": {
            "title": "$:/language/EditTemplate/Type/Dropdown/Hint",
            "text": "顯示內容類型清單"
        },
        "$:/language/EditTemplate/Type/Delete/Caption": {
            "title": "$:/language/EditTemplate/Type/Delete/Caption",
            "text": "刪除內容類型"
        },
        "$:/language/EditTemplate/Type/Delete/Hint": {
            "title": "$:/language/EditTemplate/Type/Delete/Hint",
            "text": "刪除內容類型"
        },
        "$:/language/EditTemplate/Type/Placeholder": {
            "title": "$:/language/EditTemplate/Type/Placeholder",
            "text": "內容類型"
        },
        "$:/language/EditTemplate/Type/Prompt": {
            "title": "$:/language/EditTemplate/Type/Prompt",
            "text": "類型:"
        },
        "$:/language/Exporters/StaticRiver": {
            "title": "$:/language/Exporters/StaticRiver",
            "text": "靜態 HTML"
        },
        "$:/language/Exporters/JsonFile": {
            "title": "$:/language/Exporters/JsonFile",
            "text": "JSON 檔案"
        },
        "$:/language/Exporters/CsvFile": {
            "title": "$:/language/Exporters/CsvFile",
            "text": "CSV 檔案"
        },
        "$:/language/Exporters/TidFile": {
            "title": "$:/language/Exporters/TidFile",
            "text": "\".tid\" 檔案"
        },
        "$:/language/Docs/Fields/_canonical_uri": {
            "title": "$:/language/Docs/Fields/_canonical_uri",
            "text": "外部圖片條目的完整的 URI"
        },
        "$:/language/Docs/Fields/bag": {
            "title": "$:/language/Docs/Fields/bag",
            "text": "條目的來源集的名稱"
        },
        "$:/language/Docs/Fields/caption": {
            "title": "$:/language/Docs/Fields/caption",
            "text": "顯示於頁籤或按鈕上的標題文字"
        },
        "$:/language/Docs/Fields/color": {
            "title": "$:/language/Docs/Fields/color",
            "text": "條目的 CSS 顏色值"
        },
        "$:/language/Docs/Fields/component": {
            "title": "$:/language/Docs/Fields/component",
            "text": "負責[[警示條目|AlertMechanism]]的元件名稱"
        },
        "$:/language/Docs/Fields/created": {
            "title": "$:/language/Docs/Fields/created",
            "text": "條目的建立日期"
        },
        "$:/language/Docs/Fields/creator": {
            "title": "$:/language/Docs/Fields/creator",
            "text": "條目的建立者"
        },
        "$:/language/Docs/Fields/current-tiddler": {
            "title": "$:/language/Docs/Fields/current-tiddler",
            "text": "用於快取[[瀏覽歷史列表|HistoryMechanism]]的最上層條目"
        },
        "$:/language/Docs/Fields/dependents": {
            "title": "$:/language/Docs/Fields/dependents",
            "text": "插件的相依插件列表"
        },
        "$:/language/Docs/Fields/description": {
            "title": "$:/language/Docs/Fields/description",
            "text": "插件的說明、描述"
        },
        "$:/language/Docs/Fields/draft.of": {
            "title": "$:/language/Docs/Fields/draft.of",
            "text": "草稿條目,包含條目的標題、標籤、欄位 ..."
        },
        "$:/language/Docs/Fields/draft.title": {
            "title": "$:/language/Docs/Fields/draft.title",
            "text": "草稿條目的標題"
        },
        "$:/language/Docs/Fields/footer": {
            "title": "$:/language/Docs/Fields/footer",
            "text": "wizard 的註腳"
        },
        "$:/language/Docs/Fields/icon": {
            "title": "$:/language/Docs/Fields/icon",
            "text": "條目的標題含有與條目關聯的圖示"
        },
        "$:/language/Docs/Fields/library": {
            "title": "$:/language/Docs/Fields/library",
            "text": "若設為 \"yes\",表示條目應該被儲存為一個 JavaScript 程式庫"
        },
        "$:/language/Docs/Fields/list": {
            "title": "$:/language/Docs/Fields/list",
            "text": "條目的列表,指定一些條目的標題清單"
        },
        "$:/language/Docs/Fields/list-before": {
            "title": "$:/language/Docs/Fields/list-before",
            "text": "當前條目名稱將被新增到條目排序清單中的設定條目名稱之前,或若此欄位存在但是空的,則被新增於清單的前端"
        },
        "$:/language/Docs/Fields/list-after": {
            "title": "$:/language/Docs/Fields/list-after",
            "text": "當前條目名稱將被新增到條目排序清單中的設定條目名稱之後,或若此欄位存在但是空的,則被新增於清單的尾端"
        },
        "$:/language/Docs/Fields/modified": {
            "title": "$:/language/Docs/Fields/modified",
            "text": "條目的最近修改日期與時間"
        },
        "$:/language/Docs/Fields/modifier": {
            "title": "$:/language/Docs/Fields/modifier",
            "text": "條目的最近修改者"
        },
        "$:/language/Docs/Fields/name": {
            "title": "$:/language/Docs/Fields/name",
            "text": "具可讀性的套件條目的名稱"
        },
        "$:/language/Docs/Fields/plugin-priority": {
            "title": "$:/language/Docs/Fields/plugin-priority",
            "text": "套件條目的優先級數值"
        },
        "$:/language/Docs/Fields/plugin-type": {
            "title": "$:/language/Docs/Fields/plugin-type",
            "text": "套件條目的類型"
        },
        "$:/language/Docs/Fields/released": {
            "title": "$:/language/Docs/Fields/released",
            "text": "TiddlyWiki 的釋出日期"
        },
        "$:/language/Docs/Fields/revision": {
            "title": "$:/language/Docs/Fields/revision",
            "text": "條目存放於伺服器中的修訂版本"
        },
        "$:/language/Docs/Fields/source": {
            "title": "$:/language/Docs/Fields/source",
            "text": "條目的網址"
        },
        "$:/language/Docs/Fields/subtitle": {
            "title": "$:/language/Docs/Fields/subtitle",
            "text": "一個 wizard 的副標題"
        },
        "$:/language/Docs/Fields/tags": {
            "title": "$:/language/Docs/Fields/tags",
            "text": "條目的標籤清單"
        },
        "$:/language/Docs/Fields/text": {
            "title": "$:/language/Docs/Fields/text",
            "text": "條目的內文"
        },
        "$:/language/Docs/Fields/throttle.refresh": {
            "title": "$:/language/Docs/Fields/throttle.refresh",
            "text": "如果存在,則限制此條目的刷新"
        },
        "$:/language/Docs/Fields/title": {
            "title": "$:/language/Docs/Fields/title",
            "text": "條目的唯一名稱"
        },
        "$:/language/Docs/Fields/toc-link": {
            "title": "$:/language/Docs/Fields/toc-link",
            "text": "若設爲: \"no\",則抑制目錄樹中的條目鏈接。"
        },
        "$:/language/Docs/Fields/type": {
            "title": "$:/language/Docs/Fields/type",
            "text": "條目的內容類型"
        },
        "$:/language/Docs/Fields/version": {
            "title": "$:/language/Docs/Fields/version",
            "text": "插件的版本資訊"
        },
        "$:/language/Docs/Fields/_is_skinny": {
            "title": "$:/language/Docs/Fields/_is_skinny",
            "text": "如果存在,則表示必須從伺服器載入條目的文字欄位"
        },
        "$:/language/Filters/AllTiddlers": {
            "title": "$:/language/Filters/AllTiddlers",
            "text": "所有條目,不含系統條目"
        },
        "$:/language/Filters/RecentSystemTiddlers": {
            "title": "$:/language/Filters/RecentSystemTiddlers",
            "text": "最近修改的條目,包含系統條目"
        },
        "$:/language/Filters/RecentTiddlers": {
            "title": "$:/language/Filters/RecentTiddlers",
            "text": "最近修改的條目"
        },
        "$:/language/Filters/AllTags": {
            "title": "$:/language/Filters/AllTags",
            "text": "所有標籤,不含系統標籤"
        },
        "$:/language/Filters/Missing": {
            "title": "$:/language/Filters/Missing",
            "text": "佚失條目"
        },
        "$:/language/Filters/Drafts": {
            "title": "$:/language/Filters/Drafts",
            "text": "草稿條目"
        },
        "$:/language/Filters/Orphans": {
            "title": "$:/language/Filters/Orphans",
            "text": "孤立條目"
        },
        "$:/language/Filters/SystemTiddlers": {
            "title": "$:/language/Filters/SystemTiddlers",
            "text": "系統條目"
        },
        "$:/language/Filters/ShadowTiddlers": {
            "title": "$:/language/Filters/ShadowTiddlers",
            "text": "預設條目"
        },
        "$:/language/Filters/OverriddenShadowTiddlers": {
            "title": "$:/language/Filters/OverriddenShadowTiddlers",
            "text": "被覆寫的預設條目"
        },
        "$:/language/Filters/SessionTiddlers": {
            "title": "$:/language/Filters/SessionTiddlers",
            "text": "自維基載入後修改的條目"
        },
        "$:/language/Filters/SystemTags": {
            "title": "$:/language/Filters/SystemTags",
            "text": "系統標籤"
        },
        "$:/language/Filters/StoryList": {
            "title": "$:/language/Filters/StoryList",
            "text": "故事河中的條目,不含 ~$:/AdvancedSearch"
        },
        "$:/language/Filters/TypedTiddlers": {
            "title": "$:/language/Filters/TypedTiddlers",
            "text": "非維基文字條目"
        },
        "GettingStarted": {
            "title": "GettingStarted",
            "text": "\\define lingo-base() $:/language/ControlPanel/Basics/\n歡迎使用 ~TiddlyWiki 及參與 ~TiddlyWiki 社群\n\n開始將重要資訊存放於 ~TiddlyWiki 之前,確認您可以可靠地儲存變更是很重要的。詳細資訊請參閱 https://tiddlywiki.com/#GettingStarted\n\n!! 設定此 ~TiddlyWiki\n\n<div class=\"tc-control-panel\">\n\n|<$link to=\"$:/SiteTitle\"><<lingo Title/Prompt>></$link> |<$edit-text tiddler=\"$:/SiteTitle\" default=\"\" tag=\"input\"/> |\n|<$link to=\"$:/SiteSubtitle\"><<lingo Subtitle/Prompt>></$link> |<$edit-text tiddler=\"$:/SiteSubtitle\" default=\"\" tag=\"input\"/> |\n|<$link to=\"$:/DefaultTiddlers\"><<lingo DefaultTiddlers/Prompt>></$link> |<<lingo DefaultTiddlers/TopHint>><br> <$edit tag=\"textarea\" tiddler=\"$:/DefaultTiddlers\"/><br>//<<lingo DefaultTiddlers/BottomHint>>// |\n</div>\n\n請參閱[[控制台|$:/ControlPanel]]查看更多選項。"
        },
        "$:/language/Help/build": {
            "title": "$:/language/Help/build",
            "description": "自動執行已組態的命令",
            "text": "產生指定的建置目標為當前 wiki。若未指定任何建置目標,則產生所有可用的目標。\n\n```\n--build <target> [<target> ...]\n```\n\n建置目標在 wiki 資料夾的 `tiddlywiki.info` 檔案中定義。\n"
        },
        "$:/language/Help/clearpassword": {
            "title": "$:/language/Help/clearpassword",
            "description": "清除用於後續加密的密碼",
            "text": "清除用於後續加密的密碼\n\n```\n--clearpassword\n```\n"
        },
        "$:/language/Help/default": {
            "title": "$:/language/Help/default",
            "text": "\\define commandTitle()\n$:/language/Help/$(command)$\n\\end\n```\n用法: tiddlywiki [<wikifolder>] [--<command> [<args>...]...]\n```\n\n可用的命令:\n\n<ul>\n<$list filter=\"[commands[]sort[title]]\" variable=\"command\">\n<li><$link to=<<commandTitle>>><$macrocall $name=\"command\" $type=\"text/plain\" $output=\"text/plain\"/></$link>: <$transclude tiddler=<<commandTitle>> field=\"description\"/></li>\n</$list>\n</ul>\n\n取得關於某個命令的詳細説明:\n\n```\ntiddlywiki --help <command>\n```\n"
        },
        "$:/language/Help/deletetiddlers": {
            "title": "$:/language/Help/deletetiddlers",
            "description": "刪除一組條目",
            "text": "<<.from-version \"5.1.20\">> 刪除由篩選器標識的一組條目。\n\n```\n--deletetiddlers <filter>\n```\n"
        },
        "$:/language/Help/editions": {
            "title": "$:/language/Help/editions",
            "description": "列出可用的 TiddlyWiki 版本",
            "text": "列出可用版本的名稱和描述。您可以用 `--init` 命令建立一個指定版本的新維基。\n\n```\n--editions\n```\n"
        },
        "$:/language/Help/fetch": {
            "title": "$:/language/Help/fetch",
            "description": "通過網址從維基擷取條目",
            "text": "通過 HTTP/HTTPS 擷取一個或多個檔案,並導入符合篩選器的條目,可選的轉換傳入的名稱。\n\n```\n--fetch file <url> <import-filter> <transform-filter>\n--fetch files <url-filter> <import-filter> <transform-filter>\n--fetch raw-file <url> <transform-filter>\n--fetch raw-files <url-filter> <transform-filter>\n```\n\n \"file\" 和 \"files\" 選項擷取指定的檔案,並嘗試導入其中的條目(與將檔案拖動到瀏覽器視窗中的處理相同)。 \"raw-file\" 和 \"raw-files\" 變選項擷取指定的檔案,並將原始檔案資料存儲於條目,而不套用導入邏輯。\n\n使用 \"file\" and \"raw-file\" 選項為僅擷取單個檔案,且第一個參數為要讀取檔案的網址。\n\n使用 \"files\" 和 \"raw-files\" 選項為擷取多個檔案,且第一個參數是一個產生要讀取檔案的網址清單的篩選器。例如,給定標籤為 \"remote-server\" 的一組具有欄位 \"url\" 的條目,篩選器 `[tag[remote-server]get[url]]` 將取回所有可用的網址。\n\n對於 \"file\" 和 \"files\" 選項,the `<import-filter>` 參數指定一個篩選器,用於確定要導入哪些條目。如果未提供,則預設為 `[all[tiddlers]]`。\n\n對於所有選項,`<transform-filter>` 參數指定一個可選的篩選器,用於轉換導入條目的名稱。例如,`[addprefix[$:/myimports/]]` 會將前綴  `$:/myimports/` 加至每個名稱。\n\n於 `--fetch` 之前使用 `--verbose` 命令,將在導入期間輸出進度資訊。\n\n請注意,TiddlyWiki 不會擷取一個已經載入插件的舊版本。\n\n以下範例從 https://tiddlywiki.com 取回所有非系統條目,並將其儲存到一個 JSON 檔案:\n\n```\ntiddlywiki --verbose --fetch file \"https://tiddlywiki.com/\" \"[!is[system]]\" \"\" --rendertiddler \"$:/core/templates/exporters/JsonFile\" output.json text/plain \"\" exportFilter \"[!is[system]]\"\n```\n\n以下範例從 https://tiddlywiki.com 取回 \"favicon\" 檔案,並將其儲存在名為 \"output.ico\" 的檔案中。請注意,在 \"--fetch\" 命令中引用的中間條目 \"Icon Tiddler\",因為它被用作轉換篩選器來替換預設的名稱,而 \"--savetiddler\" 命令沒有引號,因為它是直接用作標題。\n\n```\ntiddlywiki --verbose --fetch raw-file \"https://tiddlywiki.com/favicon.ico\" \"[[Icon Tiddler]]\" --savetiddler \"Icon Tiddler\" output.ico\n```\n"
        },
        "$:/language/Help/help": {
            "title": "$:/language/Help/help",
            "description": "顯示 TiddlyWiki 命令的説明",
            "text": "顯示命令的説明文字:\n\n```\n--help [<command>]\n```\n\n若省略命令名稱,則顯示可用命令的清單。\n"
        },
        "$:/language/Help/import": {
            "title": "$:/language/Help/import",
            "description": "從檔案導入條目",
            "text": "從 TiddlyWiki 檔案 (`.html`)、`.tiddler`、`.tid`、`.json` 或其他本機檔案導入條目。必須明確指定解串器,而不像 `load` 命令,從檔案的副檔名推斷解串器。\n\n```\n--import <filepath> <deserializer> [<title>] [<encoding>]\n```\n\n核心的解串器包括:\n\n* application/javascript\n* application/json\n* application/x-tiddler\n* application/x-tiddler-html-div\n* application/x-tiddlers\n* text/html\n* text/plain\n\n導入的條目名稱,預設為檔名。\n\n編碼預設為 \"utf8\",但用於導入二進位檔案可以是 \"base64\"。\n\n請注意,TiddlyWiki 不會導入舊版本的已載入插件。\n"
        },
        "$:/language/Help/init": {
            "title": "$:/language/Help/init",
            "description": "初始化一個新的 wiki 資料夾",
            "text": "初始化一個空的 [[WikiFolder|WikiFolders]] 的指定版本的副本。\n\n```\n--init <edition> [<edition> ...]\n```\n\n例如:\n\n```\ntiddlywiki ./MyWikiFolder --init empty\n```\n\n注意:\n\n* 若有需要,將建立 wiki 資料夾目錄\n* 其中 \"edition\" 預設為 ''empty''\n* 若 wiki 資料夾不是空的,則初始化命令將失敗\n* 初始化命令會刪除 'tiddlywiki.info' 檔內所有 'includeWikis' 的定義。\n* 當指定多個版本時,這些版本於初始化後,將覆寫早期版本共用的所有檔案 (故此最終的 `tiddlywiki.info` 檔案將是從最近的版本複製而得)\n* `--editions` 傳回所有可用版本的清單。\n"
        },
        "$:/language/Help/listen": {
            "title": "$:/language/Help/listen",
            "description": "為 TiddlyWiki 提供一個 HTTP 伺服器介面",
            "text": "通過 HTTP 提供一個維基服務。\n\nlisten 命令使用[[命名的命令參數|NamedCommandParameters]]:\n\n```\n--listen [<name>=<value>]...\n```\n\n所有參數都是可選的, 具有安全的預設值, 可以按任意順序指定。認可的參數有:\n\n* ''host'' - 可選的主機名稱, (預設為 \"127.0.0.1\" 或名為 \"localhost\")\n* ''path-prefix'' - 可選的路徑前綴\n* ''port'' - 偵聽的埠號;非數值會被解譯為一個系統環境變數,從其中提取埠號 (預設為 \"8080\")\n* ''credentials'' - 憑證 CSV 檔案的路徑名(相對於維基資料夾)\n* ''anon-username'' - 匿名使用者的編輯署名\n* ''username'' - 可選的基本驗證使用者名稱\n* ''password'' - 可選的基本驗證密碼\n* ''authenticated-user-header'' - 可選的標頭名稱,用於受信任身份驗證\n* ''readers'' - 允許讀取此維基的主體,以逗號分隔的清單\n* ''writers'' - 允許寫入此維基的主體,以逗號分隔的清單\n* ''csrf-disable'' - 設置為 \"yes\" 以禁用 CSRF 檢查 (預設為 \"no\")\n* ''root-tiddler'' - 服務的基本條目 (預設為 \"$:/core/save/all\")\n* ''root-render-type'' - 呈現的基本條目的內容類型 (預設為 \"text/plain\")\n* ''root-serve-type'' - 服務的基本條目的內容類型 (預設為 \"text/html\")\n* ''tls-cert'' - TLS 證書檔案的路徑名(相對於維基資料夾)\n* ''tls-key'' - TLS 密鑰檔案的路徑名(相對於維基資料夾)\n* ''debug-level'' - 可選的偵錯層級;設定為 \"debug\" 來檢視請求的詳細資訊;(預設為 \"none\")\n* ''gzip'' - 設為 \"yes\" 以啟用某些 http 端點的 gzip 壓縮 (預設為 \"no\")\n\n有關向整個本地網路開啟實例的資訊,以及可能的安全問題,請參閱 TiddlyWiki.com 的 WebServer 條目。\n"
        },
        "$:/language/Help/load": {
            "title": "$:/language/Help/load",
            "description": "從檔案中載入條目",
            "text": "從 TiddlyWiki (`.html`), `.tiddler`, `.tid`, `.json` 或其他本機檔案載入條目。應用的處理程序取決於導入檔案的副檔名。如果您需要明確指定解串器和編碼,請改用 `import` 命令。\n\n```\n--load <filepath> [noerror]\n--load <dirpath> [noerror]\n```\n\n預設情況下, 如果未找到條目,load 命令會引發錯誤。通過提供可選的 \"noerror\" 參數可以抑制該錯誤。\n\n從已加密的 TiddlyWiki 檔案中載入條目,須使用 PasswordCommand 指定密碼,例如:\n\n```\ntiddlywiki ./MyWiki --password pa55w0rd --load my_encrypted_wiki.html\n```\n\n請注意 TiddlyWiki 將不載入舊版本的已掛載的插件。\n"
        },
        "$:/language/Help/makelibrary": {
            "title": "$:/language/Help/makelibrary",
            "description": "構建升級處理所需的程式庫插件",
            "text": "為升級處理構建 `$:/UpgradeLibrary` 條目。\n\n升級程式庫被格式化為一個插件類型為 `library` 的一般插件條目。它包含 TiddlyWiki5 存儲庫中所有可用的插件、佈景主題和語言包的副本。\n\n此命令僅供內部使用;它只是與使用者構建一個自訂的升級程式相關。\n\n```\n--makelibrary <title>\n```\n\n標題參數預設為 `$:/UpgradeLibrary`。\n"
        },
        "$:/language/Help/notfound": {
            "title": "$:/language/Help/notfound",
            "text": "無此項目說明"
        },
        "$:/language/Help/output": {
            "title": "$:/language/Help/output",
            "description": "設定後續命令的基準輸出資料夾",
            "text": "設定後續命令的基準輸出資料夾,預設為該版本資料夾的 `output` 子資料夾。\n\n```\n--output <pathname>\n```\n\n若指定的路徑是相對路徑,則它是被解析相對於當前的工作資料夾。例如:`--output .` 將輸出資料夾設定為當前工作資料夾。"
        },
        "$:/language/Help/password": {
            "title": "$:/language/Help/password",
            "description": "設定用以加密的密碼",
            "text": "設定用以加密的密碼\n\n```\n--password <password>\n```\n\n''請注意'':這不是用於提供 TiddlyWiki 具有密碼保護功能。相反地,請看 [[ServerCommand]] 的密碼選項說明。\n"
        },
        "$:/language/Help/render": {
            "title": "$:/language/Help/render",
            "description": "呈現個別條目到檔案",
            "text": "呈現由篩選器標識的個別條目,並將結果儲存到指定的檔案。\n\n可選擇性地指定範本條目名稱。在此情況下,不是直接呈現每個條目,而是使用設為正在呈現的條目名稱的 \"currentTiddler\" 變數,來呈現範本條目。\n\n也可以選擇性地指定附加變數的名稱和值。\n\n```\n--render <tiddler-filter> [<filename-filter>] [<render-type>] [<template>] [<name>] [<value>]\n```\n\n* ''tiddler-filter'': 標識要呈現的條目的篩選器\n* ''filename-filter'': 可選的篩選器,轉換條目名稱至路徑名。如果省略,預設為 `[is[tiddler]addsuffix[.html]]`,其使用未改變的條目名稱為檔名\n* ''template'': 可選的範本,用於呈現每個條目\n* ''render-type'': 可選的呈現類型:`text/html` (預設值) 會傳回完整的 HTML 文字,而 `text/plain` 只會傳回文字內容 (即其忽略 HTML 標記與其他不可印出的資料)\n* ''name'': 可選的變數名稱\n* ''value'': 可選的變數值\n\n預設情況下,檔名被解析為相對於發行版資料夾的 `output` 子資料夾。`--output` 命令可用於將輸出指到一個不同的資料夾。\n\n附註:\n\n* 輸出資料夾不清除任何現有的檔案\n* 檔名的路徑中,任何不存在的資料夾,將自動建立。\n* 當正呈現的條目名稱中帶有空格,請注意同時使用命令列介面所要求的引號,與 TiddlyWiki 的雙重方括號;`--render \"[[Motovun Jack.jpg]]\"`\n* 所選的項目被設定為當前正在呈現的條目名稱,以此評估檔名篩選器,允條目名稱用作基礎計算的檔名。例如,`[encodeuricomponent[]addprefix[static/]]` 為每個條目名稱套用 URI 編碼,然後增加首碼 `static/`\n* `--render` 命令是已棄用的 `--rendertiddler` 和 `--rendertiddlers` 的一個更靈活的替代命令。\n\n範例:\n\n* `--render \"[!is[system]]\" \"[encodeuricomponent[]addprefix[tiddlers/]addsuffix[.html]]\"` -- 呈現所有非系統條目為 \"tiddlers\" 子資料夾中的檔案,檔名為 URL 編碼的條目名稱和副檔名 HTML\n"
        },
        "$:/language/Help/rendertiddler": {
            "title": "$:/language/Help/rendertiddler",
            "description": "呈現個別條目為指定的內容類型",
            "text": "(請注意:`--rendertiddler` 命令已被棄用,而支援新的、更靈活得 `--render` 命令)\n\n呈現個別條目為指定的[[內容類型|ContentType]],預設為 `text/html` 且儲存為指定的檔名。\n\n還能可選地指定一個範本條目的名稱,在這種情況下,\"currentTiddler\" 變數設為正在呈現的條目 (第一個參數值) 與範本條目合併呈現。\n\n也能可選地指定附加變數的名稱與其值。\n\n```\n--rendertiddler <title> <filename> [<type>] [<template>] [<name>] [<value>]\n```\n\n預設情況下,檔名被解析為相對於發行版資料夾的 `output` 子資料夾。 `--output` 命令可以用於將輸出指定到一個不同的資料夾。\n\n自動建立在檔案名稱的路徑中任何缺少的資料夾。\n\n例如,以下命令通過使用核心範本 `$:/core/templates/exporters/JsonFile`,將所有符合篩選器 `[tag[done]]` 的條目儲存到名為 `output.json` 的 JSON 檔案。\n\n```\n--rendertiddler \"$:/core/templates/exporters/JsonFile\" output.json text/plain \"\" exportFilter \"[tag[done]]\"\n```"
        },
        "$:/language/Help/rendertiddlers": {
            "title": "$:/language/Help/rendertiddlers",
            "description": "呈現符合篩選條件的條目為指定的內容類型",
            "text": "(請注意:`--rendertiddlers` 命令已被棄用,而支援新的、更靈活得 `--render` 命令)\n\n呈現符合篩選條的條目為指定的[[內容類型|ContentType]] (預設為 `text/html`) 與副檔名 (預設為 `.html`).\n\n```\n--rendertiddlers '<filter>' <template> <pathname> [<type>] [<extension>] [\"noclean\"]\n```\n\n例如:\n\n```\n--rendertiddlers '[!is[system]]' $:/core/templates/static.tiddler.html ./static text/plain\n```\n\n預設情況下,路徑名被解析為相對於發行版資料夾的 `output` 子資料夾。 `--output` 命令可以用於將輸出指定到一個不同的資料夾。\n\n在目標資料夾中的任何檔案都會被刪除,除非指定 ''noclean'' 旗標。若缺少目標資料夾,則以遞迴方式建立。"
        },
        "$:/language/Help/save": {
            "title": "$:/language/Help/save",
            "description": "將個別原始條目儲存到檔案",
            "text": "將篩選器標識的個別條目,以原始文字或二進位格式,儲存到指定的檔案。\n\n```\n--save <tiddler-filter> <filename-filter>\n```\n\n* ''tiddler-filter'': 標識要儲存的條目的篩選器\n* ''filename-filter'': 可選的篩選器,轉換條目名稱至路徑名。如果省略,預設為 `[is[tiddler]]`,其使用未改變的條目名稱為檔名\n\n附註:\n\n* 輸出資料夾不清除任何現有的檔案\n* 檔名的路徑中,任何不存在的目錄,將自動建立。\n* 當正儲存的條目的名稱中帶有空格,請注意同時使用命令列介面所要求的引號,與 TiddlyWiki 的雙重方括號;`--save  \"[[Motovun Jack.jpg]]\"`\n* 所選的項目被設定為當前正在儲存的條目名稱,以此評估檔案名篩選器,允條目名稱用作基礎計算的檔名。例如,`[encodeuricomponent[]addprefix[static/]]` 為每個條目名稱套用 URI 編碼,然後增加首碼 `static/`\n* `--save` 命令是已被棄用的 `--savetiddler` 和 `--savetiddlers` 的一個更靈活的替代命令。\n\n範例:\n\n* `--save \"[!is[system]is[image]]\" \"[encodeuricomponent[]addprefix[tiddlers/]]\"` -- 儲存所有非系統的圖像條目為 \"tiddlers\" 子資料夾中的檔案,檔名為 URL 編碼的條目名稱"
        },
        "$:/language/Help/savetiddler": {
            "title": "$:/language/Help/savetiddler",
            "description": "將條目的原始內容儲存到一個檔案",
            "text": "(請注意:`--savetiddler` 命令已被棄用,而支援新的、更靈活得 `--save` 命令)\n\n儲存個別條目的原始文字或二進位格式到指定的檔名。\n\n```\n--savetiddler <title> <filename>\n```\n\n預設情況下,檔名被解析為相對於發行版資料夾的 `output` 子資料夾。 `--output` 命令可以用於將輸出指定到一個不同的資料夾。\n\n自動建立在檔案名稱的路徑中任何缺少的資料夾。"
        },
        "$:/language/Help/savetiddlers": {
            "title": "$:/language/Help/savetiddlers",
            "description": "將一群條目的原始內容儲存到一個資料夾",
            "text": "(請注意:`--savetiddlers` 命令已被棄用,而支援新的、更靈活得 `--save` 命令)\n\n儲存一群條目的原始文字或二進位格式到指定的資料夾。\n\n```\n--savetiddlers <filter> <pathname> [noclean]\n```\n\n預設情況下,路徑名被解析為相對於發行版資料夾的 `output` 子資料夾。 `--output` 命令可以用於將輸出指定到一個不同的資料夾。\n\n儲存指定的檔案之前,會先清除輸出目錄的現有檔案。可藉由指定 ''noclean'' 旗標,停用該刪除動作。\n\n自動建立在路徑中任何缺少的資料夾。\n"
        },
        "$:/language/Help/savewikifolder": {
            "title": "$:/language/Help/savewikifolder",
            "description": "將維基儲存到一個新的維基資料夾",
            "text": "<<.from-version \"5.1.20\">> 將當前維基儲存為一個維基資料夾,包含條目、插件和配置:\n\n```\n--savewikifolder <wikifolderpath> [<filter>]\n```\n\n* 目標維基資料夾必須為空或不存在\n* 篩選器指定應包括哪些條目。其為可選,預設為 `[all[tiddlers]]`\n* 官方插件庫中的插件,將替換為 `tiddlywiki.info` 檔案中引用到的插件\n* 自訂插件將解壓縮到自己的資料夾中\n\n常見的用法是將一個 TiddlyWiki HTML 檔案轉換成維基資料夾:\n\n```\ntiddlywiki --load ./mywiki.html --savewikifolder ./mywikifolder\n```\n"
        },
        "$:/language/Help/server": {
            "title": "$:/language/Help/server",
            "description": "提供一個 HTTP 伺服器介面到 TiddlyWiki (已棄用,支持新的 listen 命令)",
            "text": "在伺服器中內建 TiddlyWiki5 是非常簡單。雖與 TiddlyWeb 相容,但不支援許多健全網際網路面向的使用方式所需的功能。\n\n提供呈現一個指定條目,也可將個別條目編碼成 JSON,且支援基本的 HTTP 操作 `GET`、`PUT` 及 `DELETE`.\n\n```\n--server <port> <root-tiddler> <root-render-type> <root-serve-type> <username> <password> <host> <path-prefix> <debug-level>\n```\n\n參數說明:\n\n* ''port'' - 要偵聽的埠號;非數值會被解譯為一個系統環境變數,從其中提取埠號 (預設為 \"8080\")\n* ''root-tiddler'' - 服務的基本條目 (預設為 \"$:/core/save/all\")\n* ''root-render-type'' - 呈現的基本條目的內容類型 (預設為 \"text/plain\")\n* ''root-serve-type'' - 服務的基本條目的內容類型 (預設為 \"text/html\")\n* ''username'' - 預設的編輯者署名\n* ''password'' - 可選的基本驗證密碼\n* ''host'' - 可選的主機名稱, (預設為 \"127.0.0.1\" 或名為 \"localhost\")\n* ''path-prefix'' - 可選的的路徑前綴\n* ''debug-level'' - 可選的偵錯層級;設定為 \"debug\" 來檢視請求的詳細資訊;(預設為 \"none\")\n\n若指定密碼參數,瀏覽器將提示使用者輸入帳號與密碼。注意,密碼係以明碼方式傳遞,應只在受信任的網路或 HTTPS 上使用。\n\n例如:\n\n```\n--server 8080 $:/core/save/all text/plain text/html MyUserName passw0rd\n```\n\n若您需要設定主機名稱或路徑前綴,而不要求輸入密碼,則可以指定空字串的使用者名和密碼。\n\n```\n--server 8080 $:/core/save/all text/plain text/html \"\" \"\" 192.168.0.245\n```\n\n使用這樣的位址,會將您的系統暴露給本地網路。有關向整個本地網路開啟實例的資訊,以及可能的安全問題,請參閱 TiddlyWiki.com 的 WebServer 條目。\n\n同時執行多個 TiddlyWiki 伺服器,須分別指定不同的埠號。使用環境變數,有助於將埠號傳遞給 Node.js 進程。本示例引用一個名為 \"MY_PORT_NUMBER\" 的環境變數:\n\n```\n--server MY_PORT_NUMBER $:/core/save/all text/plain text/html MyUserName passw0rd\n```"
        },
        "$:/language/Help/setfield": {
            "title": "$:/language/Help/setfield",
            "description": "準備用於外部條目",
            "text": "//請注意此命令是試驗性的,且可能會更改或在最終定稿前被替換//\n\n設定一群條目的指定欄位到 wikifying 範本條目的結果,其中的 `currentTiddler` 變數設定為各該條目。\n\n```\n--setfield <filter> <fieldname> <templatetitle> <rendertype>\n```\n\n參數說明:\n\n* ''filter'' - 受影響的辨識條目的篩選條件\n* ''fieldname'' - 要修改的欄位(預設為 \"text\")\n* ''templatetitle'' - 該條目 wikify 到指定欄位。若為空白或丟失,則刪除指定的欄位\n* ''rendertype'' - 要呈現的文本類型(預設為 \"text/plain\"; \"text/html\" 可以用於包含 HTML 標記))\n"
        },
        "$:/language/Help/unpackplugin": {
            "title": "$:/language/Help/unpackplugin",
            "description": "從插件解開附屬的條目",
            "text": "提取插件的附屬條目,將其建立為一般條目:\n\n```\n--unpackplugin <title>\n```\n"
        },
        "$:/language/Help/verbose": {
            "title": "$:/language/Help/verbose",
            "description": "觸發詳細的輸出模式",
            "text": "觸發顯示詳細的命令執行過程,可用於偵錯\n\n```\n--verbose\n```\n"
        },
        "$:/language/Help/version": {
            "title": "$:/language/Help/version",
            "description": "顯示 TiddlyWiki 的版本編號",
            "text": "顯示 TiddlyWiki 的版本編號。\n\n```\n--version\n```\n"
        },
        "$:/language/Import/Imported/Hint": {
            "title": "$:/language/Import/Imported/Hint",
            "text": "下列條目已被導入:"
        },
        "$:/language/Import/Listing/Cancel/Caption": {
            "title": "$:/language/Import/Listing/Cancel/Caption",
            "text": "取消"
        },
        "$:/language/Import/Listing/Hint": {
            "title": "$:/language/Import/Listing/Hint",
            "text": "這些條目已備妥導入:"
        },
        "$:/language/Import/Listing/Import/Caption": {
            "title": "$:/language/Import/Listing/Import/Caption",
            "text": "導入"
        },
        "$:/language/Import/Listing/Select/Caption": {
            "title": "$:/language/Import/Listing/Select/Caption",
            "text": "選擇"
        },
        "$:/language/Import/Listing/Status/Caption": {
            "title": "$:/language/Import/Listing/Status/Caption",
            "text": "狀態"
        },
        "$:/language/Import/Listing/Title/Caption": {
            "title": "$:/language/Import/Listing/Title/Caption",
            "text": "條目"
        },
        "$:/language/Import/Listing/Preview": {
            "title": "$:/language/Import/Listing/Preview",
            "text": "預覽:"
        },
        "$:/language/Import/Listing/Preview/Text": {
            "title": "$:/language/Import/Listing/Preview/Text",
            "text": "文字"
        },
        "$:/language/Import/Listing/Preview/TextRaw": {
            "title": "$:/language/Import/Listing/Preview/TextRaw",
            "text": "文字 (原始)"
        },
        "$:/language/Import/Listing/Preview/Fields": {
            "title": "$:/language/Import/Listing/Preview/Fields",
            "text": "欄位"
        },
        "$:/language/Import/Listing/Preview/Diff": {
            "title": "$:/language/Import/Listing/Preview/Diff",
            "text": "差異"
        },
        "$:/language/Import/Listing/Preview/DiffFields": {
            "title": "$:/language/Import/Listing/Preview/DiffFields",
            "text": "差異 (欄位)"
        },
        "$:/language/Import/Listing/Rename/Prompt": {
            "title": "$:/language/Import/Listing/Rename/Prompt",
            "text": "重新命名為:"
        },
        "$:/language/Import/Listing/Rename/Tooltip": {
            "title": "$:/language/Import/Listing/Rename/Tooltip",
            "text": "導入前重新命名條目"
        },
        "$:/language/Import/Listing/Rename/ConfirmRename": {
            "title": "$:/language/Import/Listing/Rename/ConfirmRename",
            "text": "重新命名條目"
        },
        "$:/language/Import/Listing/Rename/CancelRename": {
            "title": "$:/language/Import/Listing/Rename/CancelRename",
            "text": "取消"
        },
        "$:/language/Import/Listing/Rename/OverwriteWarning": {
            "title": "$:/language/Import/Listing/Rename/OverwriteWarning",
            "text": "具有此標題的條目已存在。"
        },
        "$:/language/Import/Upgrader/Plugins/Suppressed/Incompatible": {
            "title": "$:/language/Import/Upgrader/Plugins/Suppressed/Incompatible",
            "text": "封鎖的不相容或過時插件。"
        },
        "$:/language/Import/Upgrader/Plugins/Suppressed/Version": {
            "title": "$:/language/Import/Upgrader/Plugins/Suppressed/Version",
            "text": "封鎖的插件 (由於傳入的 <<incoming>> 不比現有版本 <<existing>> 新)。"
        },
        "$:/language/Import/Upgrader/Plugins/Upgraded": {
            "title": "$:/language/Import/Upgrader/Plugins/Upgraded",
            "text": "升級插件,從 <<incoming>> 到 <<upgraded>>。"
        },
        "$:/language/Import/Upgrader/State/Suppressed": {
            "title": "$:/language/Import/Upgrader/State/Suppressed",
            "text": "封鎖的暫存狀態條目。"
        },
        "$:/language/Import/Upgrader/System/Suppressed": {
            "title": "$:/language/Import/Upgrader/System/Suppressed",
            "text": "封鎖的系統條目。"
        },
        "$:/language/Import/Upgrader/System/Warning": {
            "title": "$:/language/Import/Upgrader/System/Warning",
            "text": "核心模組條目。"
        },
        "$:/language/Import/Upgrader/System/Alert": {
            "title": "$:/language/Import/Upgrader/System/Alert",
            "text": "您即將導入一個條目會覆蓋一個核心模組條目。不建議這樣做,因為可能會使系統不穩定。"
        },
        "$:/language/Import/Upgrader/ThemeTweaks/Created": {
            "title": "$:/language/Import/Upgrader/ThemeTweaks/Created",
            "text": "從 <$text text=<<from>>/> 遷移佈景主題。"
        },
        "$:/language/AboveStory/ClassicPlugin/Warning": {
            "title": "$:/language/AboveStory/ClassicPlugin/Warning",
            "text": "您似乎要載入為 ~TiddlyWiki 經典版設計的插件。請注意,[[這些插件無法運行於 TiddlyWiki 5.x.x 版|https://tiddlywiki.com/#TiddlyWikiClassic]]。偵測到 ~TiddlyWiki 經典版插件:"
        },
        "$:/language/BinaryWarning/Prompt": {
            "title": "$:/language/BinaryWarning/Prompt",
            "text": "此條目包含二進位資料"
        },
        "$:/language/ClassicWarning/Hint": {
            "title": "$:/language/ClassicWarning/Hint",
            "text": "此條目以經典版 TiddlyWiki 標記格式撰寫,不完全相容新版 TiddlyWiki 的格式,詳細資訊請參閱:https://tiddlywiki.com/static/Upgrading。"
        },
        "$:/language/ClassicWarning/Upgrade/Caption": {
            "title": "$:/language/ClassicWarning/Upgrade/Caption",
            "text": "升級"
        },
        "$:/language/CloseAll/Button": {
            "title": "$:/language/CloseAll/Button",
            "text": "全部關閉"
        },
        "$:/language/ColourPicker/Recent": {
            "title": "$:/language/ColourPicker/Recent",
            "text": "最近︰"
        },
        "$:/language/ConfirmCancelTiddler": {
            "title": "$:/language/ConfirmCancelTiddler",
            "text": "您確定要放棄對條目 \"<$text text=<<title>>/>\" 的更改?"
        },
        "$:/language/ConfirmDeleteTiddler": {
            "title": "$:/language/ConfirmDeleteTiddler",
            "text": "您確定要刪除條目 \"<$text text=<<title>>/>\"?"
        },
        "$:/language/ConfirmOverwriteTiddler": {
            "title": "$:/language/ConfirmOverwriteTiddler",
            "text": "您確定要覆寫條目 \"<$text text=<<title>>/>\"?"
        },
        "$:/language/ConfirmEditShadowTiddler": {
            "title": "$:/language/ConfirmEditShadowTiddler",
            "text": "您即將要編輯預設條目,任何更改將會覆蓋預設的系統,使未來的升級不尋常。您確定要編輯 \"<$text text=<<title>>/>\"?"
        },
        "$:/language/ConfirmAction": {
            "title": "$:/language/ConfirmAction",
            "text": "是否要繼續?"
        },
        "$:/language/Count": {
            "title": "$:/language/Count",
            "text": "計數"
        },
        "$:/language/DefaultNewTiddlerTitle": {
            "title": "$:/language/DefaultNewTiddlerTitle",
            "text": "新條目"
        },
        "$:/language/Diffs/CountMessage": {
            "title": "$:/language/Diffs/CountMessage",
            "text": "<<diff-count>> 個差異"
        },
        "$:/language/DropMessage": {
            "title": "$:/language/DropMessage",
            "text": "拖放到此處 (或按 ESC 鍵取消)"
        },
        "$:/language/Encryption/Cancel": {
            "title": "$:/language/Encryption/Cancel",
            "text": "取消"
        },
        "$:/language/Encryption/ConfirmClearPassword": {
            "title": "$:/language/Encryption/ConfirmClearPassword",
            "text": "您要清除密碼嗎?當儲存此維基時,這將刪除已套用的加密"
        },
        "$:/language/Encryption/Username": {
            "title": "$:/language/Encryption/Username",
            "text": "使用者名稱"
        },
        "$:/language/Encryption/Password": {
            "title": "$:/language/Encryption/Password",
            "text": "密碼"
        },
        "$:/language/Encryption/PromptSetPassword": {
            "title": "$:/language/Encryption/PromptSetPassword",
            "text": "為此 TiddlyWiki 設定一個新密碼"
        },
        "$:/language/Encryption/RepeatPassword": {
            "title": "$:/language/Encryption/RepeatPassword",
            "text": "重複輸入密碼"
        },
        "$:/language/Encryption/PasswordNoMatch": {
            "title": "$:/language/Encryption/PasswordNoMatch",
            "text": "密碼不匹配"
        },
        "$:/language/Encryption/SetPassword": {
            "title": "$:/language/Encryption/SetPassword",
            "text": "設定密碼"
        },
        "$:/language/Error/Caption": {
            "title": "$:/language/Error/Caption",
            "text": "錯誤"
        },
        "$:/language/Error/EditConflict": {
            "title": "$:/language/Error/EditConflict",
            "text": "伺服器上的檔案已更改"
        },
        "$:/language/Error/Filter": {
            "title": "$:/language/Error/Filter",
            "text": "篩選器錯誤"
        },
        "$:/language/Error/FilterRunPrefix": {
            "title": "$:/language/Error/FilterRunPrefix",
            "text": "篩選器錯誤:篩選器 run 的未知首碼"
        },
        "$:/language/Error/FilterSyntax": {
            "title": "$:/language/Error/FilterSyntax",
            "text": "篩選器運算式中的語法錯誤"
        },
        "$:/language/Error/FormatFilterOperator": {
            "title": "$:/language/Error/FormatFilterOperator",
            "text": "篩選器錯誤:`format` 篩選器運算子的未知尾碼"
        },
        "$:/language/Error/IsFilterOperator": {
            "title": "$:/language/Error/IsFilterOperator",
            "text": "篩選器錯誤︰'is' 篩選器運算子的未知運算元"
        },
        "$:/language/Error/LoadingPluginLibrary": {
            "title": "$:/language/Error/LoadingPluginLibrary",
            "text": "載入插件程式庫時,發生錯誤"
        },
        "$:/language/Error/NetworkErrorAlert": {
            "title": "$:/language/Error/NetworkErrorAlert",
            "text": "`<h2>''網路錯誤''</h2>與伺服器的連線似乎已中斷。這可能表示您的網路連線有問題。請嘗試恢復網路連線才能繼續。<br><br>''恢復連線時,所有未儲存的變更,將自動同步''。`"
        },
        "$:/language/Error/RecursiveTransclusion": {
            "title": "$:/language/Error/RecursiveTransclusion",
            "text": "於 transclude 小工具中的遞迴嵌入錯誤"
        },
        "$:/language/Error/RetrievingSkinny": {
            "title": "$:/language/Error/RetrievingSkinny",
            "text": "簡要條目清單擷取錯誤"
        },
        "$:/language/Error/SavingToTWEdit": {
            "title": "$:/language/Error/SavingToTWEdit",
            "text": "儲存到 TWEdit 時,發生錯誤"
        },
        "$:/language/Error/WhileSaving": {
            "title": "$:/language/Error/WhileSaving",
            "text": "儲存時,發生錯誤"
        },
        "$:/language/Error/XMLHttpRequest": {
            "title": "$:/language/Error/XMLHttpRequest",
            "text": "XMLHttpRequest 錯誤代碼"
        },
        "$:/language/InternalJavaScriptError/Title": {
            "title": "$:/language/InternalJavaScriptError/Title",
            "text": "內部的 JavaScript 錯誤"
        },
        "$:/language/InternalJavaScriptError/Hint": {
            "title": "$:/language/InternalJavaScriptError/Hint",
            "text": "喔,真是令人尷尬。建議刷新您的瀏覽器,重新啟動 TiddlyWiki"
        },
        "$:/language/InvalidFieldName": {
            "title": "$:/language/InvalidFieldName",
            "text": "欄位名稱 \"<$text text=<<fieldName>>/>\" 包含無效字元,欄位名稱只能包含小寫字母、數字、底線 (`_`)、 連接號 (`-`) 和小數點 (`.`)"
        },
        "$:/language/LayoutSwitcher/Description": {
            "title": "$:/language/LayoutSwitcher/Description",
            "text": "開啟版面切換器"
        },
        "$:/language/LazyLoadingWarning": {
            "title": "$:/language/LazyLoadingWarning",
            "text": "<p>正在從 ''<$text text={{!!_canonical_uri}}/>'' 載入外部內容 ...</p><p>如果此訊息未消失,可能是條目內容類型與外部內容的類型不匹配,或是您可能正在使用的瀏覽器,不支援單檔式維基的外部內容。請參閱 https://tiddlywiki.com/#ExternalText</p>"
        },
        "$:/language/LoginToTiddlySpace": {
            "title": "$:/language/LoginToTiddlySpace",
            "text": "登入 TiddlySpace"
        },
        "$:/language/Manager/Controls/FilterByTag/None": {
            "title": "$:/language/Manager/Controls/FilterByTag/None",
            "text": "(無)"
        },
        "$:/language/Manager/Controls/FilterByTag/Prompt": {
            "title": "$:/language/Manager/Controls/FilterByTag/Prompt",
            "text": "依標籤篩選︰"
        },
        "$:/language/Manager/Controls/Order/Prompt": {
            "title": "$:/language/Manager/Controls/Order/Prompt",
            "text": "反向順序"
        },
        "$:/language/Manager/Controls/Search/Placeholder": {
            "title": "$:/language/Manager/Controls/Search/Placeholder",
            "text": "搜尋"
        },
        "$:/language/Manager/Controls/Search/Prompt": {
            "title": "$:/language/Manager/Controls/Search/Prompt",
            "text": "搜尋︰"
        },
        "$:/language/Manager/Controls/Show/Option/Tags": {
            "title": "$:/language/Manager/Controls/Show/Option/Tags",
            "text": "標籤"
        },
        "$:/language/Manager/Controls/Show/Option/Tiddlers": {
            "title": "$:/language/Manager/Controls/Show/Option/Tiddlers",
            "text": "條目"
        },
        "$:/language/Manager/Controls/Show/Prompt": {
            "title": "$:/language/Manager/Controls/Show/Prompt",
            "text": "顯示︰"
        },
        "$:/language/Manager/Controls/Sort/Prompt": {
            "title": "$:/language/Manager/Controls/Sort/Prompt",
            "text": "排序︰"
        },
        "$:/language/Manager/Item/Colour": {
            "title": "$:/language/Manager/Item/Colour",
            "text": "顏色"
        },
        "$:/language/Manager/Item/Fields": {
            "title": "$:/language/Manager/Item/Fields",
            "text": "欄位"
        },
        "$:/language/Manager/Item/Icon/None": {
            "title": "$:/language/Manager/Item/Icon/None",
            "text": "(無)"
        },
        "$:/language/Manager/Item/Icon": {
            "title": "$:/language/Manager/Item/Icon",
            "text": "圖示"
        },
        "$:/language/Manager/Item/RawText": {
            "title": "$:/language/Manager/Item/RawText",
            "text": "原始文字"
        },
        "$:/language/Manager/Item/Tags": {
            "title": "$:/language/Manager/Item/Tags",
            "text": "標籤"
        },
        "$:/language/Manager/Item/Tools": {
            "title": "$:/language/Manager/Item/Tools",
            "text": "工具"
        },
        "$:/language/Manager/Item/WikifiedText": {
            "title": "$:/language/Manager/Item/WikifiedText",
            "text": "Wikified 文字"
        },
        "$:/language/MissingTiddler/Hint": {
            "title": "$:/language/MissingTiddler/Hint",
            "text": "佚失條目 \"<$text text=<<currentTiddler>>/>\" - 點擊 {{||$:/core/ui/Buttons/edit}} 可建立此條目"
        },
        "$:/language/No": {
            "title": "$:/language/No",
            "text": "否"
        },
        "$:/language/OfficialPluginLibrary": {
            "title": "$:/language/OfficialPluginLibrary",
            "text": "~TiddlyWiki 官方插件程式庫"
        },
        "$:/language/OfficialPluginLibrary/Hint": {
            "title": "$:/language/OfficialPluginLibrary/Hint",
            "text": "此為在 tiddlywiki.com 的 ~TiddlyWiki 官方插件程式庫。由核心團隊維護的插件、主題和語言包。"
        },
        "$:/language/PageTemplate/Description": {
            "title": "$:/language/PageTemplate/Description",
            "text": "預設的 ~Tiddlywiki 佈局"
        },
        "$:/language/PageTemplate/Name": {
            "title": "$:/language/PageTemplate/Name",
            "text": "預設的 ~PageTemplate"
        },
        "$:/language/PluginReloadWarning": {
            "title": "$:/language/PluginReloadWarning",
            "text": "請儲存 {{$:/core/ui/Buttons/save-wiki}} 並刷新頁面 {{$:/core/ui/Buttons/refresh}} ,使 ~JavaScript 插件的更改生效"
        },
        "$:/language/RecentChanges/DateFormat": {
            "title": "$:/language/RecentChanges/DateFormat",
            "text": "YYYY年0MM月0DD日"
        },
        "$:/language/Shortcuts/Input/Accept/Hint": {
            "title": "$:/language/Shortcuts/Input/Accept/Hint",
            "text": "接受選取的項目"
        },
        "$:/language/Shortcuts/Input/AcceptVariant/Hint": {
            "title": "$:/language/Shortcuts/Input/AcceptVariant/Hint",
            "text": "接受選取項目 (變種)"
        },
        "$:/language/Shortcuts/Input/AdvancedSearch/Hint": {
            "title": "$:/language/Shortcuts/Input/AdvancedSearch/Hint",
            "text": "從側邊欄搜尋欄位內開啟[[進階搜尋|$:/AdvancedSearch]]面板"
        },
        "$:/language/Shortcuts/Input/Cancel/Hint": {
            "title": "$:/language/Shortcuts/Input/Cancel/Hint",
            "text": "清除輸入欄位"
        },
        "$:/language/Shortcuts/Input/Down/Hint": {
            "title": "$:/language/Shortcuts/Input/Down/Hint",
            "text": "選擇下一個項目"
        },
        "$:/language/Shortcuts/Input/Tab-Left/Hint": {
            "title": "$:/language/Shortcuts/Input/Tab-Left/Hint",
            "text": "選擇上一個頁籤"
        },
        "$:/language/Shortcuts/Input/Tab-Right/Hint": {
            "title": "$:/language/Shortcuts/Input/Tab-Right/Hint",
            "text": "選擇下一個頁籤"
        },
        "$:/language/Shortcuts/Input/Up/Hint": {
            "title": "$:/language/Shortcuts/Input/Up/Hint",
            "text": "選擇前一個項目"
        },
        "$:/language/Shortcuts/SidebarLayout/Hint": {
            "title": "$:/language/Shortcuts/SidebarLayout/Hint",
            "text": "更改側邊欄版面"
        },
        "$:/language/Switcher/Subtitle/theme": {
            "title": "$:/language/Switcher/Subtitle/theme",
            "text": "切換佈景主題"
        },
        "$:/language/Switcher/Subtitle/layout": {
            "title": "$:/language/Switcher/Subtitle/layout",
            "text": "切換版面"
        },
        "$:/language/Switcher/Subtitle/language": {
            "title": "$:/language/Switcher/Subtitle/language",
            "text": "切換語言"
        },
        "$:/language/Switcher/Subtitle/palette": {
            "title": "$:/language/Switcher/Subtitle/palette",
            "text": "切換調色盤"
        },
        "$:/language/SystemTiddler/Tooltip": {
            "title": "$:/language/SystemTiddler/Tooltip",
            "text": "此為系統條目"
        },
        "$:/language/SystemTiddlers/Include/Prompt": {
            "title": "$:/language/SystemTiddlers/Include/Prompt",
            "text": "包括系統條目"
        },
        "$:/language/TagManager/Colour/Heading": {
            "title": "$:/language/TagManager/Colour/Heading",
            "text": "顏色"
        },
        "$:/language/TagManager/Count/Heading": {
            "title": "$:/language/TagManager/Count/Heading",
            "text": "計數"
        },
        "$:/language/TagManager/Icon/Heading": {
            "title": "$:/language/TagManager/Icon/Heading",
            "text": "圖示"
        },
        "$:/language/TagManager/Icons/None": {
            "title": "$:/language/TagManager/Icons/None",
            "text": "無"
        },
        "$:/language/TagManager/Info/Heading": {
            "title": "$:/language/TagManager/Info/Heading",
            "text": "資訊"
        },
        "$:/language/TagManager/Tag/Heading": {
            "title": "$:/language/TagManager/Tag/Heading",
            "text": "標籤"
        },
        "$:/language/Tiddler/DateFormat": {
            "title": "$:/language/Tiddler/DateFormat",
            "text": "YYYY年0MM月0DD日 0hh:0mm"
        },
        "$:/language/UnsavedChangesWarning": {
            "title": "$:/language/UnsavedChangesWarning",
            "text": "在此 TiddlyWiki 您有尚未儲存的變更"
        },
        "$:/language/Yes": {
            "title": "$:/language/Yes",
            "text": "是"
        },
        "$:/language/Modals/Download": {
            "title": "$:/language/Modals/Download",
            "type": "text/vnd.tiddlywiki",
            "subtitle": "Download changes",
            "footer": "<$button message=\"tm-close-tiddler\">關閉</$button>",
            "help": "https://tiddlywiki.com/",
            "text": "您的瀏覽器只支援手動儲存。\n\n要儲存更動的維基,右鍵點擊下方的下載鏈結,選擇\"下載檔案\"或\"儲存檔案\",然後選擇資料夾和檔名。\n\n//您可以藉由按一下 Ctrl 鍵(Windows)或 options/ alt 鍵(Mac OS X)中的鏈接,稍微加速操作。您不會被提示資料夾或檔名,您的瀏覽器可能無法辨認它的檔名 -- 在做其他任何事之前,您可能需要重新命名副檔名為 `.html` 的檔案。//\n\n在智慧型手機上,不允許下載檔案,但您可以標記鏈結,然後從一台可以正常保存維基的桌上型電腦的維基同步你的書籤。"
        },
        "$:/language/Modals/SaveInstructions": {
            "title": "$:/language/Modals/SaveInstructions",
            "type": "text/vnd.tiddlywiki",
            "subtitle": "Save your work",
            "footer": "<$button message=\"tm-close-tiddler\">關閉</$button>",
            "help": "https://tiddlywiki.com/static/SavingChanges.html",
            "text": "您對此 wiki 的變更需被儲存為 ~TiddlyWiki HTML 檔案。\n\n!!! 桌面版瀏覽器\n\n# 從''檔案''選單點選 ''另存新檔''\n# 選定檔名及儲存位置\n#* 某些瀏覽器依然需要明確指定檔案格式為 ''Webpage, HTML only'' 或類似的。\n# 關閉此頁籤\n\n!!! 智慧手機版瀏覽器\n\n# 為此頁建立書籤\n#* 若您已設定 iCloud 或 Google 同步,該書籤將自動與之前開啟及儲存於您電腦的書籤同步。\n# 關閉此頁籤\n\n//若您再次於 Mobile Safari 開啟該書籤,將會再看到此訊息。若要繼續使用該檔案,只需點擊下列 ''關閉'' 按鈕//\n"
        },
        "$:/config/NewJournal/Title": {
            "title": "$:/config/NewJournal/Title",
            "text": "YYYY年0MM月0DD日"
        },
        "$:/config/NewJournal/Text": {
            "title": "$:/config/NewJournal/Text",
            "text": ""
        },
        "$:/config/NewJournal/Tags": {
            "title": "$:/config/NewJournal/Tags",
            "text": "日誌\n"
        },
        "$:/language/Notifications/Save/Done": {
            "title": "$:/language/Notifications/Save/Done",
            "text": "已儲存 wiki"
        },
        "$:/language/Notifications/Save/Starting": {
            "title": "$:/language/Notifications/Save/Starting",
            "text": "開始儲存 wiki"
        },
        "$:/language/Notifications/CopiedToClipboard/Succeeded": {
            "title": "$:/language/Notifications/CopiedToClipboard/Succeeded",
            "text": "已複製到剪貼簿!"
        },
        "$:/language/Notifications/CopiedToClipboard/Failed": {
            "title": "$:/language/Notifications/CopiedToClipboard/Failed",
            "text": "無法複製到剪貼簿!"
        },
        "$:/language/Search/DefaultResults/Caption": {
            "title": "$:/language/Search/DefaultResults/Caption",
            "text": "列表"
        },
        "$:/language/Search/Filter/Caption": {
            "title": "$:/language/Search/Filter/Caption",
            "text": "篩選"
        },
        "$:/language/Search/Filter/Hint": {
            "title": "$:/language/Search/Filter/Hint",
            "text": "以[[篩選表達式|https://tiddlywiki.com/static/Filters.html]]搜尋"
        },
        "$:/language/Search/Filter/Matches": {
            "title": "$:/language/Search/Filter/Matches",
            "text": "//<small><<resultCount>> 個條目符合條件</small>//"
        },
        "$:/language/Search/Matches": {
            "title": "$:/language/Search/Matches",
            "text": "//<small><<resultCount>> 個條目符合條件</small>//"
        },
        "$:/language/Search/Matches/All": {
            "title": "$:/language/Search/Matches/All",
            "text": "所有匹配:"
        },
        "$:/language/Search/Matches/Title": {
            "title": "$:/language/Search/Matches/Title",
            "text": "條目名稱匹配:"
        },
        "$:/language/Search/Search": {
            "title": "$:/language/Search/Search",
            "text": "搜尋"
        },
        "$:/language/Search/Search/TooShort": {
            "title": "$:/language/Search/Search/TooShort",
            "text": "搜尋文字太短"
        },
        "$:/language/Search/Shadows/Caption": {
            "title": "$:/language/Search/Shadows/Caption",
            "text": "預設"
        },
        "$:/language/Search/Shadows/Hint": {
            "title": "$:/language/Search/Shadows/Hint",
            "text": "尋找預設條目"
        },
        "$:/language/Search/Shadows/Matches": {
            "title": "$:/language/Search/Shadows/Matches",
            "text": "//<small><<resultCount>> 個條目符合條件</small>//"
        },
        "$:/language/Search/Standard/Caption": {
            "title": "$:/language/Search/Standard/Caption",
            "text": "標準"
        },
        "$:/language/Search/Standard/Hint": {
            "title": "$:/language/Search/Standard/Hint",
            "text": "尋找一般條目"
        },
        "$:/language/Search/Standard/Matches": {
            "title": "$:/language/Search/Standard/Matches",
            "text": "//<small><<resultCount>> 個條目符合條件</small>//"
        },
        "$:/language/Search/System/Caption": {
            "title": "$:/language/Search/System/Caption",
            "text": "系統"
        },
        "$:/language/Search/System/Hint": {
            "title": "$:/language/Search/System/Hint",
            "text": "尋找系統條目"
        },
        "$:/language/Search/System/Matches": {
            "title": "$:/language/Search/System/Matches",
            "text": "//<small><<resultCount>> 個條目符合條件</small>//"
        },
        "$:/language/SideBar/All/Caption": {
            "title": "$:/language/SideBar/All/Caption",
            "text": "全部"
        },
        "$:/language/SideBar/Contents/Caption": {
            "title": "$:/language/SideBar/Contents/Caption",
            "text": "目錄"
        },
        "$:/language/SideBar/Drafts/Caption": {
            "title": "$:/language/SideBar/Drafts/Caption",
            "text": "草稿"
        },
        "$:/language/SideBar/Explorer/Caption": {
            "title": "$:/language/SideBar/Explorer/Caption",
            "text": "探索"
        },
        "$:/language/SideBar/Missing/Caption": {
            "title": "$:/language/SideBar/Missing/Caption",
            "text": "佚失"
        },
        "$:/language/SideBar/More/Caption": {
            "title": "$:/language/SideBar/More/Caption",
            "text": "更多"
        },
        "$:/language/SideBar/Open/Caption": {
            "title": "$:/language/SideBar/Open/Caption",
            "text": "開啟"
        },
        "$:/language/SideBar/Orphans/Caption": {
            "title": "$:/language/SideBar/Orphans/Caption",
            "text": "孤立"
        },
        "$:/language/SideBar/Recent/Caption": {
            "title": "$:/language/SideBar/Recent/Caption",
            "text": "最近"
        },
        "$:/language/SideBar/Shadows/Caption": {
            "title": "$:/language/SideBar/Shadows/Caption",
            "text": "預設"
        },
        "$:/language/SideBar/System/Caption": {
            "title": "$:/language/SideBar/System/Caption",
            "text": "系統"
        },
        "$:/language/SideBar/Tags/Caption": {
            "title": "$:/language/SideBar/Tags/Caption",
            "text": "標籤"
        },
        "$:/language/SideBar/Tags/Untagged/Caption": {
            "title": "$:/language/SideBar/Tags/Untagged/Caption",
            "text": "未設標籤"
        },
        "$:/language/SideBar/Tools/Caption": {
            "title": "$:/language/SideBar/Tools/Caption",
            "text": "工具"
        },
        "$:/language/SideBar/Types/Caption": {
            "title": "$:/language/SideBar/Types/Caption",
            "text": "類型"
        },
        "$:/SiteSubtitle": {
            "title": "$:/SiteSubtitle",
            "text": "一個非線性的網頁式筆記"
        },
        "$:/SiteTitle": {
            "title": "$:/SiteTitle",
            "text": "我的 ~TiddlyWiki"
        },
        "$:/language/Snippets/ListByTag": {
            "title": "$:/language/Snippets/ListByTag",
            "tags": "$:/tags/TextEditor/Snippet",
            "caption": "依標籤篩選的條目列表",
            "text": "<<list-links \"[tag[task]sort[title]]\">>\n"
        },
        "$:/language/Snippets/MacroDefinition": {
            "title": "$:/language/Snippets/MacroDefinition",
            "tags": "$:/tags/TextEditor/Snippet",
            "caption": "巨集的定義",
            "text": "\\define macroName(param1:\"預設值\",param2)\n巨集的內容\n\\end\n"
        },
        "$:/language/Snippets/Table4x3": {
            "title": "$:/language/Snippets/Table4x3",
            "tags": "$:/tags/TextEditor/Snippet",
            "caption": "4 x 3 的表格",
            "text": "|! | !一 | !二 | !三 | !四 |\n|! 1| | | | |\n|! 2| | | | |\n|! 3 | | | | |\n"
        },
        "$:/language/Snippets/TableOfContents": {
            "title": "$:/language/Snippets/TableOfContents",
            "tags": "$:/tags/TextEditor/Snippet",
            "caption": "目錄",
            "text": "<div class=\"tc-table-of-contents\">\n\n<<toc-selective-expandable 'TableOfContents'>>\n\n</div>"
        },
        "$:/language/ThemeTweaks/ThemeTweaks": {
            "title": "$:/language/ThemeTweaks/ThemeTweaks",
            "text": "主題調整"
        },
        "$:/language/ThemeTweaks/ThemeTweaks/Hint": {
            "title": "$:/language/ThemeTweaks/ThemeTweaks/Hint",
            "text": "您可以調整 ''Vanilla'' 佈景主題的某些樣貌。"
        },
        "$:/language/ThemeTweaks/Options": {
            "title": "$:/language/ThemeTweaks/Options",
            "text": "選項"
        },
        "$:/language/ThemeTweaks/Options/SidebarLayout": {
            "title": "$:/language/ThemeTweaks/Options/SidebarLayout",
            "text": "側邊欄佈局"
        },
        "$:/language/ThemeTweaks/Options/SidebarLayout/Fixed-Fluid": {
            "title": "$:/language/ThemeTweaks/Options/SidebarLayout/Fixed-Fluid",
            "text": "固定故事,浮動側邊欄"
        },
        "$:/language/ThemeTweaks/Options/SidebarLayout/Fluid-Fixed": {
            "title": "$:/language/ThemeTweaks/Options/SidebarLayout/Fluid-Fixed",
            "text": "浮動故事,固定側邊欄"
        },
        "$:/language/ThemeTweaks/Options/StickyTitles": {
            "title": "$:/language/ThemeTweaks/Options/StickyTitles",
            "text": "置頂標題"
        },
        "$:/language/ThemeTweaks/Options/StickyTitles/Hint": {
            "title": "$:/language/ThemeTweaks/Options/StickyTitles/Hint",
            "text": "使條目名稱\"黏著\"於瀏覽器視窗的頂端"
        },
        "$:/language/ThemeTweaks/Options/CodeWrapping": {
            "title": "$:/language/ThemeTweaks/Options/CodeWrapping",
            "text": "在代碼區塊中折行"
        },
        "$:/language/ThemeTweaks/Settings": {
            "title": "$:/language/ThemeTweaks/Settings",
            "text": "設定"
        },
        "$:/language/ThemeTweaks/Settings/FontFamily": {
            "title": "$:/language/ThemeTweaks/Settings/FontFamily",
            "text": "字型"
        },
        "$:/language/ThemeTweaks/Settings/CodeFontFamily": {
            "title": "$:/language/ThemeTweaks/Settings/CodeFontFamily",
            "text": "代碼字型"
        },
        "$:/language/ThemeTweaks/Settings/EditorFontFamily": {
            "title": "$:/language/ThemeTweaks/Settings/EditorFontFamily",
            "text": "編輯器字型"
        },
        "$:/language/ThemeTweaks/Settings/BackgroundImage": {
            "title": "$:/language/ThemeTweaks/Settings/BackgroundImage",
            "text": "頁面背景圖像"
        },
        "$:/language/ThemeTweaks/Settings/BackgroundImageAttachment": {
            "title": "$:/language/ThemeTweaks/Settings/BackgroundImageAttachment",
            "text": "頁面背景圖像附屬"
        },
        "$:/language/ThemeTweaks/Settings/BackgroundImageAttachment/Scroll": {
            "title": "$:/language/ThemeTweaks/Settings/BackgroundImageAttachment/Scroll",
            "text": "隨條目捲動"
        },
        "$:/language/ThemeTweaks/Settings/BackgroundImageAttachment/Fixed": {
            "title": "$:/language/ThemeTweaks/Settings/BackgroundImageAttachment/Fixed",
            "text": "固定於視窗"
        },
        "$:/language/ThemeTweaks/Settings/BackgroundImageSize": {
            "title": "$:/language/ThemeTweaks/Settings/BackgroundImageSize",
            "text": "頁面背景圖像大小"
        },
        "$:/language/ThemeTweaks/Settings/BackgroundImageSize/Auto": {
            "title": "$:/language/ThemeTweaks/Settings/BackgroundImageSize/Auto",
            "text": "自動"
        },
        "$:/language/ThemeTweaks/Settings/BackgroundImageSize/Cover": {
            "title": "$:/language/ThemeTweaks/Settings/BackgroundImageSize/Cover",
            "text": "覆蓋"
        },
        "$:/language/ThemeTweaks/Settings/BackgroundImageSize/Contain": {
            "title": "$:/language/ThemeTweaks/Settings/BackgroundImageSize/Contain",
            "text": "包含"
        },
        "$:/language/ThemeTweaks/Metrics": {
            "title": "$:/language/ThemeTweaks/Metrics",
            "text": "大小"
        },
        "$:/language/ThemeTweaks/Metrics/FontSize": {
            "title": "$:/language/ThemeTweaks/Metrics/FontSize",
            "text": "字體大小"
        },
        "$:/language/ThemeTweaks/Metrics/LineHeight": {
            "title": "$:/language/ThemeTweaks/Metrics/LineHeight",
            "text": "行高"
        },
        "$:/language/ThemeTweaks/Metrics/BodyFontSize": {
            "title": "$:/language/ThemeTweaks/Metrics/BodyFontSize",
            "text": "條目本文的字體大小"
        },
        "$:/language/ThemeTweaks/Metrics/BodyLineHeight": {
            "title": "$:/language/ThemeTweaks/Metrics/BodyLineHeight",
            "text": "條目本文的行高"
        },
        "$:/language/ThemeTweaks/Metrics/StoryLeft": {
            "title": "$:/language/ThemeTweaks/Metrics/StoryLeft",
            "text": "故事左側位置"
        },
        "$:/language/ThemeTweaks/Metrics/StoryLeft/Hint": {
            "title": "$:/language/ThemeTweaks/Metrics/StoryLeft/Hint",
            "text": "故事河(條目區)的左邊緣與頁面左端的間距"
        },
        "$:/language/ThemeTweaks/Metrics/StoryTop": {
            "title": "$:/language/ThemeTweaks/Metrics/StoryTop",
            "text": "故事頂端位置"
        },
        "$:/language/ThemeTweaks/Metrics/StoryTop/Hint": {
            "title": "$:/language/ThemeTweaks/Metrics/StoryTop/Hint",
            "text": "故事河(條目區)的上邊緣與頁面頂端的間距"
        },
        "$:/language/ThemeTweaks/Metrics/StoryRight": {
            "title": "$:/language/ThemeTweaks/Metrics/StoryRight",
            "text": "故事右側位置"
        },
        "$:/language/ThemeTweaks/Metrics/StoryRight/Hint": {
            "title": "$:/language/ThemeTweaks/Metrics/StoryRight/Hint",
            "text": "側邊欄的左邊緣與頁面左端的間距"
        },
        "$:/language/ThemeTweaks/Metrics/StoryWidth": {
            "title": "$:/language/ThemeTweaks/Metrics/StoryWidth",
            "text": "故事的寬度"
        },
        "$:/language/ThemeTweaks/Metrics/StoryWidth/Hint": {
            "title": "$:/language/ThemeTweaks/Metrics/StoryWidth/Hint",
            "text": "故事河的整體寬度"
        },
        "$:/language/ThemeTweaks/Metrics/TiddlerWidth": {
            "title": "$:/language/ThemeTweaks/Metrics/TiddlerWidth",
            "text": "條目寬度"
        },
        "$:/language/ThemeTweaks/Metrics/TiddlerWidth/Hint": {
            "title": "$:/language/ThemeTweaks/Metrics/TiddlerWidth/Hint",
            "text": "在故事河內"
        },
        "$:/language/ThemeTweaks/Metrics/SidebarBreakpoint": {
            "title": "$:/language/ThemeTweaks/Metrics/SidebarBreakpoint",
            "text": "側邊欄中斷點"
        },
        "$:/language/ThemeTweaks/Metrics/SidebarBreakpoint/Hint": {
            "title": "$:/language/ThemeTweaks/Metrics/SidebarBreakpoint/Hint",
            "text": "故事河和側邊欄會並排顯示的最小頁面寬度"
        },
        "$:/language/ThemeTweaks/Metrics/SidebarWidth": {
            "title": "$:/language/ThemeTweaks/Metrics/SidebarWidth",
            "text": "側邊欄寬度"
        },
        "$:/language/ThemeTweaks/Metrics/SidebarWidth/Hint": {
            "title": "$:/language/ThemeTweaks/Metrics/SidebarWidth/Hint",
            "text": "在浮動-固定佈局中,側邊欄的寬度"
        },
        "$:/language/TiddlerInfo/Advanced/Caption": {
            "title": "$:/language/TiddlerInfo/Advanced/Caption",
            "text": "進階"
        },
        "$:/language/TiddlerInfo/Advanced/PluginInfo/Empty/Hint": {
            "title": "$:/language/TiddlerInfo/Advanced/PluginInfo/Empty/Hint",
            "text": "無資訊"
        },
        "$:/language/TiddlerInfo/Advanced/PluginInfo/Heading": {
            "title": "$:/language/TiddlerInfo/Advanced/PluginInfo/Heading",
            "text": "插件明細"
        },
        "$:/language/TiddlerInfo/Advanced/PluginInfo/Hint": {
            "title": "$:/language/TiddlerInfo/Advanced/PluginInfo/Hint",
            "text": "此插件包含以下預設條目:"
        },
        "$:/language/TiddlerInfo/Advanced/ShadowInfo/Heading": {
            "title": "$:/language/TiddlerInfo/Advanced/ShadowInfo/Heading",
            "text": "預設條目狀態"
        },
        "$:/language/TiddlerInfo/Advanced/ShadowInfo/NotShadow/Hint": {
            "title": "$:/language/TiddlerInfo/Advanced/ShadowInfo/NotShadow/Hint",
            "text": "<$link to=<<infoTiddler>>><$text text=<<infoTiddler>>/></$link> 不是一個預設條目"
        },
        "$:/language/TiddlerInfo/Advanced/ShadowInfo/Shadow/Hint": {
            "title": "$:/language/TiddlerInfo/Advanced/ShadowInfo/Shadow/Hint",
            "text": "<$link to=<<infoTiddler>>><$text text=<<infoTiddler>>/></$link> 是一個預設條目"
        },
        "$:/language/TiddlerInfo/Advanced/ShadowInfo/Shadow/Source": {
            "title": "$:/language/TiddlerInfo/Advanced/ShadowInfo/Shadow/Source",
            "text": "此條目定義於插件 <$link to=<<pluginTiddler>>><$text text=<<pluginTiddler>>/></$link>"
        },
        "$:/language/TiddlerInfo/Advanced/ShadowInfo/OverriddenShadow/Hint": {
            "title": "$:/language/TiddlerInfo/Advanced/ShadowInfo/OverriddenShadow/Hint",
            "text": "已被一般條目覆寫"
        },
        "$:/language/TiddlerInfo/Fields/Caption": {
            "title": "$:/language/TiddlerInfo/Fields/Caption",
            "text": "欄位"
        },
        "$:/language/TiddlerInfo/List/Caption": {
            "title": "$:/language/TiddlerInfo/List/Caption",
            "text": "列表"
        },
        "$:/language/TiddlerInfo/List/Empty": {
            "title": "$:/language/TiddlerInfo/List/Empty",
            "text": "此條目無指定列表"
        },
        "$:/language/TiddlerInfo/Listed/Caption": {
            "title": "$:/language/TiddlerInfo/Listed/Caption",
            "text": "被列於"
        },
        "$:/language/TiddlerInfo/Listed/Empty": {
            "title": "$:/language/TiddlerInfo/Listed/Empty",
            "text": "此條目未出現於其他條目的列表中"
        },
        "$:/language/TiddlerInfo/References/Caption": {
            "title": "$:/language/TiddlerInfo/References/Caption",
            "text": "反向連結"
        },
        "$:/language/TiddlerInfo/References/Empty": {
            "title": "$:/language/TiddlerInfo/References/Empty",
            "text": "無條目連結至此"
        },
        "$:/language/TiddlerInfo/Tagging/Caption": {
            "title": "$:/language/TiddlerInfo/Tagging/Caption",
            "text": "子條目"
        },
        "$:/language/TiddlerInfo/Tagging/Empty": {
            "title": "$:/language/TiddlerInfo/Tagging/Empty",
            "text": "無任何條目以此條目之標題為標籤"
        },
        "$:/language/TiddlerInfo/Tools/Caption": {
            "title": "$:/language/TiddlerInfo/Tools/Caption",
            "text": "工具"
        },
        "$:/language/Docs/Types/application/javascript": {
            "title": "$:/language/Docs/Types/application/javascript",
            "description": "JavaScript 程式碼",
            "name": "application/javascript",
            "group": "開發者"
        },
        "$:/language/Docs/Types/application/json": {
            "title": "$:/language/Docs/Types/application/json",
            "description": "JSON 資料",
            "name": "application/json",
            "group": "開發者"
        },
        "$:/language/Docs/Types/application/x-tiddler-dictionary": {
            "title": "$:/language/Docs/Types/application/x-tiddler-dictionary",
            "description": "資料字典",
            "name": "application/x-tiddler-dictionary",
            "group": "開發者"
        },
        "$:/language/Docs/Types/image/gif": {
            "title": "$:/language/Docs/Types/image/gif",
            "description": "GIF 圖片",
            "name": "image/gif",
            "group": "圖片"
        },
        "$:/language/Docs/Types/image/jpeg": {
            "title": "$:/language/Docs/Types/image/jpeg",
            "description": "JPEG 圖片",
            "name": "image/jpeg",
            "group": "圖片"
        },
        "$:/language/Docs/Types/image/png": {
            "title": "$:/language/Docs/Types/image/png",
            "description": "PNG 圖片",
            "name": "image/png",
            "group": "圖片"
        },
        "$:/language/Docs/Types/image/svg+xml": {
            "title": "$:/language/Docs/Types/image/svg+xml",
            "description": "結構式向量圖",
            "name": "image/svg+xml",
            "group": "圖片"
        },
        "$:/language/Docs/Types/image/x-icon": {
            "title": "$:/language/Docs/Types/image/x-icon",
            "description": "圖示",
            "name": "image/x-icon",
            "group": "圖片"
        },
        "$:/language/Docs/Types/text/css": {
            "title": "$:/language/Docs/Types/text/css",
            "description": "靜態樣式",
            "name": "text/css",
            "group": "開發者"
        },
        "$:/language/Docs/Types/text/html": {
            "title": "$:/language/Docs/Types/text/html",
            "description": "HTML 標記",
            "name": "text/html",
            "group": "文字"
        },
        "$:/language/Docs/Types/text/plain": {
            "title": "$:/language/Docs/Types/text/plain",
            "description": "純文字",
            "name": "text/plain",
            "group": "文字"
        },
        "$:/language/Docs/Types/text/vnd.tiddlywiki": {
            "title": "$:/language/Docs/Types/text/vnd.tiddlywiki",
            "description": "TiddlyWiki 5",
            "name": "text/vnd.tiddlywiki",
            "group": "文字"
        },
        "$:/language/Docs/Types/text/x-tiddlywiki": {
            "title": "$:/language/Docs/Types/text/x-tiddlywiki",
            "description": "TiddlyWiki 2",
            "name": "text/x-tiddlywiki",
            "group": "文字"
        },
        "$:/config/Search/MinLength": {
            "title": "$:/config/Search/MinLength",
            "text": "1"
        },
        "$:/languages/zh-Hant/icon": {
            "title": "$:/languages/zh-Hant/icon",
            "type": "image/svg+xml",
            "text": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE svg>\n<svg width=\"900\" height=\"600\" viewBox=\"-60 -40 240 160\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n   <rect x=\"-60\" y=\"-40\" width=\"100%\" height=\"100%\" fill=\"#fe0000\"/>\n   <rect x=\"-60\" y=\"-40\" width=\"50%\" height=\"50%\" fill=\"#000095\"/>\n   <path id=\"four_rays\" d=\"M 8,0 L 0,30 L -8,0 L 0,-30 M 0,8 L 30,0 L 0,-8 L -30,0\" fill=\"#fff\"/>\n   <use xlink:href=\"#four_rays\" transform=\"rotate(30)\"/>\n   <use xlink:href=\"#four_rays\" transform=\"rotate(60)\"/>\n   <circle r=\"17\" fill=\"#000095\"/>\n   <circle r=\"15\" fill=\"#fff\"/>\n</svg>"
        }
    }
}
{
    "tiddlers": {
        "$:/languages/zh-TW/icon": {
            "title": "$:/languages/zh-TW/icon",
            "type": "image/svg+xml",
            "text": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE svg>\n<svg width=\"900\" height=\"600\" viewBox=\"-60 -40 240 160\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n   <rect x=\"-60\" y=\"-40\" width=\"100%\" height=\"100%\" fill=\"#fe0000\"/>\n   <rect x=\"-60\" y=\"-40\" width=\"50%\" height=\"50%\" fill=\"#000095\"/>\n   <path id=\"four_rays\" d=\"M 8,0 L 0,30 L -8,0 L 0,-30 M 0,8 L 30,0 L 0,-8 L -30,0\" fill=\"#fff\"/>\n   <use xlink:href=\"#four_rays\" transform=\"rotate(30)\"/>\n   <use xlink:href=\"#four_rays\" transform=\"rotate(60)\"/>\n   <circle r=\"17\" fill=\"#000095\"/>\n   <circle r=\"15\" fill=\"#fff\"/>\n</svg>"
        }
    }
}
$:/core/ui/PageTemplate
$:/palettes/Nord
{
    "tiddlers": {
        "$:/config/EditorTypeMappings/application/javascript": {
            "title": "$:/config/EditorTypeMappings/application/javascript",
            "text": "codemirror"
        },
        "$:/config/EditorTypeMappings/application/json": {
            "title": "$:/config/EditorTypeMappings/application/json",
            "text": "codemirror"
        },
        "$:/config/EditorTypeMappings/application/x-tiddler-dictionary": {
            "title": "$:/config/EditorTypeMappings/application/x-tiddler-dictionary",
            "text": "codemirror"
        },
        "$:/config/EditorTypeMappings/text/css": {
            "title": "$:/config/EditorTypeMappings/text/css",
            "text": "codemirror"
        },
        "$:/config/EditorTypeMappings/text/html": {
            "title": "$:/config/EditorTypeMappings/text/html",
            "text": "codemirror"
        },
        "$:/config/EditorTypeMappings/text/plain": {
            "title": "$:/config/EditorTypeMappings/text/plain",
            "text": "codemirror"
        },
        "$:/config/EditorTypeMappings/text/vnd.tiddlywiki": {
            "title": "$:/config/EditorTypeMappings/text/vnd.tiddlywiki",
            "text": "codemirror"
        },
        "$:/config/EditorTypeMappings/text/x-markdown": {
            "title": "$:/config/EditorTypeMappings/text/x-markdown",
            "text": "codemirror"
        },
        "$:/config/EditorTypeMappings/text/x-tiddlywiki": {
            "title": "$:/config/EditorTypeMappings/text/x-tiddlywiki",
            "text": "codemirror"
        },
        "$:/config/codemirror/cursorBlinkRate": {
            "title": "$:/config/codemirror/cursorBlinkRate",
            "type": "integer",
            "text": "530"
        },
        "$:/config/codemirror/extraKeysTW": {
            "title": "$:/config/codemirror/extraKeysTW",
            "extend": "extraKeys",
            "type": "json",
            "text": "{\n\t\"Ctrl-Esc\": \"singleSelection\",\n\t\"Esc\": \"\",\n\t\"Ctrl-S\": \"\",\n\t\"Ctrl-U\": \"\",\n\t\"Ctrl-T\": \"\",\n\t\"Alt-T\": \"transposeChars\",\n\t\"Alt-U\": \"undoSelection\",\n\t\"Shift-Alt-U\": \"redoSelection\",\n\t\"Cmd-U\": \"\",\n\t\"Tab\": \"indentAuto()\",\n\t\"Enter\": \"newLineAndIndent()\"\n}\n"
        },
        "$:/config/codemirror/indentUnit": {
            "title": "$:/config/codemirror/indentUnit",
            "type": "integer",
            "text": "2"
        },
        "$:/config/codemirror/indentWithTabs": {
            "title": "$:/config/codemirror/indentWithTabs",
            "type": "bool",
            "text": "true"
        },
        "$:/config/codemirror/inputStyle": {
            "title": "$:/config/codemirror/inputStyle",
            "type": "string",
            "text": "textarea"
        },
        "$:/config/codemirror/keyMap": {
            "title": "$:/config/codemirror/keyMap",
            "type": "string",
            "text": "default"
        },
        "$:/config/codemirror/lineNumbers": {
            "title": "$:/config/codemirror/lineNumbers",
            "type": "bool",
            "text": "false"
        },
        "$:/config/codemirror/lineWrapping": {
            "title": "$:/config/codemirror/lineWrapping",
            "type": "bool",
            "text": "true"
        },
        "$:/config/codemirror/showCursorWhenSelecting": {
            "title": "$:/config/codemirror/showCursorWhenSelecting",
            "type": "bool",
            "text": "true"
        },
        "$:/config/codemirror/smartIndent": {
            "title": "$:/config/codemirror/smartIndent",
            "type": "bool",
            "text": "true"
        },
        "$:/config/codemirror/styleActiveLine": {
            "title": "$:/config/codemirror/styleActiveLine",
            "type": "bool",
            "text": "false"
        },
        "$:/config/codemirror/tabSize": {
            "title": "$:/config/codemirror/tabSize",
            "type": "integer",
            "text": "2"
        },
        "$:/config/codemirror/theme": {
            "title": "$:/config/codemirror/theme",
            "type": "string",
            "text": "tiddlywiki"
        },
        "$:/language/codemirror/homeUrl": {
            "title": "$:/language/codemirror/homeUrl",
            "text": "http://codemirror.net"
        },
        "$:/language/codemirror/addOnUrl": {
            "title": "$:/language/codemirror/addOnUrl",
            "text": "http://codemirror.net/doc/manual.html#addons"
        },
        "$:/language/codemirror/configUrl": {
            "title": "$:/language/codemirror/configUrl",
            "text": "http://codemirror.net/doc/manual.html#config"
        },
        "$:/language/codemirror/controlPanel/hint": {
            "title": "$:/language/codemirror/controlPanel/hint",
            "text": "These settings let you customise the behaviour of [[CodeMirror|$:/plugins/tiddlywiki/codemirror]]."
        },
        "$:/language/codemirror/controlPanel/keyboard": {
            "title": "$:/language/codemirror/controlPanel/keyboard",
            "text": "Keyboard shortcuts"
        },
        "$:/language/codemirror/controlPanel/usage": {
            "title": "$:/language/codemirror/controlPanel/usage",
            "text": "Usage information"
        },
        "$:/language/codemirror/cursorBlinkRate/hint": {
            "title": "$:/language/codemirror/cursorBlinkRate/hint",
            "text": "Cursor blink rate"
        },
        "$:/language/codemirror/editorFont/hint": {
            "title": "$:/language/codemirror/editorFont/hint",
            "text": "Editor font family"
        },
        "$:/language/codemirror/editorFont/info": {
            "title": "$:/language/codemirror/editorFont/info",
            "text": "Set the font family for the ~CodeMirror text-editor"
        },
        "$:/language/codemirror/indentUnit/hint": {
            "title": "$:/language/codemirror/indentUnit/hint",
            "text": "How many spaces a block should be indented"
        },
        "$:/language/codemirror/indentWithTabs/hint": {
            "title": "$:/language/codemirror/indentWithTabs/hint",
            "text": "Enable indenting with tabs"
        },
        "$:/language/codemirror/indentWithTabs/info": {
            "title": "$:/language/codemirror/indentWithTabs/info",
            "text": "Whether, when indenting, the first N*`tabSize` spaces should be replaced by N tabs."
        },
        "$:/language/codemirror/keyMap/hint": {
            "title": "$:/language/codemirror/keyMap/hint",
            "text": "~CodeMirror keymap"
        },
        "$:/language/codemirror/keyMap/info": {
            "title": "$:/language/codemirror/keyMap/info",
            "text": "~The Keyboard KeyMap used within the ~CodeMirror text-editor"
        },
        "$:/language/codemirror/lineNumbers/hint": {
            "title": "$:/language/codemirror/lineNumbers/hint",
            "text": "Enable line numbers"
        },
        "$:/language/codemirror/lineNumbers/info": {
            "title": "$:/language/codemirror/lineNumbers/info",
            "text": "Whether to show line numbers to the left of the editor."
        },
        "$:/language/codemirror/lineWrapping/hint": {
            "title": "$:/language/codemirror/lineWrapping/hint",
            "text": "Enable line wrapping"
        },
        "$:/language/codemirror/lineWrapping/info": {
            "title": "$:/language/codemirror/lineWrapping/info",
            "text": "Whether CodeMirror should scroll or wrap for long lines. Defaults to `false` (scroll)."
        },
        "$:/language/codemirror/showCursorWhenSelecting/hint": {
            "title": "$:/language/codemirror/showCursorWhenSelecting/hint",
            "text": "Show cursor, when selecting"
        },
        "$:/language/codemirror/showCursorWhenSelecting/info": {
            "title": "$:/language/codemirror/showCursorWhenSelecting/info",
            "text": "Whether the cursor should be drawn when a selection is active."
        },
        "$:/language/codemirror/smartIndent/hint": {
            "title": "$:/language/codemirror/smartIndent/hint",
            "text": "Enable smart indent"
        },
        "$:/language/codemirror/smartIndent/info": {
            "title": "$:/language/codemirror/smartIndent/info",
            "text": "Whether to use the context-sensitive indentation that the mode provides (or just indent the same as the line before). Defaults to `true`."
        },
        "$:/language/codemirror/styleActiveLine/hint": {
            "title": "$:/language/codemirror/styleActiveLine/hint",
            "text": "Highlight active line"
        },
        "$:/language/codemirror/styleActiveLine/info": {
            "title": "$:/language/codemirror/styleActiveLine/info",
            "text": "Whether or not to highlight the active text-editor line"
        },
        "$:/language/codemirror/tabSize/hint": {
            "title": "$:/language/codemirror/tabSize/hint",
            "text": "Width of a tab character"
        },
        "$:/language/codemirror/theme/hint": {
            "title": "$:/language/codemirror/theme/hint",
            "text": "Select a theme"
        },
        "$:/language/codemirror/theme/info": {
            "title": "$:/language/codemirror/theme/info",
            "text": "Choose between ~CodeMirror themes"
        },
        "$:/plugins/tiddlywiki/codemirror/edit-codemirror.js": {
            "title": "$:/plugins/tiddlywiki/codemirror/edit-codemirror.js",
            "text": "/*\\\ntitle: $:/plugins/tiddlywiki/codemirror/edit-codemirror.js\ntype: application/javascript\nmodule-type: widget\n\nEdit-codemirror widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar editTextWidgetFactory = require(\"$:/core/modules/editor/factory.js\").editTextWidgetFactory,\n\tCodeMirrorEngine = require(\"$:/plugins/tiddlywiki/codemirror/engine.js\").CodeMirrorEngine;\n\nexports[\"edit-codemirror\"] = editTextWidgetFactory(CodeMirrorEngine,CodeMirrorEngine);\n\n})();\n",
            "type": "application/javascript",
            "module-type": "widget"
        },
        "$:/plugins/tiddlywiki/codemirror/engine.js": {
            "title": "$:/plugins/tiddlywiki/codemirror/engine.js",
            "text": "/*\\\ntitle: $:/plugins/tiddlywiki/codemirror/engine.js\ntype: application/javascript\nmodule-type: library\n\nText editor engine based on a CodeMirror instance\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar CODEMIRROR_OPTIONS = \"$:/config/CodeMirror\",\nHEIGHT_VALUE_TITLE = \"$:/config/TextEditor/EditorHeight/Height\",\nCONFIG_FILTER = \"[all[shadows+tiddlers]prefix[$:/config/codemirror/]]\"\n\t\n// Install CodeMirror\nif($tw.browser && !window.CodeMirror) {\n\n\tvar modules = $tw.modules.types[\"codemirror\"];\n\tvar req = Object.getOwnPropertyNames(modules);\n\n\twindow.CodeMirror = require(\"$:/plugins/tiddlywiki/codemirror/lib/codemirror.js\");\n\t// Install required CodeMirror plugins\n\tif(req) {\n\t\tif($tw.utils.isArray(req)) {\n\t\t\tfor(var index=0; index<req.length; index++) {\n\t\t\t\trequire(req[index]);\n\t\t\t}\n\t\t} else {\n\t\t\trequire(req);\n\t\t}\n\t}\n}\n\nfunction getCmConfig() {\n\tvar type,\n\t\ttest,\n\t\tvalue,\n\t\telement,\n\t\textend,\n\t\ttiddler,\n\t\tconfig = {},\n\t\tconfigTiddlers = $tw.wiki.filterTiddlers(CONFIG_FILTER);\n\n\tif ($tw.utils.isArray(configTiddlers)) {\n\t\tfor (var i=0; i<configTiddlers.length; i++) {\n\t\t\ttiddler = $tw.wiki.getTiddler(configTiddlers[i]);\n\t\t\t\tif (tiddler) {\n\t\t\t\telement = configTiddlers[i].replace(/\\$:\\/config\\/codemirror\\//ig,\"\");\n\t\t\t\t\ttype = (tiddler.fields.type) ? tiddler.fields.type.trim().toLocaleLowerCase() : \"string\";\n\t\t\t\tswitch (type) {\n\t\t\t\t\tcase \"bool\":\n\t\t\t\t\ttest = tiddler.fields.text.trim().toLowerCase();\n\t\t\t\t\tvalue = (test === \"true\") ? true : false;\n\t\t\t\t\tconfig[element] = value;\n\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"string\":\n\t\t\t\t\tvalue = tiddler.fields.text.trim();\n\t\t\t\t\tconfig[element] = value;\n\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"integer\":\n\t\t\t\t\tvalue = parseInt(tiddler.fields.text.trim(), 10);\n\t\t\t\t\tconfig[element] = value;\n\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"json\":\n\t\t\t\t\tvalue = JSON.parse(tiddler.fields.text.trim());\n\t\t\t\t\t\textend = (tiddler.fields.extend) ? tiddler.fields.extend : element;\n\n\t\t\t\t\tif (config[extend]) {\n\t\t\t\t\t\t$tw.utils.extend(config[extend], value);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tconfig[extend] = value;\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn config;\n}\n\nfunction CodeMirrorEngine(options) {\n\n\t// Save our options\n\tvar self = this;\n\toptions = options || {};\n\tthis.widget = options.widget;\n\tthis.value = options.value;\n\tthis.parentNode = options.parentNode;\n\tthis.nextSibling = options.nextSibling;\n\t// Create the wrapper DIV\n\tthis.domNode = this.widget.document.createElement(\"div\");\n\tif(this.widget.editClass) {\n\t\tthis.domNode.className = this.widget.editClass;\n\t}\n\tthis.domNode.style.display = \"inline-block\";\n\tthis.parentNode.insertBefore(this.domNode,this.nextSibling);\n\tthis.widget.domNodes.push(this.domNode);\n\t\n\t// Set all cm-plugin defaults\n\t// Get the configuration options for the CodeMirror object\n\tvar config = getCmConfig();\n\n\tconfig.mode = options.type;\n\tconfig.value = options.value;\n\tif(this.widget.editTabIndex) {\n\t\tconfig[\"tabindex\"] = this.widget.editTabIndex;\n\t}\n\t// Create the CodeMirror instance\n\tthis.cm = window.CodeMirror(function(cmDomNode) {\n\t\t// Note that this is a synchronous callback that is called before the constructor returns\n\t\tif(!self.widget.document.isTiddlyWikiFakeDom) {\n\t\t\tself.domNode.appendChild(cmDomNode);\n\t\t}\n\t},config);\n\n\t// Set up a change event handler\n\tthis.cm.on(\"change\",function() {\n\t\tself.widget.saveChanges(self.getText());\n\t\tif(self.widget.editInputActions) {\n\t\t\tself.widget.invokeActionString(self.widget.editInputActions);\n\t\t}\n\t});\n\tthis.cm.on(\"drop\",function(cm,event) {\n\t\tevent.stopPropagation(); // Otherwise TW's dropzone widget sees the drop event\n\t\treturn false;\n\t});\n\tthis.cm.on(\"keydown\",function(cm,event) {\n\t\treturn self.widget.handleKeydownEvent.call(self.widget,event);\n\t});\n\tthis.cm.on(\"focus\",function(cm,event) {\n\t\tif(self.widget.editCancelPopups) {\n\t\t\t$tw.popup.cancel(0);\t\n\t\t}\n\t});\n}\n\n/*\nSet the text of the engine if it doesn't currently have focus\n*/\nCodeMirrorEngine.prototype.setText = function(text,type) {\n\tvar self = this;\n\tself.cm.setOption(\"mode\",type);\n\tif(!this.cm.hasFocus()) {\n\t\tthis.updateDomNodeText(text);\n\t}\n};\n\n/*\nUpdate the DomNode with the new text\n*/\nCodeMirrorEngine.prototype.updateDomNodeText = function(text) {\n\tthis.cm.setValue(text);\n};\n\n/*\nGet the text of the engine\n*/\nCodeMirrorEngine.prototype.getText = function() {\n\treturn this.cm.getValue();\n};\n\n/*\nFix the height of textarea to fit content\n*/\nCodeMirrorEngine.prototype.fixHeight = function() {\n\tif(this.widget.editAutoHeight) {\n\t\t// Resize to fit\n\t\tthis.cm.setSize(null,null);\n\t} else {\n\t\tvar fixedHeight = parseInt(this.widget.wiki.getTiddlerText(HEIGHT_VALUE_TITLE,\"400px\"),10);\n\t\tfixedHeight = Math.max(fixedHeight,20);\n\t\tthis.cm.setSize(null,fixedHeight);\n\t}\n};\n\n/*\nFocus the engine node\n*/\nCodeMirrorEngine.prototype.focus  = function() {\n\tthis.cm.focus();\n}\n\n/*\nCreate a blank structure representing a text operation\n*/\nCodeMirrorEngine.prototype.createTextOperation = function() {\n\tvar selections = this.cm.listSelections();\n\tif(selections.length > 0) {\n\t\tvar anchorPos = this.cm.indexFromPos(selections[0].anchor),\n\t\theadPos = this.cm.indexFromPos(selections[0].head);\n\t}\n\tvar operation = {\n\t\ttext: this.cm.getValue(),\n\t\tselStart: Math.min(anchorPos,headPos),\n\t\tselEnd: Math.max(anchorPos,headPos),\n\t\tcutStart: null,\n\t\tcutEnd: null,\n\t\treplacement: null,\n\t\tnewSelStart: null,\n\t\tnewSelEnd: null\n\t};\n\toperation.selection = operation.text.substring(operation.selStart,operation.selEnd);\n\treturn operation;\n};\n\n/*\nExecute a text operation\n*/\nCodeMirrorEngine.prototype.executeTextOperation = function(operation) {\n\t// Perform the required changes to the text area and the underlying tiddler\n\tvar newText = operation.text;\n\tif(operation.replacement !== null) {\n\t\tthis.cm.replaceRange(operation.replacement,this.cm.posFromIndex(operation.cutStart),this.cm.posFromIndex(operation.cutEnd));\n\t\tthis.cm.setSelection(this.cm.posFromIndex(operation.newSelStart),this.cm.posFromIndex(operation.newSelEnd));\n\t\tnewText = operation.text.substring(0,operation.cutStart) + operation.replacement + operation.text.substring(operation.cutEnd);\n\t}\n\tthis.cm.focus();\n\treturn newText;\n};\n\nexports.CodeMirrorEngine = CodeMirrorEngine;\n\n})();\n",
            "type": "application/javascript",
            "module-type": "library"
        },
        "$:/plugins/tiddlywiki/codemirror/lib/codemirror.js": {
            "text": "!function(e,t){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define(t):(e=e||self).CodeMirror=t()}(this,function(){\"use strict\";var e=navigator.userAgent,t=navigator.platform,d=/gecko\\/\\d/i.test(e),n=/MSIE \\d/.test(e),r=/Trident\\/(?:[7-9]|\\d{2,})\\..*rv:(\\d+)/.exec(e),i=/Edge\\/(\\d+)/.exec(e),w=n||r||i,v=w&&(n?document.documentMode||6:+(i||r)[1]),f=!i&&/WebKit\\//.test(e),r=f&&/Qt\\/\\d+\\.\\d+/.test(e),o=!i&&/Chrome\\//.test(e),p=/Opera\\//.test(e),c=/Apple Computer/.test(navigator.vendor),l=/Mac OS X 1\\d\\D([8-9]|\\d\\d)\\D/.test(e),u=/PhantomJS/.test(e),s=!i&&/AppleWebKit/.test(e)&&/Mobile\\/\\w+/.test(e),a=/Android/.test(e),h=s||a||/webOS|BlackBerry|Opera Mini|Opera Mobi|IEMobile/i.test(e),g=s||/Mac/.test(t),m=/\\bCrOS\\b/.test(e),y=/win/i.test(t),e=p&&e.match(/Version\\/(\\d*\\.\\d*)/);(e=e&&Number(e[1]))&&15<=e&&(f=!(p=!1));var b=g&&(r||p&&(null==e||e<12.11)),x=d||w&&9<=v;function C(e){return new RegExp(\"(^|\\\\s)\"+e+\"(?:$|\\\\s)\\\\s*\")}var S,L=function(e,t){var n=e.className,r=C(t).exec(n);r&&(t=n.slice(r.index+r[0].length),e.className=n.slice(0,r.index)+(t?r[1]+t:\"\"))};function k(e){for(var t=e.childNodes.length;0<t;--t)e.removeChild(e.firstChild);return e}function T(e,t){return k(e).appendChild(t)}function M(e,t,n,r){var i=document.createElement(e);if(n&&(i.className=n),r&&(i.style.cssText=r),\"string\"==typeof t)i.appendChild(document.createTextNode(t));else if(t)for(var o=0;o<t.length;++o)i.appendChild(t[o]);return i}function N(e,t,n,r){r=M(e,t,n,r);return r.setAttribute(\"role\",\"presentation\"),r}function A(e,t){if(3==t.nodeType&&(t=t.parentNode),e.contains)return e.contains(t);do{if(11==t.nodeType&&(t=t.host),t==e)return!0}while(t=t.parentNode)}function O(){var t;try{t=document.activeElement}catch(e){t=document.body||null}for(;t&&t.shadowRoot&&t.shadowRoot.activeElement;)t=t.shadowRoot.activeElement;return t}function D(e,t){var n=e.className;C(t).test(n)||(e.className+=(n?\" \":\"\")+t)}function W(e,t){for(var n=e.split(\" \"),r=0;r<n.length;r++)n[r]&&!C(n[r]).test(t)&&(t+=\" \"+n[r]);return t}S=document.createRange?function(e,t,n,r){var i=document.createRange();return i.setEnd(r||e,n),i.setStart(e,t),i}:function(e,t,n){var r=document.body.createTextRange();try{r.moveToElementText(e.parentNode)}catch(e){return r}return r.collapse(!0),r.moveEnd(\"character\",n),r.moveStart(\"character\",t),r};var H=function(e){e.select()};function F(e){var t=Array.prototype.slice.call(arguments,1);return function(){return e.apply(null,t)}}function E(e,t,n){for(var r in t=t||{},e)!e.hasOwnProperty(r)||!1===n&&t.hasOwnProperty(r)||(t[r]=e[r]);return t}function P(e,t,n,r,i){null==t&&-1==(t=e.search(/[^\\s\\u00a0]/))&&(t=e.length);for(var o=r||0,l=i||0;;){var s=e.indexOf(\"\\t\",o);if(s<0||t<=s)return l+(t-o);l+=s-o,l+=n-l%n,o=s+1}}s?H=function(e){e.selectionStart=0,e.selectionEnd=e.value.length}:w&&(H=function(e){try{e.select()}catch(e){}});var I=function(){this.id=null,this.f=null,this.time=0,this.handler=F(this.onTimeout,this)};function R(e,t){for(var n=0;n<e.length;++n)if(e[n]==t)return n;return-1}I.prototype.onTimeout=function(e){e.id=0,e.time<=+new Date?e.f():setTimeout(e.handler,e.time-+new Date)},I.prototype.set=function(e,t){this.f=t;t=+new Date+e;(!this.id||t<this.time)&&(clearTimeout(this.id),this.id=setTimeout(this.handler,e),this.time=t)};var z=50,B={toString:function(){return\"CodeMirror.Pass\"}},G={scroll:!1},U={origin:\"*mouse\"},V={origin:\"+move\"};function K(e,t,n){for(var r=0,i=0;;){var o=e.indexOf(\"\\t\",r);-1==o&&(o=e.length);var l=o-r;if(o==e.length||t<=i+l)return r+Math.min(l,t-i);if(i+=o-r,r=o+1,t<=(i+=n-i%n))return r}}var j=[\"\"];function X(e){for(;j.length<=e;)j.push(Y(j)+\" \");return j[e]}function Y(e){return e[e.length-1]}function _(e,t){for(var n=[],r=0;r<e.length;r++)n[r]=t(e[r],r);return n}function $(){}function q(e,t){e=Object.create?Object.create(e):($.prototype=e,new $);return t&&E(t,e),e}var Z=/[\\u00df\\u0587\\u0590-\\u05f4\\u0600-\\u06ff\\u3040-\\u309f\\u30a0-\\u30ff\\u3400-\\u4db5\\u4e00-\\u9fcc\\uac00-\\ud7af]/;function Q(e){return/\\w/.test(e)||\"€\"<e&&(e.toUpperCase()!=e.toLowerCase()||Z.test(e))}function J(e,t){return t?!!(-1<t.source.indexOf(\"\\\\w\")&&Q(e))||t.test(e):Q(e)}function ee(e){for(var t in e)if(e.hasOwnProperty(t)&&e[t])return;return 1}var te=/[\\u0300-\\u036f\\u0483-\\u0489\\u0591-\\u05bd\\u05bf\\u05c1\\u05c2\\u05c4\\u05c5\\u05c7\\u0610-\\u061a\\u064b-\\u065e\\u0670\\u06d6-\\u06dc\\u06de-\\u06e4\\u06e7\\u06e8\\u06ea-\\u06ed\\u0711\\u0730-\\u074a\\u07a6-\\u07b0\\u07eb-\\u07f3\\u0816-\\u0819\\u081b-\\u0823\\u0825-\\u0827\\u0829-\\u082d\\u0900-\\u0902\\u093c\\u0941-\\u0948\\u094d\\u0951-\\u0955\\u0962\\u0963\\u0981\\u09bc\\u09be\\u09c1-\\u09c4\\u09cd\\u09d7\\u09e2\\u09e3\\u0a01\\u0a02\\u0a3c\\u0a41\\u0a42\\u0a47\\u0a48\\u0a4b-\\u0a4d\\u0a51\\u0a70\\u0a71\\u0a75\\u0a81\\u0a82\\u0abc\\u0ac1-\\u0ac5\\u0ac7\\u0ac8\\u0acd\\u0ae2\\u0ae3\\u0b01\\u0b3c\\u0b3e\\u0b3f\\u0b41-\\u0b44\\u0b4d\\u0b56\\u0b57\\u0b62\\u0b63\\u0b82\\u0bbe\\u0bc0\\u0bcd\\u0bd7\\u0c3e-\\u0c40\\u0c46-\\u0c48\\u0c4a-\\u0c4d\\u0c55\\u0c56\\u0c62\\u0c63\\u0cbc\\u0cbf\\u0cc2\\u0cc6\\u0ccc\\u0ccd\\u0cd5\\u0cd6\\u0ce2\\u0ce3\\u0d3e\\u0d41-\\u0d44\\u0d4d\\u0d57\\u0d62\\u0d63\\u0dca\\u0dcf\\u0dd2-\\u0dd4\\u0dd6\\u0ddf\\u0e31\\u0e34-\\u0e3a\\u0e47-\\u0e4e\\u0eb1\\u0eb4-\\u0eb9\\u0ebb\\u0ebc\\u0ec8-\\u0ecd\\u0f18\\u0f19\\u0f35\\u0f37\\u0f39\\u0f71-\\u0f7e\\u0f80-\\u0f84\\u0f86\\u0f87\\u0f90-\\u0f97\\u0f99-\\u0fbc\\u0fc6\\u102d-\\u1030\\u1032-\\u1037\\u1039\\u103a\\u103d\\u103e\\u1058\\u1059\\u105e-\\u1060\\u1071-\\u1074\\u1082\\u1085\\u1086\\u108d\\u109d\\u135f\\u1712-\\u1714\\u1732-\\u1734\\u1752\\u1753\\u1772\\u1773\\u17b7-\\u17bd\\u17c6\\u17c9-\\u17d3\\u17dd\\u180b-\\u180d\\u18a9\\u1920-\\u1922\\u1927\\u1928\\u1932\\u1939-\\u193b\\u1a17\\u1a18\\u1a56\\u1a58-\\u1a5e\\u1a60\\u1a62\\u1a65-\\u1a6c\\u1a73-\\u1a7c\\u1a7f\\u1b00-\\u1b03\\u1b34\\u1b36-\\u1b3a\\u1b3c\\u1b42\\u1b6b-\\u1b73\\u1b80\\u1b81\\u1ba2-\\u1ba5\\u1ba8\\u1ba9\\u1c2c-\\u1c33\\u1c36\\u1c37\\u1cd0-\\u1cd2\\u1cd4-\\u1ce0\\u1ce2-\\u1ce8\\u1ced\\u1dc0-\\u1de6\\u1dfd-\\u1dff\\u200c\\u200d\\u20d0-\\u20f0\\u2cef-\\u2cf1\\u2de0-\\u2dff\\u302a-\\u302f\\u3099\\u309a\\ua66f-\\ua672\\ua67c\\ua67d\\ua6f0\\ua6f1\\ua802\\ua806\\ua80b\\ua825\\ua826\\ua8c4\\ua8e0-\\ua8f1\\ua926-\\ua92d\\ua947-\\ua951\\ua980-\\ua982\\ua9b3\\ua9b6-\\ua9b9\\ua9bc\\uaa29-\\uaa2e\\uaa31\\uaa32\\uaa35\\uaa36\\uaa43\\uaa4c\\uaab0\\uaab2-\\uaab4\\uaab7\\uaab8\\uaabe\\uaabf\\uaac1\\uabe5\\uabe8\\uabed\\udc00-\\udfff\\ufb1e\\ufe00-\\ufe0f\\ufe20-\\ufe26\\uff9e\\uff9f]/;function ne(e){return 768<=e.charCodeAt(0)&&te.test(e)}function re(e,t,n){for(;(n<0?0<t:t<e.length)&&ne(e.charAt(t));)t+=n;return t}function ie(e,t,n){for(var r=n<t?-1:1;;){if(t==n)return t;var i=(t+n)/2,i=r<0?Math.ceil(i):Math.floor(i);if(i==t)return e(i)?t:n;e(i)?n=i:t=i+r}}var oe=null;function le(e,t,n){var r;oe=null;for(var i=0;i<e.length;++i){var o=e[i];if(o.from<t&&o.to>t)return i;o.to==t&&(o.from!=o.to&&\"before\"==n?r=i:oe=i),o.from==t&&(o.from!=o.to&&\"before\"!=n?r=i:oe=i)}return null!=r?r:oe}var se,ae,ue,ce,he,de,fe,pe=(se=\"bbbbbbbbbtstwsbbbbbbbbbbbbbbssstwNN%%%NNNNNN,N,N1111111111NNNNNNNLLLLLLLLLLLLLLLLLLLLLLLLLLNNNNNNLLLLLLLLLLLLLLLLLLLLLLLLLLNNNNbbbbbbsbbbbbbbbbbbbbbbbbbbbbbbbbb,N%%%%NNNNLNNNNN%%11NLNNN1LNNNNNLLLLLLLLLLLLLLLLLLLLLLLNLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLN\",ae=\"nnnnnnNNr%%r,rNNmmmmmmmmmmmrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrmmmmmmmmmmmmmmmmmmmmmnnnnnnnnnn%nnrrrmrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrmmmmmmmnNmmmmmmrrmmNmmmmrr1111111111\",ue=/[\\u0590-\\u05f4\\u0600-\\u06ff\\u0700-\\u08ac]/,ce=/[stwN]/,he=/[LRr]/,de=/[Lb1n]/,fe=/[1n]/,function(e,t){var n=\"ltr\"==t?\"L\":\"R\";if(0==e.length||\"ltr\"==t&&!ue.test(e))return!1;for(var r,i=e.length,o=[],l=0;l<i;++l)o.push((r=e.charCodeAt(l))<=247?se.charAt(r):1424<=r&&r<=1524?\"R\":1536<=r&&r<=1785?ae.charAt(r-1536):1774<=r&&r<=2220?\"r\":8192<=r&&r<=8203?\"w\":8204==r?\"b\":\"L\");for(var s=0,a=n;s<i;++s){var u=o[s];\"m\"==u?o[s]=a:a=u}for(var c=0,h=n;c<i;++c){var d=o[c];\"1\"==d&&\"r\"==h?o[c]=\"n\":he.test(d)&&\"r\"==(h=d)&&(o[c]=\"R\")}for(var f=1,p=o[0];f<i-1;++f){var g=o[f];\"+\"==g&&\"1\"==p&&\"1\"==o[f+1]?o[f]=\"1\":\",\"!=g||p!=o[f+1]||\"1\"!=p&&\"n\"!=p||(o[f]=p),p=g}for(var m=0;m<i;++m){var v=o[m];if(\",\"==v)o[m]=\"N\";else if(\"%\"==v){for(var y=void 0,y=m+1;y<i&&\"%\"==o[y];++y);for(var b=m&&\"!\"==o[m-1]||y<i&&\"1\"==o[y]?\"1\":\"N\",w=m;w<y;++w)o[w]=b;m=y-1}}for(var x=0,C=n;x<i;++x){var S=o[x];\"L\"==C&&\"1\"==S?o[x]=\"L\":he.test(S)&&(C=S)}for(var L=0;L<i;++L)if(ce.test(o[L])){for(var k=void 0,k=L+1;k<i&&ce.test(o[k]);++k);for(var T=\"L\"==(L?o[L-1]:n),M=T==(\"L\"==(k<i?o[k]:n))?T?\"L\":\"R\":n,N=L;N<k;++N)o[N]=M;L=k-1}for(var A,O=[],D=0;D<i;)if(de.test(o[D])){var W=D;for(++D;D<i&&de.test(o[D]);++D);O.push(new ge(0,W,D))}else{var H=D,F=O.length,E=\"rtl\"==t?1:0;for(++D;D<i&&\"L\"!=o[D];++D);for(var P=H;P<D;)if(fe.test(o[P])){H<P&&(O.splice(F,0,new ge(1,H,P)),F+=E);var I=P;for(++P;P<D&&fe.test(o[P]);++P);O.splice(F,0,new ge(2,I,P)),F+=E,H=P}else++P;H<D&&O.splice(F,0,new ge(1,H,D))}return\"ltr\"==t&&(1==O[0].level&&(A=e.match(/^\\s+/))&&(O[0].from=A[0].length,O.unshift(new ge(0,0,A[0].length))),1==Y(O).level&&(A=e.match(/\\s+$/))&&(Y(O).to-=A[0].length,O.push(new ge(0,i-A[0].length,i)))),\"rtl\"==t?O.reverse():O});function ge(e,t,n){this.level=e,this.from=t,this.to=n}function me(e,t){var n=e.order;return null==n&&(n=e.order=pe(e.text,t)),n}var ve=[],ye=function(e,t,n){e.addEventListener?e.addEventListener(t,n,!1):e.attachEvent?e.attachEvent(\"on\"+t,n):(e=e._handlers||(e._handlers={}))[t]=(e[t]||ve).concat(n)};function be(e,t){return e._handlers&&e._handlers[t]||ve}function we(e,t,n){var r;e.removeEventListener?e.removeEventListener(t,n,!1):e.detachEvent?e.detachEvent(\"on\"+t,n):!(e=(r=e._handlers)&&r[t])||-1<(n=R(e,n))&&(r[t]=e.slice(0,n).concat(e.slice(n+1)))}function xe(e,t){var n=be(e,t);if(n.length)for(var r=Array.prototype.slice.call(arguments,2),i=0;i<n.length;++i)n[i].apply(null,r)}function Ce(e,t,n){return\"string\"==typeof t&&(t={type:t,preventDefault:function(){this.defaultPrevented=!0}}),xe(e,n||t.type,e,t),Ne(t)||t.codemirrorIgnore}function Se(e){var t=e._handlers&&e._handlers.cursorActivity;if(t)for(var n=e.curOp.cursorActivityHandlers||(e.curOp.cursorActivityHandlers=[]),r=0;r<t.length;++r)-1==R(n,t[r])&&n.push(t[r])}function Le(e,t){return 0<be(e,t).length}function ke(e){e.prototype.on=function(e,t){ye(this,e,t)},e.prototype.off=function(e,t){we(this,e,t)}}function Te(e){e.preventDefault?e.preventDefault():e.returnValue=!1}function Me(e){e.stopPropagation?e.stopPropagation():e.cancelBubble=!0}function Ne(e){return null!=e.defaultPrevented?e.defaultPrevented:0==e.returnValue}function Ae(e){Te(e),Me(e)}function Oe(e){return e.target||e.srcElement}function De(e){var t=e.which;return null==t&&(1&e.button?t=1:2&e.button?t=3:4&e.button&&(t=2)),g&&e.ctrlKey&&1==t&&(t=3),t}var We,He,Fe=function(){if(w&&v<9)return!1;var e=M(\"div\");return\"draggable\"in e||\"dragDrop\"in e}();var Ee=3!=\"\\n\\nb\".split(/\\n/).length?function(e){for(var t=0,n=[],r=e.length;t<=r;){var i=e.indexOf(\"\\n\",t);-1==i&&(i=e.length);var o=e.slice(t,\"\\r\"==e.charAt(i-1)?i-1:i),l=o.indexOf(\"\\r\");-1!=l?(n.push(o.slice(0,l)),t+=l+1):(n.push(o),t=i+1)}return n}:function(e){return e.split(/\\r\\n?|\\n/)},Pe=window.getSelection?function(e){try{return e.selectionStart!=e.selectionEnd}catch(e){return!1}}:function(e){var t;try{t=e.ownerDocument.selection.createRange()}catch(e){}return!(!t||t.parentElement()!=e)&&0!=t.compareEndPoints(\"StartToEnd\",t)},Ie=\"oncopy\"in(r=M(\"div\"))||(r.setAttribute(\"oncopy\",\"return;\"),\"function\"==typeof r.oncopy),Re=null;var ze={},Be={};function Ge(e){if(\"string\"==typeof e&&Be.hasOwnProperty(e))e=Be[e];else if(e&&\"string\"==typeof e.name&&Be.hasOwnProperty(e.name)){var t=Be[e.name];\"string\"==typeof t&&(t={name:t}),(e=q(t,e)).name=t.name}else{if(\"string\"==typeof e&&/^[\\w\\-]+\\/[\\w\\-]+\\+xml$/.test(e))return Ge(\"application/xml\");if(\"string\"==typeof e&&/^[\\w\\-]+\\/[\\w\\-]+\\+json$/.test(e))return Ge(\"application/json\")}return\"string\"==typeof e?{name:e}:e||{name:\"null\"}}function Ue(e,t){t=Ge(t);var n=ze[t.name];if(!n)return Ue(e,\"text/plain\");var r=n(e,t);if(Ve.hasOwnProperty(t.name)){var i,o=Ve[t.name];for(i in o)o.hasOwnProperty(i)&&(r.hasOwnProperty(i)&&(r[\"_\"+i]=r[i]),r[i]=o[i])}if(r.name=t.name,t.helperType&&(r.helperType=t.helperType),t.modeProps)for(var l in t.modeProps)r[l]=t.modeProps[l];return r}var Ve={};function Ke(e,t){E(t,Ve.hasOwnProperty(e)?Ve[e]:Ve[e]={})}function je(e,t){if(!0===t)return t;if(e.copyState)return e.copyState(t);var n,r={};for(n in t){var i=t[n];i instanceof Array&&(i=i.concat([])),r[n]=i}return r}function Xe(e,t){for(var n;e.innerMode&&(n=e.innerMode(t))&&n.mode!=e;)t=n.state,e=n.mode;return n||{mode:e,state:t}}function Ye(e,t,n){return!e.startState||e.startState(t,n)}var _e=function(e,t,n){this.pos=this.start=0,this.string=e,this.tabSize=t||8,this.lastColumnPos=this.lastColumnValue=0,this.lineStart=0,this.lineOracle=n};function $e(e,t){if((t-=e.first)<0||t>=e.size)throw new Error(\"There is no line \"+(t+e.first)+\" in the document.\");for(var n=e;!n.lines;)for(var r=0;;++r){var i=n.children[r],o=i.chunkSize();if(t<o){n=i;break}t-=o}return n.lines[t]}function qe(e,t,n){var r=[],i=t.line;return e.iter(t.line,n.line+1,function(e){e=e.text;i==n.line&&(e=e.slice(0,n.ch)),i==t.line&&(e=e.slice(t.ch)),r.push(e),++i}),r}function Ze(e,t,n){var r=[];return e.iter(t,n,function(e){r.push(e.text)}),r}function Qe(e,t){var n=t-e.height;if(n)for(var r=e;r;r=r.parent)r.height+=n}function Je(e){if(null==e.parent)return null;for(var t=e.parent,n=R(t.lines,e),r=t.parent;r;r=(t=r).parent)for(var i=0;r.children[i]!=t;++i)n+=r.children[i].chunkSize();return n+t.first}function et(e,t){var n=e.first;e:do{for(var r=0;r<e.children.length;++r){var i=e.children[r],o=i.height;if(t<o){e=i;continue e}t-=o,n+=i.chunkSize()}return n}while(!e.lines);for(var l=0;l<e.lines.length;++l){var s=e.lines[l].height;if(t<s)break;t-=s}return n+l}function tt(e,t){return t>=e.first&&t<e.first+e.size}function nt(e,t){return String(e.lineNumberFormatter(t+e.firstLineNumber))}function rt(e,t,n){if(void 0===n&&(n=null),!(this instanceof rt))return new rt(e,t,n);this.line=e,this.ch=t,this.sticky=n}function it(e,t){return e.line-t.line||e.ch-t.ch}function ot(e,t){return e.sticky==t.sticky&&0==it(e,t)}function lt(e){return rt(e.line,e.ch)}function st(e,t){return it(e,t)<0?t:e}function at(e,t){return it(e,t)<0?e:t}function ut(e,t){return Math.max(e.first,Math.min(t,e.first+e.size-1))}function ct(e,t){if(t.line<e.first)return rt(e.first,0);var n=e.first+e.size-1;return t.line>n?rt(n,$e(e,n).text.length):(e=$e(e,(n=t).line).text.length,null==(t=n.ch)||e<t?rt(n.line,e):t<0?rt(n.line,0):n)}function ht(e,t){for(var n=[],r=0;r<t.length;r++)n[r]=ct(e,t[r]);return n}_e.prototype.eol=function(){return this.pos>=this.string.length},_e.prototype.sol=function(){return this.pos==this.lineStart},_e.prototype.peek=function(){return this.string.charAt(this.pos)||void 0},_e.prototype.next=function(){if(this.pos<this.string.length)return this.string.charAt(this.pos++)},_e.prototype.eat=function(e){var t=this.string.charAt(this.pos),e=\"string\"==typeof e?t==e:t&&(e.test?e.test(t):e(t));if(e)return++this.pos,t},_e.prototype.eatWhile=function(e){for(var t=this.pos;this.eat(e););return this.pos>t},_e.prototype.eatSpace=function(){for(var e=this.pos;/[\\s\\u00a0]/.test(this.string.charAt(this.pos));)++this.pos;return this.pos>e},_e.prototype.skipToEnd=function(){this.pos=this.string.length},_e.prototype.skipTo=function(e){e=this.string.indexOf(e,this.pos);if(-1<e)return this.pos=e,!0},_e.prototype.backUp=function(e){this.pos-=e},_e.prototype.column=function(){return this.lastColumnPos<this.start&&(this.lastColumnValue=P(this.string,this.start,this.tabSize,this.lastColumnPos,this.lastColumnValue),this.lastColumnPos=this.start),this.lastColumnValue-(this.lineStart?P(this.string,this.lineStart,this.tabSize):0)},_e.prototype.indentation=function(){return P(this.string,null,this.tabSize)-(this.lineStart?P(this.string,this.lineStart,this.tabSize):0)},_e.prototype.match=function(e,t,n){if(\"string\"!=typeof e){var r=this.string.slice(this.pos).match(e);return r&&0<r.index?null:(r&&!1!==t&&(this.pos+=r[0].length),r)}r=function(e){return n?e.toLowerCase():e};if(r(this.string.substr(this.pos,e.length))==r(e))return!1!==t&&(this.pos+=e.length),!0},_e.prototype.current=function(){return this.string.slice(this.start,this.pos)},_e.prototype.hideFirstChars=function(e,t){this.lineStart+=e;try{return t()}finally{this.lineStart-=e}},_e.prototype.lookAhead=function(e){var t=this.lineOracle;return t&&t.lookAhead(e)},_e.prototype.baseToken=function(){var e=this.lineOracle;return e&&e.baseToken(this.pos)};var dt=function(e,t){this.state=e,this.lookAhead=t},ft=function(e,t,n,r){this.state=t,this.doc=e,this.line=n,this.maxLookAhead=r||0,this.baseTokens=null,this.baseTokenPos=1};function pt(t,n,r,e){var a=[t.state.modeGen],i={};St(t,n.text,t.doc.mode,r,function(e,t){return a.push(e,t)},i,e);for(var u=r.state,o=0;o<t.state.overlays.length;++o)!function(e){r.baseTokens=a;var o=t.state.overlays[e],l=1,s=0;r.state=!0,St(t,n.text,o.mode,r,function(e,t){for(var n=l;s<e;){var r=a[l];e<r&&a.splice(l,1,e,a[l+1],r),l+=2,s=Math.min(e,r)}if(t)if(o.opaque)a.splice(n,l-n,e,\"overlay \"+t),l=n+2;else for(;n<l;n+=2){var i=a[n+1];a[n+1]=(i?i+\" \":\"\")+\"overlay \"+t}},i),r.state=u,r.baseTokens=null,r.baseTokenPos=1}(o);return{styles:a,classes:i.bgClass||i.textClass?i:null}}function gt(e,t,n){var r,i,o;return t.styles&&t.styles[0]==e.state.modeGen||(r=mt(e,Je(t)),i=t.text.length>e.options.maxHighlightLength&&je(e.doc.mode,r.state),o=pt(e,t,r),i&&(r.state=i),t.stateAfter=r.save(!i),t.styles=o.styles,o.classes?t.styleClasses=o.classes:t.styleClasses&&(t.styleClasses=null),n===e.doc.highlightFrontier&&(e.doc.modeFrontier=Math.max(e.doc.modeFrontier,++e.doc.highlightFrontier))),t.styles}function mt(n,r,e){var t=n.doc,i=n.display;if(!t.mode.startState)return new ft(t,!0,r);var o=function(e,t,n){for(var r,i,o=e.doc,l=n?-1:t-(e.doc.mode.innerMode?1e3:100),s=t;l<s;--s){if(s<=o.first)return o.first;var a=$e(o,s-1),u=a.stateAfter;if(u&&(!n||s+(u instanceof dt?u.lookAhead:0)<=o.modeFrontier))return s;a=P(a.text,null,e.options.tabSize);(null==i||a<r)&&(i=s-1,r=a)}return i}(n,r,e),l=o>t.first&&$e(t,o-1).stateAfter,s=l?ft.fromSaved(t,l,o):new ft(t,Ye(t.mode),o);return t.iter(o,r,function(e){vt(n,e.text,s);var t=s.line;e.stateAfter=t==r-1||t%5==0||t>=i.viewFrom&&t<i.viewTo?s.save():null,s.nextLine()}),e&&(t.modeFrontier=s.line),s}function vt(e,t,n,r){var i=e.doc.mode,o=new _e(t,e.options.tabSize,n);for(o.start=o.pos=r||0,\"\"==t&&yt(i,n.state);!o.eol();)bt(i,o,n.state),o.start=o.pos}function yt(e,t){if(e.blankLine)return e.blankLine(t);if(e.innerMode){t=Xe(e,t);return t.mode.blankLine?t.mode.blankLine(t.state):void 0}}function bt(e,t,n,r){for(var i=0;i<10;i++){r&&(r[0]=Xe(e,n).mode);var o=e.token(t,n);if(t.pos>t.start)return o}throw new Error(\"Mode \"+e.name+\" failed to advance stream.\")}ft.prototype.lookAhead=function(e){var t=this.doc.getLine(this.line+e);return null!=t&&e>this.maxLookAhead&&(this.maxLookAhead=e),t},ft.prototype.baseToken=function(e){if(!this.baseTokens)return null;for(;this.baseTokens[this.baseTokenPos]<=e;)this.baseTokenPos+=2;var t=this.baseTokens[this.baseTokenPos+1];return{type:t&&t.replace(/( |^)overlay .*/,\"\"),size:this.baseTokens[this.baseTokenPos]-e}},ft.prototype.nextLine=function(){this.line++,0<this.maxLookAhead&&this.maxLookAhead--},ft.fromSaved=function(e,t,n){return t instanceof dt?new ft(e,je(e.mode,t.state),n,t.lookAhead):new ft(e,je(e.mode,t),n)},ft.prototype.save=function(e){e=!1!==e?je(this.doc.mode,this.state):this.state;return 0<this.maxLookAhead?new dt(e,this.maxLookAhead):e};var wt=function(e,t,n){this.start=e.start,this.end=e.pos,this.string=e.current(),this.type=t||null,this.state=n};function xt(e,t,n,r){var i,o,l=e.doc,s=l.mode,a=$e(l,(t=ct(l,t)).line),u=mt(e,t.line,n),c=new _e(a.text,e.options.tabSize,u);for(r&&(o=[]);(r||c.pos<t.ch)&&!c.eol();)c.start=c.pos,i=bt(s,c,u.state),r&&o.push(new wt(c,i,je(l.mode,u.state)));return r?o:new wt(c,i,u.state)}function Ct(e,t){if(e)for(;;){var n=e.match(/(?:^|\\s+)line-(background-)?(\\S+)/);if(!n)break;e=e.slice(0,n.index)+e.slice(n.index+n[0].length);var r=n[1]?\"bgClass\":\"textClass\";null==t[r]?t[r]=n[2]:new RegExp(\"(?:^|\\\\s)\"+n[2]+\"(?:$|\\\\s)\").test(t[r])||(t[r]+=\" \"+n[2])}return e}function St(e,t,n,r,i,o,l){var s=n.flattenSpans;null==s&&(s=e.options.flattenSpans);var a=0,u=null,c=new _e(t,e.options.tabSize,r),h=e.options.addModeClass&&[null];for(\"\"==t&&Ct(yt(n,r.state),o);!c.eol();){var d,f=c.pos>e.options.maxHighlightLength?(s=!1,l&&vt(e,t,r,c.pos),c.pos=t.length,null):Ct(bt(n,c,r.state,h),o);if(!h||(d=h[0].name)&&(f=\"m-\"+(f?d+\" \"+f:d)),!s||u!=f){for(;a<c.start;)i(a=Math.min(c.start,a+5e3),u);u=f}c.start=c.pos}for(;a<c.pos;){var p=Math.min(c.pos,a+5e3);i(p,u),a=p}}var Lt=!1,kt=!1;function Tt(e,t,n){this.marker=e,this.from=t,this.to=n}function Mt(e,t){if(e)for(var n=0;n<e.length;++n){var r=e[n];if(r.marker==t)return r}}function Nt(e,t){if(t.full)return null;var n=tt(e,t.from.line)&&$e(e,t.from.line).markedSpans,r=tt(e,t.to.line)&&$e(e,t.to.line).markedSpans;if(!n&&!r)return null;var i=t.from.ch,o=t.to.ch,e=0==it(t.from,t.to),l=function(e,t,n){var r;if(e)for(var i=0;i<e.length;++i){var o,l=e[i],s=l.marker;!(null==l.from||(s.inclusiveLeft?l.from<=t:l.from<t))&&(l.from!=t||\"bookmark\"!=s.type||n&&l.marker.insertLeft)||(o=null==l.to||(s.inclusiveRight?l.to>=t:l.to>t),(r=r||[]).push(new Tt(s,l.from,o?null:l.to)))}return r}(n,i,e),s=function(e,t,n){var r;if(e)for(var i=0;i<e.length;++i){var o,l=e[i],s=l.marker;!(null==l.to||(s.inclusiveRight?l.to>=t:l.to>t))&&(l.from!=t||\"bookmark\"!=s.type||n&&!l.marker.insertLeft)||(o=null==l.from||(s.inclusiveLeft?l.from<=t:l.from<t),(r=r||[]).push(new Tt(s,o?null:l.from-t,null==l.to?null:l.to-t)))}return r}(r,o,e),a=1==t.text.length,u=Y(t.text).length+(a?i:0);if(l)for(var c=0;c<l.length;++c){var h,d=l[c];null==d.to&&((h=Mt(s,d.marker))?a&&(d.to=null==h.to?null:h.to+u):d.to=i)}if(s)for(var f=0;f<s.length;++f){var p=s[f];null!=p.to&&(p.to+=u),null==p.from?Mt(l,p.marker)||(p.from=u,a&&(l=l||[]).push(p)):(p.from+=u,a&&(l=l||[]).push(p))}l=l&&At(l),s&&s!=l&&(s=At(s));var g=[l];if(!a){var m,v=t.text.length-2;if(0<v&&l)for(var y=0;y<l.length;++y)null==l[y].to&&(m=m||[]).push(new Tt(l[y].marker,null,null));for(var b=0;b<v;++b)g.push(m);g.push(s)}return g}function At(e){for(var t=0;t<e.length;++t){var n=e[t];null!=n.from&&n.from==n.to&&!1!==n.marker.clearWhenEmpty&&e.splice(t--,1)}return e.length?e:null}function Ot(e){var t=e.markedSpans;if(t){for(var n=0;n<t.length;++n)t[n].marker.detachLine(e);e.markedSpans=null}}function Dt(e,t){if(t){for(var n=0;n<t.length;++n)t[n].marker.attachLine(e);e.markedSpans=t}}function Wt(e){return e.inclusiveLeft?-1:0}function Ht(e){return e.inclusiveRight?1:0}function Ft(e,t){var n=e.lines.length-t.lines.length;if(0!=n)return n;var r=e.find(),i=t.find(),n=it(r.from,i.from)||Wt(e)-Wt(t);if(n)return-n;i=it(r.to,i.to)||Ht(e)-Ht(t);return i||t.id-e.id}function Et(e,t){var n,r=kt&&e.markedSpans;if(r)for(var i,o=0;o<r.length;++o)(i=r[o]).marker.collapsed&&null==(t?i.from:i.to)&&(!n||Ft(n,i.marker)<0)&&(n=i.marker);return n}function Pt(e){return Et(e,!0)}function It(e){return Et(e,!1)}function Rt(e,t,n,r,i){var t=$e(e,t),o=kt&&t.markedSpans;if(o)for(var l=0;l<o.length;++l){var s=o[l];if(s.marker.collapsed){var a=s.marker.find(0),u=it(a.from,n)||Wt(s.marker)-Wt(i),c=it(a.to,r)||Ht(s.marker)-Ht(i);if(!(0<=u&&c<=0||u<=0&&0<=c)&&(u<=0&&(s.marker.inclusiveRight&&i.inclusiveLeft?0<=it(a.to,n):0<it(a.to,n))||0<=u&&(s.marker.inclusiveRight&&i.inclusiveLeft?it(a.from,r)<=0:it(a.from,r)<0)))return 1}}}function zt(e){for(var t;t=Pt(e);)e=t.find(-1,!0).line;return e}function Bt(e,t){var n=$e(e,t),e=zt(n);return n==e?t:Je(e)}function Gt(e,t){if(t>e.lastLine())return t;var n,r=$e(e,t);if(!Ut(e,r))return t;for(;n=It(r);)r=n.find(1,!0).line;return Je(r)+1}function Ut(e,t){var n=kt&&t.markedSpans;if(n)for(var r,i=0;i<n.length;++i)if((r=n[i]).marker.collapsed){if(null==r.from)return!0;if(!r.marker.widgetNode&&0==r.from&&r.marker.inclusiveLeft&&function e(t,n,r){if(null==r.to){var i=r.marker.find(1,!0);return e(t,i.line,Mt(i.line.markedSpans,r.marker))}if(r.marker.inclusiveRight&&r.to==n.text.length)return!0;for(var o=void 0,l=0;l<n.markedSpans.length;++l)if((o=n.markedSpans[l]).marker.collapsed&&!o.marker.widgetNode&&o.from==r.to&&(null==o.to||o.to!=r.from)&&(o.marker.inclusiveLeft||r.marker.inclusiveRight)&&e(t,n,o))return!0}(e,t,r))return!0}}function Vt(e){for(var t=0,n=(e=zt(e)).parent,r=0;r<n.lines.length;++r){var i=n.lines[r];if(i==e)break;t+=i.height}for(var o=n.parent;o;o=(n=o).parent)for(var l=0;l<o.children.length;++l){var s=o.children[l];if(s==n)break;t+=s.height}return t}function Kt(e){if(0==e.height)return 0;for(var t,n=e.text.length,r=e;t=Pt(r);){var i=t.find(0,!0),r=i.from.line;n+=i.from.ch-i.to.ch}for(r=e;t=It(r);){var o=t.find(0,!0);n-=r.text.length-o.from.ch,n+=(r=o.to.line).text.length-o.to.ch}return n}function jt(e){var n=e.display,e=e.doc;n.maxLine=$e(e,e.first),n.maxLineLength=Kt(n.maxLine),n.maxLineChanged=!0,e.iter(function(e){var t=Kt(e);t>n.maxLineLength&&(n.maxLineLength=t,n.maxLine=e)})}var Xt=function(e,t,n){this.text=e,Dt(this,t),this.height=n?n(this):1};Xt.prototype.lineNo=function(){return Je(this)},ke(Xt);var Yt={},_t={};function $t(e,t){if(!e||/^\\s*$/.test(e))return null;t=t.addModeClass?_t:Yt;return t[e]||(t[e]=e.replace(/\\S+/g,\"cm-$&\"))}function qt(e,t){var n=N(\"span\",null,null,f?\"padding-right: .1px\":null),r={pre:N(\"pre\",[n],\"CodeMirror-line\"),content:n,col:0,pos:0,cm:e,trailingSpace:!1,splitSpaces:e.getOption(\"lineWrapping\")};t.measure={};for(var i=0;i<=(t.rest?t.rest.length:0);i++){var o=i?t.rest[i-1]:t.line,l=void 0;r.pos=0,r.addToken=Qt,function(e){if(null!=He)return He;var t=T(e,document.createTextNode(\"AخA\")),n=S(t,0,1).getBoundingClientRect(),t=S(t,1,2).getBoundingClientRect();return k(e),n&&n.left!=n.right&&(He=t.right-n.right<3)}(e.display.measure)&&(l=me(o,e.doc.direction))&&(r.addToken=function(h,d){return function(e,t,n,r,i,o,l){n=n?n+\" cm-force-border\":\"cm-force-border\";for(var s=e.pos,a=s+t.length;;){for(var u=void 0,c=0;c<d.length&&!((u=d[c]).to>s&&u.from<=s);c++);if(u.to>=a)return h(e,t,n,r,i,o,l);h(e,t.slice(0,u.to-s),n,r,null,o,l),r=null,t=t.slice(u.to-s),s=u.to}}}(r.addToken,l)),r.map=[],function(e,t,n){var r=e.markedSpans,i=e.text,o=0;if(!r){for(var l=1;l<n.length;l+=2)t.addToken(t,i.slice(o,o=n[l]),$t(n[l+1],t.cm.options));return}for(var s,a,u,c,h,d,f,p=i.length,g=0,m=1,v=\"\",y=0;;){if(y==g){u=c=h=a=\"\",d=f=null,y=1/0;for(var b=[],w=void 0,x=0;x<r.length;++x){var C=r[x],S=C.marker;if(\"bookmark\"==S.type&&C.from==g&&S.widgetNode)b.push(S);else if(C.from<=g&&(null==C.to||C.to>g||S.collapsed&&C.to==g&&C.from==g)){if(null!=C.to&&C.to!=g&&y>C.to&&(y=C.to,c=\"\"),S.className&&(u+=\" \"+S.className),S.css&&(a=(a?a+\";\":\"\")+S.css),S.startStyle&&C.from==g&&(h+=\" \"+S.startStyle),S.endStyle&&C.to==y&&(w=w||[]).push(S.endStyle,C.to),S.title&&((f=f||{}).title=S.title),S.attributes)for(var L in S.attributes)(f=f||{})[L]=S.attributes[L];S.collapsed&&(!d||Ft(d.marker,S)<0)&&(d=C)}else C.from>g&&y>C.from&&(y=C.from)}if(w)for(var k=0;k<w.length;k+=2)w[k+1]==y&&(c+=\" \"+w[k]);if(!d||d.from==g)for(var T=0;T<b.length;++T)Jt(t,0,b[T]);if(d&&(d.from||0)==g){if(Jt(t,(null==d.to?p+1:d.to)-g,d.marker,null==d.from),null==d.to)return;d.to==g&&(d=!1)}}if(p<=g)break;for(var M=Math.min(p,y);;){if(v){var N,A=g+v.length;if(d||(N=M<A?v.slice(0,M-g):v,t.addToken(t,N,s?s+u:u,h,g+N.length==y?c:\"\",a,f)),M<=A){v=v.slice(M-g),g=M;break}g=A,h=\"\"}v=i.slice(o,o=n[m++]),s=$t(n[m++],t.cm.options)}}}(o,r,gt(e,o,t!=e.display.externalMeasured&&Je(o))),o.styleClasses&&(o.styleClasses.bgClass&&(r.bgClass=W(o.styleClasses.bgClass,r.bgClass||\"\")),o.styleClasses.textClass&&(r.textClass=W(o.styleClasses.textClass,r.textClass||\"\"))),0==r.map.length&&r.map.push(0,0,r.content.appendChild(function(e){null==We&&(t=M(\"span\",\"​\"),T(e,M(\"span\",[t,document.createTextNode(\"x\")])),0!=e.firstChild.offsetHeight&&(We=t.offsetWidth<=1&&2<t.offsetHeight&&!(w&&v<8)));var t=We?M(\"span\",\"​\"):M(\"span\",\" \",null,\"display: inline-block; width: 1px; margin-right: -1px\");return t.setAttribute(\"cm-text\",\"\"),t}(e.display.measure))),0==i?(t.measure.map=r.map,t.measure.cache={}):((t.measure.maps||(t.measure.maps=[])).push(r.map),(t.measure.caches||(t.measure.caches=[])).push({}))}return f&&(n=r.content.lastChild,(/\\bcm-tab\\b/.test(n.className)||n.querySelector&&n.querySelector(\".cm-tab\"))&&(r.content.className=\"cm-tab-wrap-hack\")),xe(e,\"renderLine\",e,t.line,r.pre),r.pre.className&&(r.textClass=W(r.pre.className,r.textClass||\"\")),r}function Zt(e){var t=M(\"span\",\"•\",\"cm-invalidchar\");return t.title=\"\\\\u\"+e.charCodeAt(0).toString(16),t.setAttribute(\"aria-label\",t.title),t}function Qt(e,t,n,r,i,o,l){if(t){var s,a=e.splitSpaces?function(e,t){if(1<e.length&&!/  /.test(e))return e;for(var n=t,r=\"\",i=0;i<e.length;i++){var o=e.charAt(i);\" \"!=o||!n||i!=e.length-1&&32!=e.charCodeAt(i+1)||(o=\" \"),r+=o,n=\" \"==o}return r}(t,e.trailingSpace):t,u=e.cm.state.specialChars,c=!1;if(u.test(t)){s=document.createDocumentFragment();for(var h=0;;){u.lastIndex=h;var d=u.exec(t),f=d?d.index-h:t.length-h;if(f&&(p=document.createTextNode(a.slice(h,h+f)),w&&v<9?s.appendChild(M(\"span\",[p])):s.appendChild(p),e.map.push(e.pos,e.pos+f,p),e.col+=f,e.pos+=f),!d)break;h+=1+f;var p=void 0;\"\\t\"==d[0]?(f=(f=e.cm.options.tabSize)-e.col%f,(p=s.appendChild(M(\"span\",X(f),\"cm-tab\"))).setAttribute(\"role\",\"presentation\"),p.setAttribute(\"cm-text\",\"\\t\"),e.col+=f):(\"\\r\"==d[0]||\"\\n\"==d[0]?(p=s.appendChild(M(\"span\",\"\\r\"==d[0]?\"␍\":\"␤\",\"cm-invalidchar\"))).setAttribute(\"cm-text\",d[0]):((p=e.cm.options.specialCharPlaceholder(d[0])).setAttribute(\"cm-text\",d[0]),w&&v<9?s.appendChild(M(\"span\",[p])):s.appendChild(p)),e.col+=1),e.map.push(e.pos,e.pos+1,p),e.pos++}}else e.col+=t.length,s=document.createTextNode(a),e.map.push(e.pos,e.pos+t.length,s),w&&v<9&&(c=!0),e.pos+=t.length;if(e.trailingSpace=32==a.charCodeAt(t.length-1),n||r||i||c||o||l){n=n||\"\";r&&(n+=r),i&&(n+=i);var g=M(\"span\",[s],n,o);if(l)for(var m in l)l.hasOwnProperty(m)&&\"style\"!=m&&\"class\"!=m&&g.setAttribute(m,l[m]);return e.content.appendChild(g)}e.content.appendChild(s)}}function Jt(e,t,n,r){var i=!r&&n.widgetNode;i&&e.map.push(e.pos,e.pos+t,i),!r&&e.cm.display.input.needsContentAttribute&&(i=i||e.content.appendChild(document.createElement(\"span\"))).setAttribute(\"cm-marker\",n.id),i&&(e.cm.display.input.setUneditable(i),e.content.appendChild(i)),e.pos+=t,e.trailingSpace=!1}function en(e,t,n){this.line=t,this.rest=function(e){for(var t,n;t=It(e);)e=t.find(1,!0).line,(n=n||[]).push(e);return n}(t),this.size=this.rest?Je(Y(this.rest))-n+1:1,this.node=this.text=null,this.hidden=Ut(e,t)}function tn(e,t,n){for(var r=[],i=t;i<n;i=l){var o=new en(e.doc,$e(e.doc,i),i),l=i+o.size;r.push(o)}return r}var nn=null;function rn(e,t){var n=e.ownsGroup;if(n)try{!function(e){var t=e.delayedCallbacks,n=0;do{for(;n<t.length;n++)t[n].call(null);for(var r=0;r<e.ops.length;r++){var i=e.ops[r];if(i.cursorActivityHandlers)for(;i.cursorActivityCalled<i.cursorActivityHandlers.length;)i.cursorActivityHandlers[i.cursorActivityCalled++].call(null,i.cm)}}while(n<t.length)}(n)}finally{nn=null,t(n)}}var on=null;function ln(e,t){var n=be(e,t);if(n.length){var r,i=Array.prototype.slice.call(arguments,2);nn?r=nn.delayedCallbacks:on?r=on:(r=on=[],setTimeout(sn,0));for(var o=0;o<n.length;++o)!function(e){r.push(function(){return n[e].apply(null,i)})}(o)}}function sn(){var e=on;on=null;for(var t=0;t<e.length;++t)e[t]()}function an(e,t,n,r){for(var i=0;i<t.changes.length;i++){var o=t.changes[i];\"text\"==o?function(e,t){var n=t.text.className,r=cn(e,t);t.text==t.node&&(t.node=r.pre);t.text.parentNode.replaceChild(r.pre,t.text),t.text=r.pre,r.bgClass!=t.bgClass||r.textClass!=t.textClass?(t.bgClass=r.bgClass,t.textClass=r.textClass,hn(e,t)):n&&(t.text.className=n)}(e,t):\"gutter\"==o?dn(e,t,n,r):\"class\"==o?hn(e,t):\"widget\"==o&&function(e,t,n){t.alignable&&(t.alignable=null);for(var r=C(\"CodeMirror-linewidget\"),i=t.node.firstChild,o=void 0;i;i=o)o=i.nextSibling,r.test(i.className)&&t.node.removeChild(i);fn(e,t,n)}(e,t,r)}t.changes=null}function un(e){return e.node==e.text&&(e.node=M(\"div\",null,null,\"position: relative\"),e.text.parentNode&&e.text.parentNode.replaceChild(e.node,e.text),e.node.appendChild(e.text),w&&v<8&&(e.node.style.zIndex=2)),e.node}function cn(e,t){var n=e.display.externalMeasured;return n&&n.line==t.line?(e.display.externalMeasured=null,t.measure=n.measure,n.built):qt(e,t)}function hn(e,t){var n,r;n=e,(r=(i=t).bgClass?i.bgClass+\" \"+(i.line.bgClass||\"\"):i.line.bgClass)&&(r+=\" CodeMirror-linebackground\"),i.background?r?i.background.className=r:(i.background.parentNode.removeChild(i.background),i.background=null):r&&(e=un(i),i.background=e.insertBefore(M(\"div\",null,r),e.firstChild),n.display.input.setUneditable(i.background)),t.line.wrapClass?un(t).className=t.line.wrapClass:t.node!=t.text&&(t.node.className=\"\");var i=t.textClass?t.textClass+\" \"+(t.line.textClass||\"\"):t.line.textClass;t.text.className=i||\"\"}function dn(e,t,n,r){t.gutter&&(t.node.removeChild(t.gutter),t.gutter=null),t.gutterBackground&&(t.node.removeChild(t.gutterBackground),t.gutterBackground=null),t.line.gutterClass&&(o=un(t),t.gutterBackground=M(\"div\",null,\"CodeMirror-gutter-background \"+t.line.gutterClass,\"left: \"+(e.options.fixedGutter?r.fixedPos:-r.gutterTotalWidth)+\"px; width: \"+r.gutterTotalWidth+\"px\"),e.display.input.setUneditable(t.gutterBackground),o.insertBefore(t.gutterBackground,t.text));var i=t.line.gutterMarkers;if(e.options.lineNumbers||i){var o=un(t),l=t.gutter=M(\"div\",null,\"CodeMirror-gutter-wrapper\",\"left: \"+(e.options.fixedGutter?r.fixedPos:-r.gutterTotalWidth)+\"px\");if(e.display.input.setUneditable(l),o.insertBefore(l,t.text),t.line.gutterClass&&(l.className+=\" \"+t.line.gutterClass),!e.options.lineNumbers||i&&i[\"CodeMirror-linenumbers\"]||(t.lineNumber=l.appendChild(M(\"div\",nt(e.options,n),\"CodeMirror-linenumber CodeMirror-gutter-elt\",\"left: \"+r.gutterLeft[\"CodeMirror-linenumbers\"]+\"px; width: \"+e.display.lineNumInnerWidth+\"px\"))),i)for(var s=0;s<e.display.gutterSpecs.length;++s){var a=e.display.gutterSpecs[s].className,u=i.hasOwnProperty(a)&&i[a];u&&l.appendChild(M(\"div\",[u],\"CodeMirror-gutter-elt\",\"left: \"+r.gutterLeft[a]+\"px; width: \"+r.gutterWidth[a]+\"px\"))}}}function fn(e,t,n){if(pn(e,t.line,t,n,!0),t.rest)for(var r=0;r<t.rest.length;r++)pn(e,t.rest[r],t,n,!1)}function pn(e,t,n,r,i){if(t.widgets)for(var o=un(n),l=0,s=t.widgets;l<s.length;++l){var a=s[l],u=M(\"div\",[a.node],\"CodeMirror-linewidget\"+(a.className?\" \"+a.className:\"\"));a.handleMouseEvents||u.setAttribute(\"cm-ignore-events\",\"true\"),function(e,t,n,r){e.noHScroll&&((n.alignable||(n.alignable=[])).push(t),n=r.wrapperWidth,t.style.left=r.fixedPos+\"px\",e.coverGutter||(n-=r.gutterTotalWidth,t.style.paddingLeft=r.gutterTotalWidth+\"px\"),t.style.width=n+\"px\");e.coverGutter&&(t.style.zIndex=5,t.style.position=\"relative\",e.noHScroll||(t.style.marginLeft=-r.gutterTotalWidth+\"px\"))}(a,u,n,r),e.display.input.setUneditable(u),i&&a.above?o.insertBefore(u,n.gutter||n.text):o.appendChild(u),ln(a,\"redraw\")}}function gn(e){if(null!=e.height)return e.height;var t,n=e.doc.cm;return n?(A(document.body,e.node)||(t=\"position: relative;\",e.coverGutter&&(t+=\"margin-left: -\"+n.display.gutters.offsetWidth+\"px;\"),e.noHScroll&&(t+=\"width: \"+n.display.wrapper.clientWidth+\"px;\"),T(n.display.measure,M(\"div\",[e.node],null,t))),e.height=e.node.parentNode.offsetHeight):0}function mn(e,t){for(var n=Oe(t);n!=e.wrapper;n=n.parentNode)if(!n||1==n.nodeType&&\"true\"==n.getAttribute(\"cm-ignore-events\")||n.parentNode==e.sizer&&n!=e.mover)return 1}function vn(e){return e.lineSpace.offsetTop}function yn(e){return e.mover.offsetHeight-e.lineSpace.offsetHeight}function bn(e){if(e.cachedPaddingH)return e.cachedPaddingH;var t=T(e.measure,M(\"pre\",\"x\",\"CodeMirror-line-like\")),t=window.getComputedStyle?window.getComputedStyle(t):t.currentStyle,t={left:parseInt(t.paddingLeft),right:parseInt(t.paddingRight)};return isNaN(t.left)||isNaN(t.right)||(e.cachedPaddingH=t),t}function wn(e){return z-e.display.nativeBarWidth}function xn(e){return e.display.scroller.clientWidth-wn(e)-e.display.barWidth}function Cn(e){return e.display.scroller.clientHeight-wn(e)-e.display.barHeight}function Sn(e,t,n){if(e.line==t)return{map:e.measure.map,cache:e.measure.cache};for(var r=0;r<e.rest.length;r++)if(e.rest[r]==t)return{map:e.measure.maps[r],cache:e.measure.caches[r]};for(var i=0;i<e.rest.length;i++)if(Je(e.rest[i])>n)return{map:e.measure.maps[i],cache:e.measure.caches[i],before:!0}}function Ln(e,t,n,r){return Mn(e,Tn(e,t),n,r)}function kn(e,t){if(t>=e.display.viewFrom&&t<e.display.viewTo)return e.display.view[er(e,t)];e=e.display.externalMeasured;return e&&t>=e.lineN&&t<e.lineN+e.size?e:void 0}function Tn(e,t){var n,r,i=Je(t),o=kn(e,i);o&&!o.text?o=null:o&&o.changes&&(an(e,o,i,$n(e)),e.curOp.forceUpdate=!0),o||(n=e,e=Je(r=zt(r=t)),(r=n.display.externalMeasured=new en(n.doc,r,e)).lineN=e,e=r.built=qt(n,r),r.text=e.pre,T(n.display.lineMeasure,e.pre),o=r);i=Sn(o,t,i);return{line:t,view:o,rect:null,map:i.map,cache:i.cache,before:i.before,hasHeights:!1}}function Mn(e,t,n,r,i){t.before&&(n=-1);var o,l=n+(r||\"\");return t.cache.hasOwnProperty(l)?o=t.cache[l]:(t.rect||(t.rect=t.view.text.getBoundingClientRect()),t.hasHeights||(function(e,t,n){var r=e.options.lineWrapping,e=r&&xn(e);if(!t.measure.heights||r&&t.measure.width!=e){var i=t.measure.heights=[];if(r){t.measure.width=e;for(var o=t.text.firstChild.getClientRects(),l=0;l<o.length-1;l++){var s=o[l],a=o[l+1];2<Math.abs(s.bottom-a.bottom)&&i.push((s.bottom+a.top)/2-n.top)}}i.push(n.bottom-n.top)}}(e,t.view,t.rect),t.hasHeights=!0),(o=function(e,t,n,r){var i,o=On(t.map,n,r),l=o.node,s=o.start,a=o.end,u=o.collapse;if(3==l.nodeType){for(var c=0;c<4;c++){for(;s&&ne(t.line.text.charAt(o.coverStart+s));)--s;for(;o.coverStart+a<o.coverEnd&&ne(t.line.text.charAt(o.coverStart+a));)++a;if((i=w&&v<9&&0==s&&a==o.coverEnd-o.coverStart?l.parentNode.getBoundingClientRect():function(e,t){var n=An;if(\"left\"==t)for(var r=0;r<e.length&&(n=e[r]).left==n.right;r++);else for(var i=e.length-1;0<=i&&(n=e[i]).left==n.right;i--);return n}(S(l,s,a).getClientRects(),r)).left||i.right||0==s)break;a=s,--s,u=\"right\"}w&&v<11&&(i=function(e,t){if(!window.screen||null==screen.logicalXDPI||screen.logicalXDPI==screen.deviceXDPI||!function(e){if(null!=Re)return Re;var e=(t=T(e,M(\"span\",\"x\"))).getBoundingClientRect(),t=S(t,0,1).getBoundingClientRect();return Re=1<Math.abs(e.left-t.left)}(e))return t;var n=screen.logicalXDPI/screen.deviceXDPI,e=screen.logicalYDPI/screen.deviceYDPI;return{left:t.left*n,right:t.right*n,top:t.top*e,bottom:t.bottom*e}}(e.display.measure,i))}else 0<s&&(u=r=\"right\"),i=e.options.lineWrapping&&1<(g=l.getClientRects()).length?g[\"right\"==r?g.length-1:0]:l.getBoundingClientRect();!(w&&v<9)||s||i&&(i.left||i.right)||(m=l.parentNode.getClientRects()[0],i=m?{left:m.left,right:m.left+_n(e.display),top:m.top,bottom:m.bottom}:An);for(var h=i.top-t.rect.top,n=i.bottom-t.rect.top,d=(h+n)/2,f=t.view.measure.heights,p=0;p<f.length-1&&!(d<f[p]);p++);var g=p?f[p-1]:0,m=f[p],m={left:(\"right\"==u?i.right:i.left)-t.rect.left,right:(\"left\"==u?i.left:i.right)-t.rect.left,top:g,bottom:m};i.left||i.right||(m.bogus=!0);e.options.singleCursorHeightPerLine||(m.rtop=h,m.rbottom=n);return m}(e,t,n,r)).bogus||(t.cache[l]=o)),{left:o.left,right:o.right,top:i?o.rtop:o.top,bottom:i?o.rbottom:o.bottom}}var Nn,An={left:0,right:0,top:0,bottom:0};function On(e,t,n){for(var r,i,o,l,s,a,u=0;u<e.length;u+=3)if(s=e[u],a=e[u+1],t<s?(i=0,o=1,l=\"left\"):t<a?o=(i=t-s)+1:(u==e.length-3||t==a&&e[u+3]>t)&&(i=(o=a-s)-1,a<=t&&(l=\"right\")),null!=i){if(r=e[u+2],s==a&&n==(r.insertLeft?\"left\":\"right\")&&(l=n),\"left\"==n&&0==i)for(;u&&e[u-2]==e[u-3]&&e[u-1].insertLeft;)r=e[2+(u-=3)],l=\"left\";if(\"right\"==n&&i==a-s)for(;u<e.length-3&&e[u+3]==e[u+4]&&!e[u+5].insertLeft;)r=e[(u+=3)+2],l=\"right\";break}return{node:r,start:i,end:o,collapse:l,coverStart:s,coverEnd:a}}function Dn(e){if(e.measure&&(e.measure.cache={},e.measure.heights=null,e.rest))for(var t=0;t<e.rest.length;t++)e.measure.caches[t]={}}function Wn(e){e.display.externalMeasure=null,k(e.display.lineMeasure);for(var t=0;t<e.display.view.length;t++)Dn(e.display.view[t])}function Hn(e){Wn(e),e.display.cachedCharWidth=e.display.cachedTextHeight=e.display.cachedPaddingH=null,e.options.lineWrapping||(e.display.maxLineChanged=!0),e.display.lineNumChars=null}function Fn(){return o&&a?-(document.body.getBoundingClientRect().left-parseInt(getComputedStyle(document.body).marginLeft)):window.pageXOffset||(document.documentElement||document.body).scrollLeft}function En(){return o&&a?-(document.body.getBoundingClientRect().top-parseInt(getComputedStyle(document.body).marginTop)):window.pageYOffset||(document.documentElement||document.body).scrollTop}function Pn(e){var t=0;if(e.widgets)for(var n=0;n<e.widgets.length;++n)e.widgets[n].above&&(t+=gn(e.widgets[n]));return t}function In(e,t,n,r,i){if(i||(i=Pn(t),n.top+=i,n.bottom+=i),\"line\"==r)return n;r=r||\"local\";t=Vt(t);return\"local\"==r?t+=vn(e.display):t-=e.display.viewOffset,\"page\"!=r&&\"window\"!=r||(t+=(e=e.display.lineSpace.getBoundingClientRect()).top+(\"window\"==r?0:En()),r=e.left+(\"window\"==r?0:Fn()),n.left+=r,n.right+=r),n.top+=t,n.bottom+=t,n}function Rn(e,t,n){if(\"div\"==n)return t;var r=t.left,t=t.top;\"page\"==n?(r-=Fn(),t-=En()):\"local\"!=n&&n||(r+=(n=e.display.sizer.getBoundingClientRect()).left,t+=n.top);e=e.display.lineSpace.getBoundingClientRect();return{left:r-e.left,top:t-e.top}}function zn(e,t,n,r,i){return In(e,r=r||$e(e.doc,t.line),Ln(e,r,t.ch,i),n)}function Bn(n,e,r,i,o,l){function s(e,t){e=Mn(n,o,e,t?\"right\":\"left\",l);return t?e.left=e.right:e.right=e.left,In(n,i,e,r)}i=i||$e(n.doc,e.line),o=o||Tn(n,i);var a=me(i,n.doc.direction),t=e.ch,u=e.sticky;if(t>=i.text.length?(t=i.text.length,u=\"before\"):t<=0&&(t=0,u=\"after\"),!a)return s(\"before\"==u?t-1:t,\"before\"==u);function c(e,t,n){return s(n?e-1:e,1==a[t].level!=n)}var h=le(a,t,u),e=oe,h=c(t,h,\"before\"==u);return null!=e&&(h.other=c(t,e,\"before\"!=u)),h}function Gn(e,t){var n=0;t=ct(e.doc,t),e.options.lineWrapping||(n=_n(e.display)*t.ch);t=$e(e.doc,t.line),e=Vt(t)+vn(e.display);return{left:n,right:n,top:e,bottom:e+t.height}}function Un(e,t,n,r,i){n=rt(e,t,n);return n.xRel=i,r&&(n.outside=r),n}function Vn(e,t,n){var r=e.doc;if((n+=e.display.viewOffset)<0)return Un(r.first,0,null,-1,-1);var i=et(r,n),o=r.first+r.size-1;if(o<i)return Un(r.first+r.size-1,$e(r,o).text.length,null,1,1);t<0&&(t=0);for(var l=$e(r,i);;){var s=function(n,e,t,r,i){i-=Vt(e);var o=Tn(n,e),l=Pn(e),s=0,a=e.text.length,u=!0,c=me(e,n.doc.direction);c&&(f=(n.options.lineWrapping?function(e,t,n,r,i,o,l){var l=Kn(e,t,r,l),s=l.begin,a=l.end;/\\s/.test(t.text.charAt(a-1))&&a--;for(var u=null,c=null,h=0;h<i.length;h++){var d,f=i[h];f.from>=a||f.to<=s||(d=1!=f.level,d=Mn(e,r,d?Math.min(a,f.to)-1:Math.max(s,f.from)).right,d=d<o?o-d+1e9:d-o,(!u||d<c)&&(u=f,c=d))}u=u||i[i.length-1];u.from<s&&(u={from:s,to:u.to,level:u.level});u.to>a&&(u={from:u.from,to:a,level:u.level});return u}:function(n,r,i,o,l,s,a){var e=ie(function(e){var t=l[e],e=1!=t.level;return Xn(Bn(n,rt(i,e?t.to:t.from,e?\"before\":\"after\"),\"line\",r,o),s,a,!0)},0,l.length-1),t=l[e];{var u;0<e&&(u=1!=t.level,Xn(u=Bn(n,rt(i,u?t.from:t.to,u?\"after\":\"before\"),\"line\",r,o),s,a,!0)&&u.top>a&&(t=l[e-1]))}return t})(n,e,t,o,c,r,i),u=1!=f.level,s=u?f.from:f.to-1,a=u?f.to:f.from-1);var h=null,d=null,c=ie(function(e){var t=Mn(n,o,e);return t.top+=l,t.bottom+=l,Xn(t,r,i,!1)&&(t.top<=i&&t.left<=r&&(h=e,d=t),1)},s,a),f=!1;{var p,g;d?(p=r-d.left<d.right-r,c=h+((g=p==u)?0:1),g=g?\"after\":\"before\",p=p?d.left:d.right):(u||c!=a&&c!=s||c++,g=0==c||c!=e.text.length&&Mn(n,o,c-(u?1:0)).bottom+l<=i==u?\"after\":\"before\",u=Bn(n,rt(t,c,g),\"line\",e,o),p=u.left,f=i<u.top?-1:i>=u.bottom?1:0)}return c=re(e.text,c,1),Un(t,c,g,f,r-p)}(e,l,i,t,n),a=function(e,t){var n,r=kt&&e.markedSpans;if(r)for(var i=0;i<r.length;++i){var o=r[i];o.marker.collapsed&&(null==o.from||o.from<t)&&(null==o.to||o.to>t)&&(!n||Ft(n,o.marker)<0)&&(n=o.marker)}return n}(l,s.ch+(0<s.xRel||0<s.outside?1:0));if(!a)return s;a=a.find(1);if(a.line==i)return a;l=$e(r,i=a.line)}}function Kn(t,e,n,r){r-=Pn(e);var i=e.text.length,e=ie(function(e){return Mn(t,n,e-1).bottom<=r},i,0);return{begin:e,end:i=ie(function(e){return Mn(t,n,e).top>r},e,i)}}function jn(e,t,n,r){return Kn(e,t,n=n||Tn(e,t),In(e,t,Mn(e,n,r),\"line\").top)}function Xn(e,t,n,r){return!(e.bottom<=n)&&(e.top>n||(r?e.left:e.right)>t)}function Yn(e){if(null!=e.cachedTextHeight)return e.cachedTextHeight;if(null==Nn){Nn=M(\"pre\",null,\"CodeMirror-line-like\");for(var t=0;t<49;++t)Nn.appendChild(document.createTextNode(\"x\")),Nn.appendChild(M(\"br\"));Nn.appendChild(document.createTextNode(\"x\"))}T(e.measure,Nn);var n=Nn.offsetHeight/50;return 3<n&&(e.cachedTextHeight=n),k(e.measure),n||1}function _n(e){if(null!=e.cachedCharWidth)return e.cachedCharWidth;var t=M(\"span\",\"xxxxxxxxxx\"),n=M(\"pre\",[t],\"CodeMirror-line-like\");T(e.measure,n);t=t.getBoundingClientRect(),t=(t.right-t.left)/10;return 2<t&&(e.cachedCharWidth=t),t||10}function $n(e){for(var t=e.display,n={},r={},i=t.gutters.clientLeft,o=t.gutters.firstChild,l=0;o;o=o.nextSibling,++l){var s=e.display.gutterSpecs[l].className;n[s]=o.offsetLeft+o.clientLeft+i,r[s]=o.clientWidth}return{fixedPos:qn(t),gutterTotalWidth:t.gutters.offsetWidth,gutterLeft:n,gutterWidth:r,wrapperWidth:t.wrapper.clientWidth}}function qn(e){return e.scroller.getBoundingClientRect().left-e.sizer.getBoundingClientRect().left}function Zn(r){var i=Yn(r.display),o=r.options.lineWrapping,l=o&&Math.max(5,r.display.scroller.clientWidth/_n(r.display)-3);return function(e){if(Ut(r.doc,e))return 0;var t=0;if(e.widgets)for(var n=0;n<e.widgets.length;n++)e.widgets[n].height&&(t+=e.widgets[n].height);return o?t+(Math.ceil(e.text.length/l)||1)*i:t+i}}function Qn(e){var t=e.doc,n=Zn(e);t.iter(function(e){var t=n(e);t!=e.height&&Qe(e,t)})}function Jn(e,t,n,r){var i=e.display;if(!n&&\"true\"==Oe(t).getAttribute(\"cm-not-content\"))return null;var o,l,s=i.lineSpace.getBoundingClientRect();try{o=t.clientX-s.left,l=t.clientY-s.top}catch(e){return null}var a,i=Vn(e,o,l);return r&&0<i.xRel&&(a=$e(e.doc,i.line).text).length==i.ch&&(a=P(a,a.length,e.options.tabSize)-a.length,i=rt(i.line,Math.max(0,Math.round((o-bn(e.display).left)/_n(e.display))-a))),i}function er(e,t){if(t>=e.display.viewTo)return null;if((t-=e.display.viewFrom)<0)return null;for(var n=e.display.view,r=0;r<n.length;r++)if((t-=n[r].size)<0)return r}function tr(e,t,n,r){null==t&&(t=e.doc.first),null==n&&(n=e.doc.first+e.doc.size),r=r||0;var i,o,l=e.display;r&&n<l.viewTo&&(null==l.updateLineNumbers||l.updateLineNumbers>t)&&(l.updateLineNumbers=t),e.curOp.viewChanged=!0,t>=l.viewTo?kt&&Bt(e.doc,t)<l.viewTo&&rr(e):n<=l.viewFrom?kt&&Gt(e.doc,n+r)>l.viewFrom?rr(e):(l.viewFrom+=r,l.viewTo+=r):t<=l.viewFrom&&n>=l.viewTo?rr(e):t<=l.viewFrom?(i=ir(e,n,n+r,1))?(l.view=l.view.slice(i.index),l.viewFrom=i.lineN,l.viewTo+=r):rr(e):n>=l.viewTo?(o=ir(e,t,t,-1))?(l.view=l.view.slice(0,o.index),l.viewTo=o.lineN):rr(e):(i=ir(e,t,t,-1),o=ir(e,n,n+r,1),i&&o?(l.view=l.view.slice(0,i.index).concat(tn(e,i.lineN,o.lineN)).concat(l.view.slice(o.index)),l.viewTo+=r):rr(e));e=l.externalMeasured;e&&(n<e.lineN?e.lineN+=r:t<e.lineN+e.size&&(l.externalMeasured=null))}function nr(e,t,n){e.curOp.viewChanged=!0;var r=e.display,i=e.display.externalMeasured;i&&t>=i.lineN&&t<i.lineN+i.size&&(r.externalMeasured=null),t<r.viewFrom||t>=r.viewTo||(null==(t=r.view[er(e,t)]).node||-1==R(t=t.changes||(t.changes=[]),n)&&t.push(n))}function rr(e){e.display.viewFrom=e.display.viewTo=e.doc.first,e.display.view=[],e.display.viewOffset=0}function ir(e,t,n,r){var i,o=er(e,t),l=e.display.view;if(!kt||n==e.doc.first+e.doc.size)return{index:o,lineN:n};for(var s=e.display.viewFrom,a=0;a<o;a++)s+=l[a].size;if(s!=t){if(0<r){if(o==l.length-1)return null;i=s+l[o].size-t,o++}else i=s-t;t+=i,n+=i}for(;Bt(e.doc,n)!=n;){if(o==(r<0?0:l.length-1))return null;n+=r*l[o-(r<0?1:0)].size,o+=r}return{index:o,lineN:n}}function or(e){for(var t=e.display.view,n=0,r=0;r<t.length;r++){var i=t[r];i.hidden||i.node&&!i.changes||++n}return n}function lr(e){e.display.input.showSelection(e.display.input.prepareSelection())}function sr(e,t){void 0===t&&(t=!0);for(var n,r,i=e.doc,o={},l=o.cursors=document.createDocumentFragment(),s=o.selection=document.createDocumentFragment(),a=0;a<i.sel.ranges.length;a++)!t&&a==i.sel.primIndex||((n=i.sel.ranges[a]).from().line>=e.display.viewTo||n.to().line<e.display.viewFrom||(((r=n.empty())||e.options.showCursorWhenSelecting)&&ar(e,n.head,l),r||function(i,e,t){var n=i.display,o=i.doc,l=document.createDocumentFragment(),r=bn(i.display),S=r.left,L=Math.max(n.sizerWidth,xn(i)-n.sizer.offsetLeft)-r.right,k=\"ltr\"==o.direction;function T(e,t,n,r){t<0&&(t=0),t=Math.round(t),r=Math.round(r),l.appendChild(M(\"div\",null,\"CodeMirror-selected\",\"position: absolute; left: \"+e+\"px;\\n                             top: \"+t+\"px; width: \"+(null==n?L-e:n)+\"px;\\n                             height: \"+(r-t)+\"px\"))}function s(n,g,m){var v,y,r=$e(o,n),b=r.text.length;function w(e,t){return zn(i,rt(n,e),\"div\",r,t)}function x(e,t,n){e=jn(i,r,null,e),t=\"ltr\"==t==(\"after\"==n)?\"left\":\"right\";return w(\"after\"==n?e.begin:e.end-(/\\s/.test(r.text.charAt(e.end-1))?2:1),t)[t]}var C=me(r,o.direction);return function(e,t,n,r){if(!e)return r(t,n,\"ltr\",0);for(var i=!1,o=0;o<e.length;++o){var l=e[o];(l.from<n&&l.to>t||t==n&&l.to==t)&&(r(Math.max(l.from,t),Math.min(l.to,n),1==l.level?\"rtl\":\"ltr\",o),i=!0)}i||r(t,n,\"ltr\")}(C,g||0,null==m?b:m,function(e,t,n,r){var i,o,l,s,a=\"ltr\"==n,u=w(e,a?\"left\":\"right\"),c=w(t-1,a?\"right\":\"left\"),h=null==g&&0==e,d=null==m&&t==b,f=0==r,p=!C||r==C.length-1;c.top-u.top<=3?(i=(k?d:h)&&p,r=(k?h:d)&&f?S:(a?u:c).left,i=i?L:(a?c:u).right,T(r,u.top,i-r,u.bottom)):(n=a?(o=k&&h&&f?S:u.left,l=k?L:x(e,n,\"before\"),s=k?S:x(t,n,\"after\"),k&&d&&p?L:c.right):(o=k?x(e,n,\"before\"):S,l=!k&&h&&f?L:u.right,s=!k&&d&&p?S:c.left,k?x(t,n,\"after\"):L),T(o,u.top,l-o,u.bottom),u.bottom<c.top&&T(S,u.bottom,null,c.top),T(s,c.top,n-s,c.bottom)),(!v||ur(u,v)<0)&&(v=u),ur(c,v)<0&&(v=c),(!y||ur(u,y)<0)&&(y=u),ur(c,y)<0&&(y=c)}),{start:v,end:y}}var a=e.from(),n=e.to();a.line==n.line?s(a.line,a.ch,n.ch):(r=$e(o,a.line),e=$e(o,n.line),e=zt(r)==zt(e),r=s(a.line,a.ch,e?r.text.length+1:null).end,n=s(n.line,e?0:null,n.ch).start,e&&(r.top<n.top-2?(T(r.right,r.top,null,r.bottom),T(S,n.top,n.left,n.bottom)):T(r.right,r.top,n.left-r.right,r.bottom)),r.bottom<n.top&&T(S,r.bottom,null,n.top));t.appendChild(l)}(e,n,s)));return o}function ar(e,t,n){var r=Bn(e,t,\"div\",null,null,!e.options.singleCursorHeightPerLine),t=n.appendChild(M(\"div\",\" \",\"CodeMirror-cursor\"));t.style.left=r.left+\"px\",t.style.top=r.top+\"px\",t.style.height=Math.max(0,r.bottom-r.top)*e.options.cursorHeight+\"px\",r.other&&((n=n.appendChild(M(\"div\",\" \",\"CodeMirror-cursor CodeMirror-secondarycursor\"))).style.display=\"\",n.style.left=r.other.left+\"px\",n.style.top=r.other.top+\"px\",n.style.height=.85*(r.other.bottom-r.other.top)+\"px\")}function ur(e,t){return e.top-t.top||e.left-t.left}function cr(e){var t,n;e.state.focused&&(t=e.display,clearInterval(t.blinker),n=!0,t.cursorDiv.style.visibility=\"\",0<e.options.cursorBlinkRate?t.blinker=setInterval(function(){e.hasFocus()||pr(e),t.cursorDiv.style.visibility=(n=!n)?\"\":\"hidden\"},e.options.cursorBlinkRate):e.options.cursorBlinkRate<0&&(t.cursorDiv.style.visibility=\"hidden\"))}function hr(e){e.hasFocus()||(e.display.input.focus(),e.state.focused||fr(e))}function dr(e){e.state.delayingBlurEvent=!0,setTimeout(function(){e.state.delayingBlurEvent&&(e.state.delayingBlurEvent=!1,e.state.focused&&pr(e))},100)}function fr(e,t){e.state.delayingBlurEvent&&!e.state.draggingText&&(e.state.delayingBlurEvent=!1),\"nocursor\"!=e.options.readOnly&&(e.state.focused||(xe(e,\"focus\",e,t),e.state.focused=!0,D(e.display.wrapper,\"CodeMirror-focused\"),e.curOp||e.display.selForContextMenu==e.doc.sel||(e.display.input.reset(),f&&setTimeout(function(){return e.display.input.reset(!0)},20)),e.display.input.receivedFocus()),cr(e))}function pr(e,t){e.state.delayingBlurEvent||(e.state.focused&&(xe(e,\"blur\",e,t),e.state.focused=!1,L(e.display.wrapper,\"CodeMirror-focused\")),clearInterval(e.display.blinker),setTimeout(function(){e.state.focused||(e.display.shift=!1)},150))}function gr(e){for(var t=e.display,n=t.lineDiv.offsetTop,r=0;r<t.view.length;r++){var i,o=t.view[r],l=e.options.lineWrapping,s=void 0,a=0;if(!o.hidden){w&&v<8?(s=(i=o.node.offsetTop+o.node.offsetHeight)-n,n=i):(s=(u=o.node.getBoundingClientRect()).bottom-u.top,!l&&o.text.firstChild&&(a=o.text.firstChild.getBoundingClientRect().right-u.left-1));var u=o.line.height-s;if((.005<u||u<-.005)&&(Qe(o.line,s),mr(o.line),o.rest))for(var c=0;c<o.rest.length;c++)mr(o.rest[c]);a>e.display.sizerWidth&&((a=Math.ceil(a/_n(e.display)))>e.display.maxLineLength&&(e.display.maxLineLength=a,e.display.maxLine=o.line,e.display.maxLineChanged=!0))}}}function mr(e){if(e.widgets)for(var t=0;t<e.widgets.length;++t){var n=e.widgets[t],r=n.node.parentNode;r&&(n.height=r.offsetHeight)}}function vr(e,t,n){var r=n&&null!=n.top?Math.max(0,n.top):e.scroller.scrollTop,r=Math.floor(r-vn(e)),i=n&&null!=n.bottom?n.bottom:r+e.wrapper.clientHeight,o=et(t,r),r=et(t,i);return n&&n.ensure&&(i=n.ensure.from.line,n=n.ensure.to.line,i<o?r=et(t,Vt($e(t,o=i))+e.wrapper.clientHeight):Math.min(n,t.lastLine())>=r&&(o=et(t,Vt($e(t,n))-e.wrapper.clientHeight),r=n)),{from:o,to:Math.max(r,o+1)}}function yr(e,t){var n=e.display,r=Yn(e.display);t.top<0&&(t.top=0);var i=(e.curOp&&null!=e.curOp.scrollTop?e.curOp:n.scroller).scrollTop,o=Cn(e),l={};t.bottom-t.top>o&&(t.bottom=t.top+o);var s=e.doc.height+yn(n),a=t.top<r,r=t.bottom>s-r;t.top<i?l.scrollTop=a?0:t.top:t.bottom>i+o&&((u=Math.min(t.top,(r?s:t.bottom)-o))!=i&&(l.scrollTop=u));var i=e.options.fixedGutter?0:n.gutters.offsetWidth,u=e.curOp&&null!=e.curOp.scrollLeft?e.curOp.scrollLeft:n.scroller.scrollLeft-i,e=xn(e)-n.gutters.offsetWidth,n=t.right-t.left>e;return n&&(t.right=t.left+e),t.left<10?l.scrollLeft=0:t.left<u?l.scrollLeft=Math.max(0,t.left+i-(n?0:10)):t.right>e+u-3&&(l.scrollLeft=t.right+(n?0:10)-e),l}function br(e,t){null!=t&&(Cr(e),e.curOp.scrollTop=(null==e.curOp.scrollTop?e.doc:e.curOp).scrollTop+t)}function wr(e){Cr(e);var t=e.getCursor();e.curOp.scrollToPos={from:t,to:t,margin:e.options.cursorScrollMargin}}function xr(e,t,n){null==t&&null==n||Cr(e),null!=t&&(e.curOp.scrollLeft=t),null!=n&&(e.curOp.scrollTop=n)}function Cr(e){var t=e.curOp.scrollToPos;t&&(e.curOp.scrollToPos=null,Sr(e,Gn(e,t.from),Gn(e,t.to),t.margin))}function Sr(e,t,n,r){r=yr(e,{left:Math.min(t.left,n.left),top:Math.min(t.top,n.top)-r,right:Math.max(t.right,n.right),bottom:Math.max(t.bottom,n.bottom)+r});xr(e,r.scrollLeft,r.scrollTop)}function Lr(e,t){Math.abs(e.doc.scrollTop-t)<2||(d||Kr(e,{top:t}),kr(e,t,!0),d&&Kr(e),zr(e,100))}function kr(e,t,n){t=Math.max(0,Math.min(e.display.scroller.scrollHeight-e.display.scroller.clientHeight,t)),e.display.scroller.scrollTop==t&&!n||(e.doc.scrollTop=t,e.display.scrollbars.setScrollTop(t),e.display.scroller.scrollTop!=t&&(e.display.scroller.scrollTop=t))}function Tr(e,t,n,r){t=Math.max(0,Math.min(t,e.display.scroller.scrollWidth-e.display.scroller.clientWidth)),(n?t==e.doc.scrollLeft:Math.abs(e.doc.scrollLeft-t)<2)&&!r||(e.doc.scrollLeft=t,Yr(e),e.display.scroller.scrollLeft!=t&&(e.display.scroller.scrollLeft=t),e.display.scrollbars.setScrollLeft(t))}function Mr(e){var t=e.display,n=t.gutters.offsetWidth,r=Math.round(e.doc.height+yn(e.display));return{clientHeight:t.scroller.clientHeight,viewHeight:t.wrapper.clientHeight,scrollWidth:t.scroller.scrollWidth,clientWidth:t.scroller.clientWidth,viewWidth:t.wrapper.clientWidth,barLeft:e.options.fixedGutter?n:0,docHeight:r,scrollHeight:r+wn(e)+t.barHeight,nativeBarWidth:t.nativeBarWidth,gutterWidth:n}}e=function(e,t,n){this.cm=n;var r=this.vert=M(\"div\",[M(\"div\",null,null,\"min-width: 1px\")],\"CodeMirror-vscrollbar\"),i=this.horiz=M(\"div\",[M(\"div\",null,null,\"height: 100%; min-height: 1px\")],\"CodeMirror-hscrollbar\");r.tabIndex=i.tabIndex=-1,e(r),e(i),ye(r,\"scroll\",function(){r.clientHeight&&t(r.scrollTop,\"vertical\")}),ye(i,\"scroll\",function(){i.clientWidth&&t(i.scrollLeft,\"horizontal\")}),this.checkedZeroWidth=!1,w&&v<8&&(this.horiz.style.minHeight=this.vert.style.minWidth=\"18px\")};e.prototype.update=function(e){var t,n=e.scrollWidth>e.clientWidth+1,r=e.scrollHeight>e.clientHeight+1,i=e.nativeBarWidth;return r?(this.vert.style.display=\"block\",this.vert.style.bottom=n?i+\"px\":\"0\",t=e.viewHeight-(n?i:0),this.vert.firstChild.style.height=Math.max(0,e.scrollHeight-e.clientHeight+t)+\"px\"):(this.vert.style.display=\"\",this.vert.firstChild.style.height=\"0\"),n?(this.horiz.style.display=\"block\",this.horiz.style.right=r?i+\"px\":\"0\",this.horiz.style.left=e.barLeft+\"px\",t=e.viewWidth-e.barLeft-(r?i:0),this.horiz.firstChild.style.width=Math.max(0,e.scrollWidth-e.clientWidth+t)+\"px\"):(this.horiz.style.display=\"\",this.horiz.firstChild.style.width=\"0\"),!this.checkedZeroWidth&&0<e.clientHeight&&(0==i&&this.zeroWidthHack(),this.checkedZeroWidth=!0),{right:r?i:0,bottom:n?i:0}},e.prototype.setScrollLeft=function(e){this.horiz.scrollLeft!=e&&(this.horiz.scrollLeft=e),this.disableHoriz&&this.enableZeroWidthBar(this.horiz,this.disableHoriz,\"horiz\")},e.prototype.setScrollTop=function(e){this.vert.scrollTop!=e&&(this.vert.scrollTop=e),this.disableVert&&this.enableZeroWidthBar(this.vert,this.disableVert,\"vert\")},e.prototype.zeroWidthHack=function(){var e=g&&!l?\"12px\":\"18px\";this.horiz.style.height=this.vert.style.width=e,this.horiz.style.pointerEvents=this.vert.style.pointerEvents=\"none\",this.disableHoriz=new I,this.disableVert=new I},e.prototype.enableZeroWidthBar=function(n,r,i){n.style.pointerEvents=\"auto\",r.set(1e3,function e(){var t=n.getBoundingClientRect();(\"vert\"==i?document.elementFromPoint(t.right-1,(t.top+t.bottom)/2):document.elementFromPoint((t.right+t.left)/2,t.bottom-1))!=n?n.style.pointerEvents=\"none\":r.set(1e3,e)})},e.prototype.clear=function(){var e=this.horiz.parentNode;e.removeChild(this.horiz),e.removeChild(this.vert)};r=function(){};function Nr(e,t){t=t||Mr(e);var n=e.display.barWidth,r=e.display.barHeight;Ar(e,t);for(var i=0;i<4&&n!=e.display.barWidth||r!=e.display.barHeight;i++)n!=e.display.barWidth&&e.options.lineWrapping&&gr(e),Ar(e,Mr(e)),n=e.display.barWidth,r=e.display.barHeight}function Ar(e,t){var n=e.display,r=n.scrollbars.update(t);n.sizer.style.paddingRight=(n.barWidth=r.right)+\"px\",n.sizer.style.paddingBottom=(n.barHeight=r.bottom)+\"px\",n.heightForcer.style.borderBottom=r.bottom+\"px solid transparent\",r.right&&r.bottom?(n.scrollbarFiller.style.display=\"block\",n.scrollbarFiller.style.height=r.bottom+\"px\",n.scrollbarFiller.style.width=r.right+\"px\"):n.scrollbarFiller.style.display=\"\",r.bottom&&e.options.coverGutterNextToScrollbar&&e.options.fixedGutter?(n.gutterFiller.style.display=\"block\",n.gutterFiller.style.height=r.bottom+\"px\",n.gutterFiller.style.width=t.gutterWidth+\"px\"):n.gutterFiller.style.display=\"\"}r.prototype.update=function(){return{bottom:0,right:0}},r.prototype.setScrollLeft=function(){},r.prototype.setScrollTop=function(){},r.prototype.clear=function(){};var Or={native:e,null:r};function Dr(n){n.display.scrollbars&&(n.display.scrollbars.clear(),n.display.scrollbars.addClass&&L(n.display.wrapper,n.display.scrollbars.addClass)),n.display.scrollbars=new Or[n.options.scrollbarStyle](function(e){n.display.wrapper.insertBefore(e,n.display.scrollbarFiller),ye(e,\"mousedown\",function(){n.state.focused&&setTimeout(function(){return n.display.input.focus()},0)}),e.setAttribute(\"cm-not-content\",\"true\")},function(e,t){(\"horizontal\"==t?Tr:Lr)(n,e)},n),n.display.scrollbars.addClass&&D(n.display.wrapper,n.display.scrollbars.addClass)}var Wr=0;function Hr(e){e.curOp={cm:e,viewChanged:!1,startHeight:e.doc.height,forceUpdate:!1,updateInput:0,typing:!1,changeObjs:null,cursorActivityHandlers:null,cursorActivityCalled:0,selectionChanged:!1,updateMaxLine:!1,scrollLeft:null,scrollTop:null,scrollToPos:null,focus:!1,id:++Wr},e=e.curOp,nn?nn.ops.push(e):e.ownsGroup=nn={ops:[e],delayedCallbacks:[]}}function Fr(e){e=e.curOp;e&&rn(e,function(e){for(var t=0;t<e.ops.length;t++)e.ops[t].cm.curOp=null;!function(e){for(var t=e.ops,n=0;n<t.length;n++)!function(e){var t=e.cm,n=t.display;(function(e){var t=e.display;!t.scrollbarsClipped&&t.scroller.offsetWidth&&(t.nativeBarWidth=t.scroller.offsetWidth-t.scroller.clientWidth,t.heightForcer.style.height=wn(e)+\"px\",t.sizer.style.marginBottom=-t.nativeBarWidth+\"px\",t.sizer.style.borderRightWidth=wn(e)+\"px\",t.scrollbarsClipped=!0)})(t),e.updateMaxLine&&jt(t);e.mustUpdate=e.viewChanged||e.forceUpdate||null!=e.scrollTop||e.scrollToPos&&(e.scrollToPos.from.line<n.viewFrom||e.scrollToPos.to.line>=n.viewTo)||n.maxLineChanged&&t.options.lineWrapping,e.update=e.mustUpdate&&new Gr(t,e.mustUpdate&&{top:e.scrollTop,ensure:e.scrollToPos},e.forceUpdate)}(t[n]);for(var r=0;r<t.length;r++)!function(e){e.updatedDisplay=e.mustUpdate&&Ur(e.cm,e.update)}(t[r]);for(var i=0;i<t.length;i++)!function(e){var t=e.cm,n=t.display;e.updatedDisplay&&gr(t);e.barMeasure=Mr(t),n.maxLineChanged&&!t.options.lineWrapping&&(e.adjustWidthTo=Ln(t,n.maxLine,n.maxLine.text.length).left+3,t.display.sizerWidth=e.adjustWidthTo,e.barMeasure.scrollWidth=Math.max(n.scroller.clientWidth,n.sizer.offsetLeft+e.adjustWidthTo+wn(t)+t.display.barWidth),e.maxScrollLeft=Math.max(0,n.sizer.offsetLeft+e.adjustWidthTo-xn(t)));(e.updatedDisplay||e.selectionChanged)&&(e.preparedSelection=n.input.prepareSelection())}(t[i]);for(var o=0;o<t.length;o++)!function(e){var t=e.cm;null!=e.adjustWidthTo&&(t.display.sizer.style.minWidth=e.adjustWidthTo+\"px\",e.maxScrollLeft<t.doc.scrollLeft&&Tr(t,Math.min(t.display.scroller.scrollLeft,e.maxScrollLeft),!0),t.display.maxLineChanged=!1);var n=e.focus&&e.focus==O();e.preparedSelection&&t.display.input.showSelection(e.preparedSelection,n);!e.updatedDisplay&&e.startHeight==t.doc.height||Nr(t,e.barMeasure);e.updatedDisplay&&Xr(t,e.barMeasure);e.selectionChanged&&cr(t);t.state.focused&&e.updateInput&&t.display.input.reset(e.typing);n&&hr(e.cm)}(t[o]);for(var l=0;l<t.length;l++)!function(e){var t=e.cm,n=t.display,r=t.doc;e.updatedDisplay&&Vr(t,e.update);null==n.wheelStartX||null==e.scrollTop&&null==e.scrollLeft&&!e.scrollToPos||(n.wheelStartX=n.wheelStartY=null);null!=e.scrollTop&&kr(t,e.scrollTop,e.forceScroll);null!=e.scrollLeft&&Tr(t,e.scrollLeft,!0,!0);{var i;e.scrollToPos&&(i=function(e,t,n,r){null==r&&(r=0),e.options.lineWrapping||t!=n||(n=\"before\"==(t=t.ch?rt(t.line,\"before\"==t.sticky?t.ch-1:t.ch,\"after\"):t).sticky?rt(t.line,t.ch+1,\"before\"):t);for(var i=0;i<5;i++){var o,l=!1,s=Bn(e,t),a=n&&n!=t?Bn(e,n):s,u=yr(e,o={left:Math.min(s.left,a.left),top:Math.min(s.top,a.top)-r,right:Math.max(s.left,a.left),bottom:Math.max(s.bottom,a.bottom)+r}),s=e.doc.scrollTop,a=e.doc.scrollLeft;if(null!=u.scrollTop&&(Lr(e,u.scrollTop),1<Math.abs(e.doc.scrollTop-s)&&(l=!0)),null!=u.scrollLeft&&(Tr(e,u.scrollLeft),1<Math.abs(e.doc.scrollLeft-a)&&(l=!0)),!l)break}return o}(t,ct(r,e.scrollToPos.from),ct(r,e.scrollToPos.to),e.scrollToPos.margin),function(e,t){var n,r,i;Ce(e,\"scrollCursorIntoView\")||(r=(n=e.display).sizer.getBoundingClientRect(),i=null,t.top+r.top<0?i=!0:t.bottom+r.top>(window.innerHeight||document.documentElement.clientHeight)&&(i=!1),null==i||u||(t=M(\"div\",\"​\",null,\"position: absolute;\\n                         top: \"+(t.top-n.viewOffset-vn(e.display))+\"px;\\n                         height: \"+(t.bottom-t.top+wn(e)+n.barHeight)+\"px;\\n                         left: \"+t.left+\"px; width: \"+Math.max(2,t.right-t.left)+\"px;\"),e.display.lineSpace.appendChild(t),t.scrollIntoView(i),e.display.lineSpace.removeChild(t)))}(t,i))}var o=e.maybeHiddenMarkers,l=e.maybeUnhiddenMarkers;if(o)for(var s=0;s<o.length;++s)o[s].lines.length||xe(o[s],\"hide\");if(l)for(var a=0;a<l.length;++a)l[a].lines.length&&xe(l[a],\"unhide\");n.wrapper.offsetHeight&&(r.scrollTop=t.display.scroller.scrollTop);e.changeObjs&&xe(t,\"changes\",t,e.changeObjs);e.update&&e.update.finish()}(t[l])}(e)})}function Er(e,t){if(e.curOp)return t();Hr(e);try{return t()}finally{Fr(e)}}function Pr(e,t){return function(){if(e.curOp)return t.apply(e,arguments);Hr(e);try{return t.apply(e,arguments)}finally{Fr(e)}}}function Ir(e){return function(){if(this.curOp)return e.apply(this,arguments);Hr(this);try{return e.apply(this,arguments)}finally{Fr(this)}}}function Rr(t){return function(){var e=this.cm;if(!e||e.curOp)return t.apply(this,arguments);Hr(e);try{return t.apply(this,arguments)}finally{Fr(e)}}}function zr(e,t){e.doc.highlightFrontier<e.display.viewTo&&e.state.highlight.set(t,F(Br,e))}function Br(l){var s,a,u,c=l.doc;c.highlightFrontier>=l.display.viewTo||(s=+new Date+l.options.workTime,a=mt(l,c.highlightFrontier),u=[],c.iter(a.line,Math.min(c.first+c.size,l.display.viewTo+500),function(e){if(a.line>=l.display.viewFrom){var t=e.styles,n=e.text.length>l.options.maxHighlightLength?je(c.mode,a.state):null,r=pt(l,e,a,!0);n&&(a.state=n),e.styles=r.styles;n=e.styleClasses,r=r.classes;r?e.styleClasses=r:n&&(e.styleClasses=null);for(var i=!t||t.length!=e.styles.length||n!=r&&(!n||!r||n.bgClass!=r.bgClass||n.textClass!=r.textClass),o=0;!i&&o<t.length;++o)i=t[o]!=e.styles[o];i&&u.push(a.line),e.stateAfter=a.save(),a.nextLine()}else e.text.length<=l.options.maxHighlightLength&&vt(l,e.text,a),e.stateAfter=a.line%5==0?a.save():null,a.nextLine();if(+new Date>s)return zr(l,l.options.workDelay),!0}),c.highlightFrontier=a.line,c.modeFrontier=Math.max(c.modeFrontier,a.line),u.length&&Er(l,function(){for(var e=0;e<u.length;e++)nr(l,u[e],\"text\")}))}var Gr=function(e,t,n){var r=e.display;this.viewport=t,this.visible=vr(r,e.doc,t),this.editorIsHidden=!r.wrapper.offsetWidth,this.wrapperHeight=r.wrapper.clientHeight,this.wrapperWidth=r.wrapper.clientWidth,this.oldDisplayWidth=xn(e),this.force=n,this.dims=$n(e),this.events=[]};function Ur(e,t){var n=e.display,r=e.doc;if(t.editorIsHidden)return rr(e),!1;if(!t.force&&t.visible.from>=n.viewFrom&&t.visible.to<=n.viewTo&&(null==n.updateLineNumbers||n.updateLineNumbers>=n.viewTo)&&n.renderedView==n.view&&0==or(e))return!1;_r(e)&&(rr(e),t.dims=$n(e));var i=r.first+r.size,o=Math.max(t.visible.from-e.options.viewportMargin,r.first),l=Math.min(i,t.visible.to+e.options.viewportMargin);n.viewFrom<o&&o-n.viewFrom<20&&(o=Math.max(r.first,n.viewFrom)),n.viewTo>l&&n.viewTo-l<20&&(l=Math.min(i,n.viewTo)),kt&&(o=Bt(e.doc,o),l=Gt(e.doc,l));var s=o!=n.viewFrom||l!=n.viewTo||n.lastWrapHeight!=t.wrapperHeight||n.lastWrapWidth!=t.wrapperWidth;r=o,i=l,0==(l=(o=e).display).view.length||r>=l.viewTo||i<=l.viewFrom?(l.view=tn(o,r,i),l.viewFrom=r):(l.viewFrom>r?l.view=tn(o,r,l.viewFrom).concat(l.view):l.viewFrom<r&&(l.view=l.view.slice(er(o,r))),l.viewFrom=r,l.viewTo<i?l.view=l.view.concat(tn(o,l.viewTo,i)):l.viewTo>i&&(l.view=l.view.slice(0,er(o,i)))),l.viewTo=i,n.viewOffset=Vt($e(e.doc,n.viewFrom)),e.display.mover.style.top=n.viewOffset+\"px\";o=or(e);if(!s&&0==o&&!t.force&&n.renderedView==n.view&&(null==n.updateLineNumbers||n.updateLineNumbers>=n.viewTo))return!1;l=function(e){if(e.hasFocus())return null;var t=O();if(!t||!A(e.display.lineDiv,t))return null;var n={activeElt:t};return!window.getSelection||(t=window.getSelection()).anchorNode&&t.extend&&A(e.display.lineDiv,t.anchorNode)&&(n.anchorNode=t.anchorNode,n.anchorOffset=t.anchorOffset,n.focusNode=t.focusNode,n.focusOffset=t.focusOffset),n}(e);return 4<o&&(n.lineDiv.style.display=\"none\"),function(n,e,t){var r=n.display,i=n.options.lineNumbers,o=r.lineDiv,l=o.firstChild;function s(e){var t=e.nextSibling;return f&&g&&n.display.currentWheelTarget==e?e.style.display=\"none\":e.parentNode.removeChild(e),t}for(var a=r.view,u=r.viewFrom,c=0;c<a.length;c++){var h=a[c];if(!h.hidden)if(h.node&&h.node.parentNode==o){for(;l!=h.node;)l=s(l);var d=i&&null!=e&&e<=u&&h.lineNumber;h.changes&&(-1<R(h.changes,\"gutter\")&&(d=!1),an(n,h,u,t)),d&&(k(h.lineNumber),h.lineNumber.appendChild(document.createTextNode(nt(n.options,u)))),l=h.node.nextSibling}else{d=function(e,t,n,r){var i=cn(e,t);return t.text=t.node=i.pre,i.bgClass&&(t.bgClass=i.bgClass),i.textClass&&(t.textClass=i.textClass),hn(e,t),dn(e,t,n,r),fn(e,t,r),t.node}(n,h,u,t);o.insertBefore(d,l)}u+=h.size}for(;l;)l=s(l)}(e,n.updateLineNumbers,t.dims),4<o&&(n.lineDiv.style.display=\"\"),n.renderedView=n.view,(i=l)&&i.activeElt&&i.activeElt!=O()&&(i.activeElt.focus(),!/^(INPUT|TEXTAREA)$/.test(i.activeElt.nodeName)&&i.anchorNode&&A(document.body,i.anchorNode)&&A(document.body,i.focusNode)&&(o=window.getSelection(),(l=document.createRange()).setEnd(i.anchorNode,i.anchorOffset),l.collapse(!1),o.removeAllRanges(),o.addRange(l),o.extend(i.focusNode,i.focusOffset))),k(n.cursorDiv),k(n.selectionDiv),n.gutters.style.height=n.sizer.style.minHeight=0,s&&(n.lastWrapHeight=t.wrapperHeight,n.lastWrapWidth=t.wrapperWidth,zr(e,400)),!(n.updateLineNumbers=null)}function Vr(e,t){for(var n=t.viewport,r=!0;;r=!1){if(r&&e.options.lineWrapping&&t.oldDisplayWidth!=xn(e))r&&(t.visible=vr(e.display,e.doc,n));else if(n&&null!=n.top&&(n={top:Math.min(e.doc.height+yn(e.display)-Cn(e),n.top)}),t.visible=vr(e.display,e.doc,n),t.visible.from>=e.display.viewFrom&&t.visible.to<=e.display.viewTo)break;if(!Ur(e,t))break;gr(e);var i=Mr(e);lr(e),Nr(e,i),Xr(e,i),t.force=!1}t.signal(e,\"update\",e),e.display.viewFrom==e.display.reportedViewFrom&&e.display.viewTo==e.display.reportedViewTo||(t.signal(e,\"viewportChange\",e,e.display.viewFrom,e.display.viewTo),e.display.reportedViewFrom=e.display.viewFrom,e.display.reportedViewTo=e.display.viewTo)}function Kr(e,t){var n=new Gr(e,t);Ur(e,n)&&(gr(e),Vr(e,n),t=Mr(e),lr(e),Nr(e,t),Xr(e,t),n.finish())}function jr(e){var t=e.gutters.offsetWidth;e.sizer.style.marginLeft=t+\"px\"}function Xr(e,t){e.display.sizer.style.minHeight=t.docHeight+\"px\",e.display.heightForcer.style.top=t.docHeight+\"px\",e.display.gutters.style.height=t.docHeight+e.display.barHeight+wn(e)+\"px\"}function Yr(e){var t=e.display,n=t.view;if(t.alignWidgets||t.gutters.firstChild&&e.options.fixedGutter){for(var r=qn(t)-t.scroller.scrollLeft+e.doc.scrollLeft,i=t.gutters.offsetWidth,o=r+\"px\",l=0;l<n.length;l++)if(!n[l].hidden){e.options.fixedGutter&&(n[l].gutter&&(n[l].gutter.style.left=o),n[l].gutterBackground&&(n[l].gutterBackground.style.left=o));var s=n[l].alignable;if(s)for(var a=0;a<s.length;a++)s[a].style.left=o}e.options.fixedGutter&&(t.gutters.style.left=r+i+\"px\")}}function _r(e){if(e.options.lineNumbers){var t=e.doc,n=nt(e.options,t.first+t.size-1),r=e.display;if(n.length!=r.lineNumChars){var i=r.measure.appendChild(M(\"div\",[M(\"div\",n)],\"CodeMirror-linenumber CodeMirror-gutter-elt\")),t=i.firstChild.offsetWidth,i=i.offsetWidth-t;return r.lineGutter.style.width=\"\",r.lineNumInnerWidth=Math.max(t,r.lineGutter.offsetWidth-i)+1,r.lineNumWidth=r.lineNumInnerWidth+i,r.lineNumChars=r.lineNumInnerWidth?n.length:-1,r.lineGutter.style.width=r.lineNumWidth+\"px\",jr(e.display),1}}}function $r(e,t){for(var n=[],r=!1,i=0;i<e.length;i++){var o=e[i],l=null;if(\"string\"!=typeof o&&(l=o.style,o=o.className),\"CodeMirror-linenumbers\"==o){if(!t)continue;r=!0}n.push({className:o,style:l})}return t&&!r&&n.push({className:\"CodeMirror-linenumbers\",style:null}),n}function qr(e){var t=e.gutters,n=e.gutterSpecs;k(t),e.lineGutter=null;for(var r=0;r<n.length;++r){var i=n[r],o=i.className,l=i.style,i=t.appendChild(M(\"div\",null,\"CodeMirror-gutter \"+o));l&&(i.style.cssText=l),\"CodeMirror-linenumbers\"==o&&((e.lineGutter=i).style.width=(e.lineNumWidth||1)+\"px\")}t.style.display=n.length?\"\":\"none\",jr(e)}function Zr(e){qr(e.display),tr(e),Yr(e)}function Qr(e,t,n,r){var i=this;this.input=n,i.scrollbarFiller=M(\"div\",null,\"CodeMirror-scrollbar-filler\"),i.scrollbarFiller.setAttribute(\"cm-not-content\",\"true\"),i.gutterFiller=M(\"div\",null,\"CodeMirror-gutter-filler\"),i.gutterFiller.setAttribute(\"cm-not-content\",\"true\"),i.lineDiv=N(\"div\",null,\"CodeMirror-code\"),i.selectionDiv=M(\"div\",null,null,\"position: relative; z-index: 1\"),i.cursorDiv=M(\"div\",null,\"CodeMirror-cursors\"),i.measure=M(\"div\",null,\"CodeMirror-measure\"),i.lineMeasure=M(\"div\",null,\"CodeMirror-measure\"),i.lineSpace=N(\"div\",[i.measure,i.lineMeasure,i.selectionDiv,i.cursorDiv,i.lineDiv],null,\"position: relative; outline: none\");var o=N(\"div\",[i.lineSpace],\"CodeMirror-lines\");i.mover=M(\"div\",[o],null,\"position: relative\"),i.sizer=M(\"div\",[i.mover],\"CodeMirror-sizer\"),i.sizerWidth=null,i.heightForcer=M(\"div\",null,null,\"position: absolute; height: \"+z+\"px; width: 1px;\"),i.gutters=M(\"div\",null,\"CodeMirror-gutters\"),i.lineGutter=null,i.scroller=M(\"div\",[i.sizer,i.heightForcer,i.gutters],\"CodeMirror-scroll\"),i.scroller.setAttribute(\"tabIndex\",\"-1\"),i.wrapper=M(\"div\",[i.scrollbarFiller,i.gutterFiller,i.scroller],\"CodeMirror\"),w&&v<8&&(i.gutters.style.zIndex=-1,i.scroller.style.paddingRight=0),f||d&&h||(i.scroller.draggable=!0),e&&(e.appendChild?e.appendChild(i.wrapper):e(i.wrapper)),i.viewFrom=i.viewTo=t.first,i.reportedViewFrom=i.reportedViewTo=t.first,i.view=[],i.renderedView=null,i.externalMeasured=null,i.viewOffset=0,i.lastWrapHeight=i.lastWrapWidth=0,i.updateLineNumbers=null,i.nativeBarWidth=i.barHeight=i.barWidth=0,i.scrollbarsClipped=!1,i.lineNumWidth=i.lineNumInnerWidth=i.lineNumChars=null,i.alignWidgets=!1,i.cachedCharWidth=i.cachedTextHeight=i.cachedPaddingH=null,i.maxLine=null,i.maxLineLength=0,i.maxLineChanged=!1,i.wheelDX=i.wheelDY=i.wheelStartX=i.wheelStartY=null,i.shift=!1,i.selForContextMenu=null,i.activeTouch=null,i.gutterSpecs=$r(r.gutters,r.lineNumbers),qr(i),n.init(i)}Gr.prototype.signal=function(e,t){Le(e,t)&&this.events.push(arguments)},Gr.prototype.finish=function(){for(var e=0;e<this.events.length;e++)xe.apply(null,this.events[e])};var Jr=0,ei=null;function ti(e){var t=e.wheelDeltaX,n=e.wheelDeltaY;return null==t&&e.detail&&e.axis==e.HORIZONTAL_AXIS&&(t=e.detail),null==n&&e.detail&&e.axis==e.VERTICAL_AXIS?n=e.detail:null==n&&(n=e.wheelDelta),{x:t,y:n}}function ni(e){e=ti(e);return e.x*=ei,e.y*=ei,e}function ri(e,t){var n=ti(t),r=n.x,i=n.y,o=e.display,l=o.scroller,s=l.scrollWidth>l.clientWidth,a=l.scrollHeight>l.clientHeight;if(r&&s||i&&a){if(i&&g&&f)e:for(var u=t.target,c=o.view;u!=l;u=u.parentNode)for(var h=0;h<c.length;h++)if(c[h].node==u){e.display.currentWheelTarget=u;break e}if(r&&!d&&!p&&null!=ei)return i&&a&&Lr(e,Math.max(0,l.scrollTop+i*ei)),Tr(e,Math.max(0,l.scrollLeft+r*ei)),(!i||i&&a)&&Te(t),void(o.wheelStartX=null);i&&null!=ei&&(n=i*ei,a=(s=e.doc.scrollTop)+o.wrapper.clientHeight,n<0?s=Math.max(0,s+n-50):a=Math.min(e.doc.height,a+n+50),Kr(e,{top:s,bottom:a})),Jr<20&&(null==o.wheelStartX?(o.wheelStartX=l.scrollLeft,o.wheelStartY=l.scrollTop,o.wheelDX=r,o.wheelDY=i,setTimeout(function(){var e,t;null!=o.wheelStartX&&(t=l.scrollLeft-o.wheelStartX,t=(e=l.scrollTop-o.wheelStartY)&&o.wheelDY&&e/o.wheelDY||t&&o.wheelDX&&t/o.wheelDX,o.wheelStartX=o.wheelStartY=null,t&&(ei=(ei*Jr+t)/(Jr+1),++Jr))},200)):(o.wheelDX+=r,o.wheelDY+=i))}}w?ei=-.53:d?ei=15:o?ei=-.7:c&&(ei=-1/3);var ii=function(e,t){this.ranges=e,this.primIndex=t};ii.prototype.primary=function(){return this.ranges[this.primIndex]},ii.prototype.equals=function(e){if(e==this)return!0;if(e.primIndex!=this.primIndex||e.ranges.length!=this.ranges.length)return!1;for(var t=0;t<this.ranges.length;t++){var n=this.ranges[t],r=e.ranges[t];if(!ot(n.anchor,r.anchor)||!ot(n.head,r.head))return!1}return!0},ii.prototype.deepCopy=function(){for(var e=[],t=0;t<this.ranges.length;t++)e[t]=new oi(lt(this.ranges[t].anchor),lt(this.ranges[t].head));return new ii(e,this.primIndex)},ii.prototype.somethingSelected=function(){for(var e=0;e<this.ranges.length;e++)if(!this.ranges[e].empty())return!0;return!1},ii.prototype.contains=function(e,t){t=t||e;for(var n=0;n<this.ranges.length;n++){var r=this.ranges[n];if(0<=it(t,r.from())&&it(e,r.to())<=0)return n}return-1};var oi=function(e,t){this.anchor=e,this.head=t};function li(e,t,n){var r=e&&e.options.selectionsMayTouch,e=t[n];t.sort(function(e,t){return it(e.from(),t.from())}),n=R(t,e);for(var i=1;i<t.length;i++){var o,l=t[i],s=t[i-1],a=it(s.to(),l.from());(r&&!l.empty()?0<a:0<=a)&&(o=at(s.from(),l.from()),a=st(s.to(),l.to()),s=s.empty()?l.from()==l.head:s.from()==s.head,i<=n&&--n,t.splice(--i,2,new oi(s?a:o,s?o:a)))}return new ii(t,n)}function si(e,t){return new ii([new oi(e,t||e)],0)}function ai(e){return e.text?rt(e.from.line+e.text.length-1,Y(e.text).length+(1==e.text.length?e.from.ch:0)):e.to}function ui(e,t){if(it(e,t.from)<0)return e;if(it(e,t.to)<=0)return ai(t);var n=e.line+t.text.length-(t.to.line-t.from.line)-1,r=e.ch;return e.line==t.to.line&&(r+=ai(t).ch-t.to.ch),rt(n,r)}function ci(e,t){for(var n=[],r=0;r<e.sel.ranges.length;r++){var i=e.sel.ranges[r];n.push(new oi(ui(i.anchor,t),ui(i.head,t)))}return li(e.cm,n,e.sel.primIndex)}function hi(e,t,n){return e.line==t.line?rt(n.line,e.ch-t.ch+n.ch):rt(n.line+(e.line-t.line),e.ch)}function di(e){e.doc.mode=Ue(e.options,e.doc.modeOption),fi(e)}function fi(e){e.doc.iter(function(e){e.stateAfter&&(e.stateAfter=null),e.styles&&(e.styles=null)}),e.doc.modeFrontier=e.doc.highlightFrontier=e.doc.first,zr(e,100),e.state.modeGen++,e.curOp&&tr(e)}function pi(e,t){return 0==t.from.ch&&0==t.to.ch&&\"\"==Y(t.text)&&(!e.cm||e.cm.options.wholeLineUpdateBefore)}function gi(e,o,t,l){function i(e){return t?t[e]:null}function n(e,t,n){var r,i;r=t,i=n,t=l,(n=e).text=r,n.stateAfter&&(n.stateAfter=null),n.styles&&(n.styles=null),null!=n.order&&(n.order=null),Ot(n),Dt(n,i),(t=t?t(n):1)!=n.height&&Qe(n,t),ln(e,\"change\",e,o)}function r(e,t){for(var n=[],r=e;r<t;++r)n.push(new Xt(c[r],i(r),l));return n}var s,a=o.from,u=o.to,c=o.text,h=$e(e,a.line),d=$e(e,u.line),f=Y(c),p=i(c.length-1),g=u.line-a.line;o.full?(e.insert(0,r(0,c.length)),e.remove(c.length,e.size-c.length)):pi(e,o)?(s=r(0,c.length-1),n(d,d.text,p),g&&e.remove(a.line,g),s.length&&e.insert(a.line,s)):h==d?1==c.length?n(h,h.text.slice(0,a.ch)+f+h.text.slice(u.ch),p):((s=r(1,c.length-1)).push(new Xt(f+h.text.slice(u.ch),p,l)),n(h,h.text.slice(0,a.ch)+c[0],i(0)),e.insert(a.line+1,s)):1==c.length?(n(h,h.text.slice(0,a.ch)+c[0]+d.text.slice(u.ch),i(0)),e.remove(a.line+1,g)):(n(h,h.text.slice(0,a.ch)+c[0],i(0)),n(d,f+d.text.slice(u.ch),p),p=r(1,c.length-1),1<g&&e.remove(a.line+1,g-1),e.insert(a.line+1,p)),ln(e,\"change\",e,o)}function mi(e,s,a){!function e(t,n,r){if(t.linked)for(var i=0;i<t.linked.length;++i){var o,l=t.linked[i];l.doc!=n&&(o=r&&l.sharedHist,a&&!o||(s(l.doc,o),e(l.doc,t,o)))}}(e,null,!0)}function vi(e,t){if(t.cm)throw new Error(\"This document is already in use.\");Qn((e.doc=t).cm=e),di(e),yi(e),e.options.lineWrapping||jt(e),e.options.mode=t.modeOption,tr(e)}function yi(e){(\"rtl\"==e.doc.direction?D:L)(e.display.lineDiv,\"CodeMirror-rtl\")}function bi(e){this.done=[],this.undone=[],this.undoDepth=1/0,this.lastModTime=this.lastSelTime=0,this.lastOp=this.lastSelOp=null,this.lastOrigin=this.lastSelOrigin=null,this.generation=this.maxGeneration=e||1}function wi(e,t){var n={from:lt(t.from),to:ai(t),text:qe(e,t.from,t.to)};return ki(e,n,t.from.line,t.to.line+1),mi(e,function(e){return ki(e,n,t.from.line,t.to.line+1),0},!0),n}function xi(e){for(;e.length;){if(!Y(e).ranges)break;e.pop()}}function Ci(e,t,n,r){var i=e.history;i.undone.length=0;var o,l,s=+new Date;if((i.lastOp==r||i.lastOrigin==t.origin&&t.origin&&(\"+\"==t.origin.charAt(0)&&i.lastModTime>s-(e.cm?e.cm.options.historyEventDelay:500)||\"*\"==t.origin.charAt(0)))&&(o=(a=i).lastOp==r?(xi(a.done),Y(a.done)):a.done.length&&!Y(a.done).ranges?Y(a.done):1<a.done.length&&!a.done[a.done.length-2].ranges?(a.done.pop(),Y(a.done)):void 0))l=Y(o.changes),0==it(t.from,t.to)&&0==it(t.from,l.to)?l.to=ai(t):o.changes.push(wi(e,t));else{var a=Y(i.done);for(a&&a.ranges||Li(e.sel,i.done),o={changes:[wi(e,t)],generation:i.generation},i.done.push(o);i.done.length>i.undoDepth;)i.done.shift(),i.done[0].ranges||i.done.shift()}i.done.push(n),i.generation=++i.maxGeneration,i.lastModTime=i.lastSelTime=s,i.lastOp=i.lastSelOp=r,i.lastOrigin=i.lastSelOrigin=t.origin,l||xe(e,\"historyAdded\")}function Si(e,t,n,r){var i,o,l,s=e.history,a=r&&r.origin;n==s.lastSelOp||a&&s.lastSelOrigin==a&&(s.lastModTime==s.lastSelTime&&s.lastOrigin==a||(i=e,o=a,l=Y(s.done),e=t,\"*\"==(o=o.charAt(0))||\"+\"==o&&l.ranges.length==e.ranges.length&&l.somethingSelected()==e.somethingSelected()&&new Date-i.history.lastSelTime<=(i.cm?i.cm.options.historyEventDelay:500)))?s.done[s.done.length-1]=t:Li(t,s.done),s.lastSelTime=+new Date,s.lastSelOrigin=a,s.lastSelOp=n,r&&!1!==r.clearRedo&&xi(s.undone)}function Li(e,t){var n=Y(t);n&&n.ranges&&n.equals(e)||t.push(e)}function ki(t,n,e,r){var i=n[\"spans_\"+t.id],o=0;t.iter(Math.max(t.first,e),Math.min(t.first+t.size,r),function(e){e.markedSpans&&((i=i||(n[\"spans_\"+t.id]={}))[o]=e.markedSpans),++o})}function Ti(e,t){var n=t[\"spans_\"+e.id];if(!n)return null;for(var r=[],i=0;i<t.text.length;++i)r.push(function(e){if(!e)return null;for(var t,n=0;n<e.length;++n)e[n].marker.explicitlyCleared?t=t||e.slice(0,n):t&&t.push(e[n]);return t?t.length?t:null:e}(n[i]));return r}function Mi(e,t){var n=Ti(e,t),r=Nt(e,t);if(!n)return r;if(!r)return n;for(var i=0;i<n.length;++i){var o=n[i],l=r[i];if(o&&l)e:for(var s=0;s<l.length;++s){for(var a=l[s],u=0;u<o.length;++u)if(o[u].marker==a.marker)continue e;o.push(a)}else l&&(n[i]=l)}return n}function Ni(e,t,n){for(var r=[],i=0;i<e.length;++i){var o=e[i];if(o.ranges)r.push(n?ii.prototype.deepCopy.call(o):o);else{var l=o.changes,s=[];r.push({changes:s});for(var a=0;a<l.length;++a){var u,c=l[a];if(s.push({from:c.from,to:c.to,text:c.text}),t)for(var h in c)(u=h.match(/^spans_(\\d+)$/))&&-1<R(t,Number(u[1]))&&(Y(s)[h]=c[h],delete c[h])}}}return r}function Ai(e,t,n,r){if(r){r=e.anchor;return n&&((e=it(t,r)<0)!=it(n,r)<0?(r=t,t=n):e!=it(t,n)<0&&(t=n)),new oi(r,t)}return new oi(n||t,t)}function Oi(e,t,n,r,i){null==i&&(i=e.cm&&(e.cm.display.shift||e.extend)),Ei(e,new ii([Ai(e.sel.primary(),t,n,i)],0),r)}function Di(e,t,n){for(var r=[],i=e.cm&&(e.cm.display.shift||e.extend),o=0;o<e.sel.ranges.length;o++)r[o]=Ai(e.sel.ranges[o],t[o],null,i);Ei(e,li(e.cm,r,e.sel.primIndex),n)}function Wi(e,t,n,r){var i=e.sel.ranges.slice(0);i[t]=n,Ei(e,li(e.cm,i,e.sel.primIndex),r)}function Hi(e,t,n,r){Ei(e,si(t,n),r)}function Fi(e,t,n){var r=e.history.done,i=Y(r);i&&i.ranges?Pi(e,r[r.length-1]=t,n):Ei(e,t,n)}function Ei(e,t,n){Pi(e,t,n),Si(e,e.sel,e.cm?e.cm.curOp.id:NaN,n)}function Pi(e,t,n){var r,i;(Le(e,\"beforeSelectionChange\")||e.cm&&Le(e.cm,\"beforeSelectionChange\"))&&(r=e,i=n,i={ranges:(o=t).ranges,update:function(e){this.ranges=[];for(var t=0;t<e.length;t++)this.ranges[t]=new oi(ct(r,e[t].anchor),ct(r,e[t].head))},origin:i&&i.origin},xe(r,\"beforeSelectionChange\",r,i),r.cm&&xe(r.cm,\"beforeSelectionChange\",r.cm,i),t=i.ranges!=o.ranges?li(r.cm,i.ranges,i.ranges.length-1):o);var o=n&&n.bias||(it(t.primary().head,e.sel.primary().head)<0?-1:1);Ii(e,zi(e,t,o,!0)),n&&!1===n.scroll||!e.cm||wr(e.cm)}function Ii(e,t){t.equals(e.sel)||(e.sel=t,e.cm&&(e.cm.curOp.updateInput=1,e.cm.curOp.selectionChanged=!0,Se(e.cm)),ln(e,\"cursorActivity\",e))}function Ri(e){Ii(e,zi(e,e.sel,null,!1))}function zi(e,t,n,r){for(var i,o=0;o<t.ranges.length;o++){var l=t.ranges[o],s=t.ranges.length==e.sel.ranges.length&&e.sel.ranges[o],a=Gi(e,l.anchor,s&&s.anchor,n,r),s=Gi(e,l.head,s&&s.head,n,r);!i&&a==l.anchor&&s==l.head||((i=i||t.ranges.slice(0,o))[o]=new oi(a,s))}return i?li(e.cm,i,t.primIndex):t}function Bi(e,t,n,r,i){var o=$e(e,t.line);if(o.markedSpans)for(var l=0;l<o.markedSpans.length;++l){var s=o.markedSpans[l],a=s.marker,u=\"selectLeft\"in a?!a.selectLeft:a.inclusiveLeft,c=\"selectRight\"in a?!a.selectRight:a.inclusiveRight;if((null==s.from||(u?s.from<=t.ch:s.from<t.ch))&&(null==s.to||(c?s.to>=t.ch:s.to>t.ch))){if(i&&(xe(a,\"beforeCursorEnter\"),a.explicitlyCleared)){if(o.markedSpans){--l;continue}break}if(a.atomic){if(n){var h=a.find(r<0?1:-1),s=void 0;if((r<0?c:u)&&(h=Ui(e,h,-r,h&&h.line==t.line?o:null)),h&&h.line==t.line&&(s=it(h,n))&&(r<0?s<0:0<s))return Bi(e,h,t,r,i)}a=a.find(r<0?-1:1);return(r<0?u:c)&&(a=Ui(e,a,r,a.line==t.line?o:null)),a?Bi(e,a,t,r,i):null}}}return t}function Gi(e,t,n,r,i){r=r||1,r=Bi(e,t,n,r,i)||!i&&Bi(e,t,n,r,!0)||Bi(e,t,n,-r,i)||!i&&Bi(e,t,n,-r,!0);return r||(e.cantEdit=!0,rt(e.first,0))}function Ui(e,t,n,r){return n<0&&0==t.ch?t.line>e.first?ct(e,rt(t.line-1)):null:0<n&&t.ch==(r||$e(e,t.line)).text.length?t.line<e.first+e.size-1?rt(t.line+1,0):null:new rt(t.line,t.ch+n)}function Vi(e){e.setSelection(rt(e.firstLine(),0),rt(e.lastLine()),G)}function Ki(i,e,t){var o={canceled:!1,from:e.from,to:e.to,text:e.text,origin:e.origin,cancel:function(){return o.canceled=!0}};return t&&(o.update=function(e,t,n,r){e&&(o.from=ct(i,e)),t&&(o.to=ct(i,t)),n&&(o.text=n),void 0!==r&&(o.origin=r)}),xe(i,\"beforeChange\",i,o),i.cm&&xe(i.cm,\"beforeChange\",i.cm,o),o.canceled?(i.cm&&(i.cm.curOp.updateInput=2),null):{from:o.from,to:o.to,text:o.text,origin:o.origin}}function ji(e,t,n){if(e.cm){if(!e.cm.curOp)return Pr(e.cm,ji)(e,t,n);if(e.cm.state.suppressEdits)return}if(!(Le(e,\"beforeChange\")||e.cm&&Le(e.cm,\"beforeChange\"))||(t=Ki(e,t,!0))){var r=Lt&&!n&&function(e,t,n){var r=null;if(e.iter(t.line,n.line+1,function(e){if(e.markedSpans)for(var t=0;t<e.markedSpans.length;++t){var n=e.markedSpans[t].marker;!n.readOnly||r&&-1!=R(r,n)||(r=r||[]).push(n)}}),!r)return null;for(var i=[{from:t,to:n}],o=0;o<r.length;++o)for(var l=r[o],s=l.find(0),a=0;a<i.length;++a){var u,c,h,d=i[a];it(d.to,s.from)<0||0<it(d.from,s.to)||(u=[a,1],c=it(d.from,s.from),h=it(d.to,s.to),(c<0||!l.inclusiveLeft&&!c)&&u.push({from:d.from,to:s.from}),(0<h||!l.inclusiveRight&&!h)&&u.push({from:s.to,to:d.to}),i.splice.apply(i,u),a+=u.length-3)}return i}(e,t.from,t.to);if(r)for(var i=r.length-1;0<=i;--i)Xi(e,{from:r[i].from,to:r[i].to,text:i?[\"\"]:t.text,origin:t.origin});else Xi(e,t)}}function Xi(e,n){var t,r;1==n.text.length&&\"\"==n.text[0]&&0==it(n.from,n.to)||(t=ci(e,n),Ci(e,n,t,e.cm?e.cm.curOp.id:NaN),$i(e,n,t,Nt(e,n)),r=[],mi(e,function(e,t){t||-1!=R(r,e.history)||(Ji(e.history,n),r.push(e.history)),$i(e,n,null,Nt(e,n))}))}function Yi(i,o,e){var t=i.cm&&i.cm.state.suppressEdits;if(!t||e){for(var l,n=i.history,r=i.sel,s=\"undo\"==o?n.done:n.undone,a=\"undo\"==o?n.undone:n.done,u=0;u<s.length&&(l=s[u],e?!l.ranges||l.equals(i.sel):l.ranges);u++);if(u!=s.length){for(n.lastOrigin=n.lastSelOrigin=null;;){if(!(l=s.pop()).ranges){if(t)return void s.push(l);break}if(Li(l,a),e&&!l.equals(i.sel))return void Ei(i,l,{clearRedo:!1});r=l}var c=[];Li(r,a),a.push({changes:c,generation:n.generation}),n.generation=l.generation||++n.maxGeneration;for(var h=Le(i,\"beforeChange\")||i.cm&&Le(i.cm,\"beforeChange\"),d=l.changes.length-1;0<=d;--d){var f=function(e){var n=l.changes[e];if(n.origin=o,h&&!Ki(i,n,!1))return s.length=0,{};c.push(wi(i,n));var t=e?ci(i,n):Y(s);$i(i,n,t,Mi(i,n)),!e&&i.cm&&i.cm.scrollIntoView({from:n.from,to:ai(n)});var r=[];mi(i,function(e,t){t||-1!=R(r,e.history)||(Ji(e.history,n),r.push(e.history)),$i(e,n,null,Mi(e,n))})}(d);if(f)return f.v}}}}function _i(e,t){if(0!=t&&(e.first+=t,e.sel=new ii(_(e.sel.ranges,function(e){return new oi(rt(e.anchor.line+t,e.anchor.ch),rt(e.head.line+t,e.head.ch))}),e.sel.primIndex),e.cm)){tr(e.cm,e.first,e.first-t,t);for(var n=e.cm.display,r=n.viewFrom;r<n.viewTo;r++)nr(e.cm,r,\"gutter\")}}function $i(e,t,n,r){if(e.cm&&!e.cm.curOp)return Pr(e.cm,$i)(e,t,n,r);var i;t.to.line<e.first?_i(e,t.text.length-1-(t.to.line-t.from.line)):t.from.line>e.lastLine()||(t.from.line<e.first&&(_i(e,i=t.text.length-1-(e.first-t.from.line)),t={from:rt(e.first,0),to:rt(t.to.line+i,t.to.ch),text:[Y(t.text)],origin:t.origin}),i=e.lastLine(),t.to.line>i&&(t={from:t.from,to:rt(i,$e(e,i).text.length),text:[t.text[0]],origin:t.origin}),t.removed=qe(e,t.from,t.to),n=n||ci(e,t),e.cm?function(e,t,n){var r=e.doc,i=e.display,o=t.from,l=t.to,s=!1,a=o.line;e.options.lineWrapping||(a=Je(zt($e(r,o.line))),r.iter(a,l.line+1,function(e){if(e==i.maxLine)return s=!0}));-1<r.sel.contains(t.from,t.to)&&Se(e);gi(r,t,n,Zn(e)),e.options.lineWrapping||(r.iter(a,o.line+t.text.length,function(e){var t=Kt(e);t>i.maxLineLength&&(i.maxLine=e,i.maxLineLength=t,i.maxLineChanged=!0,s=!1)}),s&&(e.curOp.updateMaxLine=!0));(function(e,t){if(e.modeFrontier=Math.min(e.modeFrontier,t),!(e.highlightFrontier<t-10)){for(var n=e.first,r=t-1;n<r;r--){var i=$e(e,r).stateAfter;if(i&&(!(i instanceof dt)||r+i.lookAhead<t)){n=r+1;break}}e.highlightFrontier=Math.min(e.highlightFrontier,n)}})(r,o.line),zr(e,400);a=t.text.length-(l.line-o.line)-1;t.full?tr(e):o.line!=l.line||1!=t.text.length||pi(e.doc,t)?tr(e,o.line,l.line+1,a):nr(e,o.line,\"text\");r=Le(e,\"changes\"),a=Le(e,\"change\");(a||r)&&(t={from:o,to:l,text:t.text,removed:t.removed,origin:t.origin},a&&ln(e,\"change\",e,t),r&&(e.curOp.changeObjs||(e.curOp.changeObjs=[])).push(t));e.display.selForContextMenu=null}(e.cm,t,r):gi(e,t,r),Pi(e,n,G),e.cantEdit&&Gi(e,rt(e.firstLine(),0))&&(e.cantEdit=!1))}function qi(e,t,n,r,i){var o;it(r=r||n,n)<0&&(n=(o=[r,n])[0],r=o[1]),\"string\"==typeof t&&(t=e.splitLines(t)),ji(e,{from:n,to:r,text:t,origin:i})}function Zi(e,t,n,r){n<e.line?e.line+=r:t<e.line&&(e.line=t,e.ch=0)}function Qi(e,t,n,r){for(var i=0;i<e.length;++i){var o=e[i],l=!0;if(o.ranges){o.copied||((o=e[i]=o.deepCopy()).copied=!0);for(var s=0;s<o.ranges.length;s++)Zi(o.ranges[s].anchor,t,n,r),Zi(o.ranges[s].head,t,n,r)}else{for(var a=0;a<o.changes.length;++a){var u=o.changes[a];if(n<u.from.line)u.from=rt(u.from.line+r,u.from.ch),u.to=rt(u.to.line+r,u.to.ch);else if(t<=u.to.line){l=!1;break}}l||(e.splice(0,i+1),i=0)}}}function Ji(e,t){var n=t.from.line,r=t.to.line,t=t.text.length-(r-n)-1;Qi(e.done,n,r,t),Qi(e.undone,n,r,t)}function eo(e,t,n,r){var i=t,o=t;return\"number\"==typeof t?o=$e(e,ut(e,t)):i=Je(t),null==i?null:(r(o,i)&&e.cm&&nr(e.cm,i,n),o)}function to(e){this.lines=e,this.parent=null;for(var t=0,n=0;n<e.length;++n)e[n].parent=this,t+=e[n].height;this.height=t}function no(e){this.children=e;for(var t=0,n=0,r=0;r<e.length;++r){var i=e[r];t+=i.chunkSize(),n+=i.height,i.parent=this}this.size=t,this.height=n,this.parent=null}oi.prototype.from=function(){return at(this.anchor,this.head)},oi.prototype.to=function(){return st(this.anchor,this.head)},oi.prototype.empty=function(){return this.head.line==this.anchor.line&&this.head.ch==this.anchor.ch},to.prototype={chunkSize:function(){return this.lines.length},removeInner:function(e,t){for(var n,r=e,i=e+t;r<i;++r){var o=this.lines[r];this.height-=o.height,(n=o).parent=null,Ot(n),ln(o,\"delete\")}this.lines.splice(e,t)},collapse:function(e){e.push.apply(e,this.lines)},insertInner:function(e,t,n){this.height+=n,this.lines=this.lines.slice(0,e).concat(t).concat(this.lines.slice(e));for(var r=0;r<t.length;++r)t[r].parent=this},iterN:function(e,t,n){for(var r=e+t;e<r;++e)if(n(this.lines[e]))return!0}},no.prototype={chunkSize:function(){return this.size},removeInner:function(e,t){this.size-=t;for(var n,r=0;r<this.children.length;++r){var i=this.children[r],o=i.chunkSize();if(e<o){var l=Math.min(t,o-e),s=i.height;if(i.removeInner(e,l),this.height-=s-i.height,o==l&&(this.children.splice(r--,1),i.parent=null),0==(t-=l))break;e=0}else e-=o}this.size-t<25&&(1<this.children.length||!(this.children[0]instanceof to))&&(n=[],this.collapse(n),this.children=[new to(n)],this.children[0].parent=this)},collapse:function(e){for(var t=0;t<this.children.length;++t)this.children[t].collapse(e)},insertInner:function(e,t,n){this.size+=t.length,this.height+=n;for(var r=0;r<this.children.length;++r){var i=this.children[r],o=i.chunkSize();if(e<=o){if(i.insertInner(e,t,n),i.lines&&50<i.lines.length){for(var l=i.lines.length%25+25,s=l;s<i.lines.length;){var a=new to(i.lines.slice(s,s+=25));i.height-=a.height,this.children.splice(++r,0,a),a.parent=this}i.lines=i.lines.slice(0,l),this.maybeSpill()}break}e-=o}},maybeSpill:function(){if(!(this.children.length<=10)){var e=this;do{var t,n=new no(e.children.splice(e.children.length-5,5))}while(e.parent?(e.size-=n.size,e.height-=n.height,t=R(e.parent.children,e),e.parent.children.splice(t+1,0,n)):(((t=new no(e.children)).parent=e).children=[t,n],e=t),n.parent=e.parent,10<e.children.length);e.parent.maybeSpill()}},iterN:function(e,t,n){for(var r=0;r<this.children.length;++r){var i=this.children[r],o=i.chunkSize();if(e<o){var l=Math.min(t,o-e);if(i.iterN(e,l,n))return!0;if(0==(t-=l))break;e=0}else e-=o}}};function ro(e,t,n){if(n)for(var r in n)n.hasOwnProperty(r)&&(this[r]=n[r]);this.doc=e,this.node=t}function io(e,t,n){Vt(t)<(e.curOp&&e.curOp.scrollTop||e.doc.scrollTop)&&br(e,n)}ro.prototype.clear=function(){var e=this.doc.cm,t=this.line.widgets,n=this.line,r=Je(n);if(null!=r&&t){for(var i=0;i<t.length;++i)t[i]==this&&t.splice(i--,1);t.length||(n.widgets=null);var o=gn(this);Qe(n,Math.max(0,n.height-o)),e&&(Er(e,function(){io(e,n,-o),nr(e,r,\"widget\")}),ln(e,\"lineWidgetCleared\",e,this,r))}},ro.prototype.changed=function(){var e=this,t=this.height,n=this.doc.cm,r=this.line;this.height=null;var i=gn(this)-t;i&&(Ut(this.doc,r)||Qe(r,r.height+i),n&&Er(n,function(){n.curOp.forceUpdate=!0,io(n,r,i),ln(n,\"lineWidgetChanged\",n,e,Je(r))}))},ke(ro);var oo=0,lo=function(e,t){this.lines=[],this.type=t,this.doc=e,this.id=++oo};function so(t,n,r,e,i){if(e&&e.shared)return function(e,n,r,i,o){(i=E(i)).shared=!1;var l=[so(e,n,r,i,o)],s=l[0],a=i.widgetNode;return mi(e,function(e){a&&(i.widgetNode=a.cloneNode(!0)),l.push(so(e,ct(e,n),ct(e,r),i,o));for(var t=0;t<e.linked.length;++t)if(e.linked[t].isParent)return;s=Y(l)}),new ao(l,s)}(t,n,r,e,i);if(t.cm&&!t.cm.curOp)return Pr(t.cm,so)(t,n,r,e,i);var o=new lo(t,i),i=it(n,r);if(e&&E(e,o,!1),0<i||0==i&&!1!==o.clearWhenEmpty)return o;if(o.replacedWith&&(o.collapsed=!0,o.widgetNode=N(\"span\",[o.replacedWith],\"CodeMirror-widget\"),e.handleMouseEvents||o.widgetNode.setAttribute(\"cm-ignore-events\",\"true\"),e.insertLeft&&(o.widgetNode.insertLeft=!0)),o.collapsed){if(Rt(t,n.line,n,r,o)||n.line!=r.line&&Rt(t,r.line,n,r,o))throw new Error(\"Inserting collapsed marker partially overlapping an existing one\");kt=!0}o.addToHistory&&Ci(t,{from:n,to:r,origin:\"markText\"},t.sel,NaN);var l,s=n.line,a=t.cm;if(t.iter(s,r.line+1,function(e){var t;a&&o.collapsed&&!a.options.lineWrapping&&zt(e)==a.display.maxLine&&(l=!0),o.collapsed&&s!=n.line&&Qe(e,0),t=e,e=new Tt(o,s==n.line?n.ch:null,s==r.line?r.ch:null),t.markedSpans=t.markedSpans?t.markedSpans.concat([e]):[e],e.marker.attachLine(t),++s}),o.collapsed&&t.iter(n.line,r.line+1,function(e){Ut(t,e)&&Qe(e,0)}),o.clearOnEnter&&ye(o,\"beforeCursorEnter\",function(){return o.clear()}),o.readOnly&&(Lt=!0,(t.history.done.length||t.history.undone.length)&&t.clearHistory()),o.collapsed&&(o.id=++oo,o.atomic=!0),a){if(l&&(a.curOp.updateMaxLine=!0),o.collapsed)tr(a,n.line,r.line+1);else if(o.className||o.startStyle||o.endStyle||o.css||o.attributes||o.title)for(var u=n.line;u<=r.line;u++)nr(a,u,\"text\");o.atomic&&Ri(a.doc),ln(a,\"markerAdded\",a,o)}return o}lo.prototype.clear=function(){if(!this.explicitlyCleared){var e,t=this.doc.cm,n=t&&!t.curOp;n&&Hr(t),!Le(this,\"clear\")||(e=this.find())&&ln(this,\"clear\",e.from,e.to);for(var r=null,i=null,o=0;o<this.lines.length;++o){var l=this.lines[o],s=Mt(l.markedSpans,this);t&&!this.collapsed?nr(t,Je(l),\"text\"):t&&(null!=s.to&&(i=Je(l)),null!=s.from&&(r=Je(l))),l.markedSpans=function(e,t){for(var n,r=0;r<e.length;++r)e[r]!=t&&(n=n||[]).push(e[r]);return n}(l.markedSpans,s),null==s.from&&this.collapsed&&!Ut(this.doc,l)&&t&&Qe(l,Yn(t.display))}if(t&&this.collapsed&&!t.options.lineWrapping)for(var a=0;a<this.lines.length;++a){var u=zt(this.lines[a]),c=Kt(u);c>t.display.maxLineLength&&(t.display.maxLine=u,t.display.maxLineLength=c,t.display.maxLineChanged=!0)}null!=r&&t&&this.collapsed&&tr(t,r,i+1),this.lines.length=0,this.explicitlyCleared=!0,this.atomic&&this.doc.cantEdit&&(this.doc.cantEdit=!1,t&&Ri(t.doc)),t&&ln(t,\"markerCleared\",t,this,r,i),n&&Fr(t),this.parent&&this.parent.clear()}},lo.prototype.find=function(e,t){var n,r;null==e&&\"bookmark\"==this.type&&(e=1);for(var i=0;i<this.lines.length;++i){var o=this.lines[i],l=Mt(o.markedSpans,this);if(null!=l.from&&(n=rt(t?o:Je(o),l.from),-1==e))return n;if(null!=l.to&&(r=rt(t?o:Je(o),l.to),1==e))return r}return n&&{from:n,to:r}},lo.prototype.changed=function(){var n=this,r=this.find(-1,!0),i=this,o=this.doc.cm;r&&o&&Er(o,function(){var e=r.line,t=Je(r.line),t=kn(o,t);t&&(Dn(t),o.curOp.selectionChanged=o.curOp.forceUpdate=!0),o.curOp.updateMaxLine=!0,Ut(i.doc,e)||null==i.height||(t=i.height,i.height=null,(t=gn(i)-t)&&Qe(e,e.height+t)),ln(o,\"markerChanged\",o,n)})},lo.prototype.attachLine=function(e){var t;!this.lines.length&&this.doc.cm&&((t=this.doc.cm.curOp).maybeHiddenMarkers&&-1!=R(t.maybeHiddenMarkers,this)||(t.maybeUnhiddenMarkers||(t.maybeUnhiddenMarkers=[])).push(this)),this.lines.push(e)},lo.prototype.detachLine=function(e){this.lines.splice(R(this.lines,e),1),!this.lines.length&&this.doc.cm&&((e=this.doc.cm.curOp).maybeHiddenMarkers||(e.maybeHiddenMarkers=[])).push(this)},ke(lo);var ao=function(e,t){this.markers=e,this.primary=t;for(var n=0;n<e.length;++n)e[n].parent=this};function uo(e){return e.findMarks(rt(e.first,0),e.clipPos(rt(e.lastLine())),function(e){return e.parent})}ao.prototype.clear=function(){if(!this.explicitlyCleared){this.explicitlyCleared=!0;for(var e=0;e<this.markers.length;++e)this.markers[e].clear();ln(this,\"clear\")}},ao.prototype.find=function(e,t){return this.primary.find(e,t)},ke(ao);var co=0,ho=function(e,t,n,r,i){if(!(this instanceof ho))return new ho(e,t,n,r,i);null==n&&(n=0),no.call(this,[new to([new Xt(\"\",null)])]),this.first=n,this.scrollTop=this.scrollLeft=0,this.cantEdit=!1,this.cleanGeneration=1;n=rt(this.modeFrontier=this.highlightFrontier=n,0);this.sel=si(n),this.history=new bi(null),this.id=++co,this.modeOption=t,this.lineSep=r,this.direction=\"rtl\"==i?\"rtl\":\"ltr\",this.extend=!1,\"string\"==typeof e&&(e=this.splitLines(e)),gi(this,{from:n,to:n,text:e}),Ei(this,si(n),G)};ho.prototype=q(no.prototype,{constructor:ho,iter:function(e,t,n){n?this.iterN(e-this.first,t-e,n):this.iterN(this.first,this.first+this.size,e)},insert:function(e,t){for(var n=0,r=0;r<t.length;++r)n+=t[r].height;this.insertInner(e-this.first,t,n)},remove:function(e,t){this.removeInner(e-this.first,t)},getValue:function(e){var t=Ze(this,this.first,this.first+this.size);return!1===e?t:t.join(e||this.lineSeparator())},setValue:Rr(function(e){var t=rt(this.first,0),n=this.first+this.size-1;ji(this,{from:t,to:rt(n,$e(this,n).text.length),text:this.splitLines(e),origin:\"setValue\",full:!0},!0),this.cm&&xr(this.cm,0,0),Ei(this,si(t),G)}),replaceRange:function(e,t,n,r){qi(this,e,t=ct(this,t),n=n?ct(this,n):t,r)},getRange:function(e,t,n){t=qe(this,ct(this,e),ct(this,t));return!1===n?t:t.join(n||this.lineSeparator())},getLine:function(e){e=this.getLineHandle(e);return e&&e.text},getLineHandle:function(e){if(tt(this,e))return $e(this,e)},getLineNumber:Je,getLineHandleVisualStart:function(e){return\"number\"==typeof e&&(e=$e(this,e)),zt(e)},lineCount:function(){return this.size},firstLine:function(){return this.first},lastLine:function(){return this.first+this.size-1},clipPos:function(e){return ct(this,e)},getCursor:function(e){var t=this.sel.primary(),t=null==e||\"head\"==e?t.head:\"anchor\"==e?t.anchor:\"end\"==e||\"to\"==e||!1===e?t.to():t.from();return t},listSelections:function(){return this.sel.ranges},somethingSelected:function(){return this.sel.somethingSelected()},setCursor:Rr(function(e,t,n){Hi(this,ct(this,\"number\"==typeof e?rt(e,t||0):e),null,n)}),setSelection:Rr(function(e,t,n){Hi(this,ct(this,e),ct(this,t||e),n)}),extendSelection:Rr(function(e,t,n){Oi(this,ct(this,e),t&&ct(this,t),n)}),extendSelections:Rr(function(e,t){Di(this,ht(this,e),t)}),extendSelectionsBy:Rr(function(e,t){Di(this,ht(this,_(this.sel.ranges,e)),t)}),setSelections:Rr(function(e,t,n){if(e.length){for(var r=[],i=0;i<e.length;i++)r[i]=new oi(ct(this,e[i].anchor),ct(this,e[i].head));null==t&&(t=Math.min(e.length-1,this.sel.primIndex)),Ei(this,li(this.cm,r,t),n)}}),addSelection:Rr(function(e,t,n){var r=this.sel.ranges.slice(0);r.push(new oi(ct(this,e),ct(this,t||e))),Ei(this,li(this.cm,r,r.length-1),n)}),getSelection:function(e){for(var t=this.sel.ranges,n=0;n<t.length;n++)var r=qe(this,t[n].from(),t[n].to()),i=i?i.concat(r):r;return!1===e?i:i.join(e||this.lineSeparator())},getSelections:function(e){for(var t=[],n=this.sel.ranges,r=0;r<n.length;r++){var i=qe(this,n[r].from(),n[r].to());!1!==e&&(i=i.join(e||this.lineSeparator())),t[r]=i}return t},replaceSelection:function(e,t,n){for(var r=[],i=0;i<this.sel.ranges.length;i++)r[i]=e;this.replaceSelections(r,t,n||\"+input\")},replaceSelections:Rr(function(e,t,n){for(var r=[],i=this.sel,o=0;o<i.ranges.length;o++){var l=i.ranges[o];r[o]={from:l.from(),to:l.to(),text:this.splitLines(e[o]),origin:n}}for(var t=t&&\"end\"!=t&&function(e,t,n){for(var r=[],i=u=rt(e.first,0),o=0;o<t.length;o++){var l=t[o],s=hi(l.from,u,i),a=hi(ai(l),u,i),u=l.to,i=a;\"around\"==n?(l=it((l=e.sel.ranges[o]).head,l.anchor)<0,r[o]=new oi(l?a:s,l?s:a)):r[o]=new oi(s,s)}return new ii(r,e.sel.primIndex)}(this,r,t),s=r.length-1;0<=s;s--)ji(this,r[s]);t?Fi(this,t):this.cm&&wr(this.cm)}),undo:Rr(function(){Yi(this,\"undo\")}),redo:Rr(function(){Yi(this,\"redo\")}),undoSelection:Rr(function(){Yi(this,\"undo\",!0)}),redoSelection:Rr(function(){Yi(this,\"redo\",!0)}),setExtending:function(e){this.extend=e},getExtending:function(){return this.extend},historySize:function(){for(var e=this.history,t=0,n=0,r=0;r<e.done.length;r++)e.done[r].ranges||++t;for(var i=0;i<e.undone.length;i++)e.undone[i].ranges||++n;return{undo:t,redo:n}},clearHistory:function(){var t=this;this.history=new bi(this.history.maxGeneration),mi(this,function(e){return e.history=t.history},!0)},markClean:function(){this.cleanGeneration=this.changeGeneration(!0)},changeGeneration:function(e){return e&&(this.history.lastOp=this.history.lastSelOp=this.history.lastOrigin=null),this.history.generation},isClean:function(e){return this.history.generation==(e||this.cleanGeneration)},getHistory:function(){return{done:Ni(this.history.done),undone:Ni(this.history.undone)}},setHistory:function(e){var t=this.history=new bi(this.history.maxGeneration);t.done=Ni(e.done.slice(0),null,!0),t.undone=Ni(e.undone.slice(0),null,!0)},setGutterMarker:Rr(function(e,n,r){return eo(this,e,\"gutter\",function(e){var t=e.gutterMarkers||(e.gutterMarkers={});return!(t[n]=r)&&ee(t)&&(e.gutterMarkers=null),1})}),clearGutter:Rr(function(t){var n=this;this.iter(function(e){e.gutterMarkers&&e.gutterMarkers[t]&&eo(n,e,\"gutter\",function(){return e.gutterMarkers[t]=null,ee(e.gutterMarkers)&&(e.gutterMarkers=null),1})})}),lineInfo:function(e){var t;if(\"number\"==typeof e){if(!tt(this,e))return null;if(!(e=$e(this,t=e)))return null}else if(null==(t=Je(e)))return null;return{line:t,handle:e,text:e.text,gutterMarkers:e.gutterMarkers,textClass:e.textClass,bgClass:e.bgClass,wrapClass:e.wrapClass,widgets:e.widgets}},addLineClass:Rr(function(e,n,r){return eo(this,e,\"gutter\"==n?\"gutter\":\"class\",function(e){var t=\"text\"==n?\"textClass\":\"background\"==n?\"bgClass\":\"gutter\"==n?\"gutterClass\":\"wrapClass\";if(e[t]){if(C(r).test(e[t]))return;e[t]+=\" \"+r}else e[t]=r;return 1})}),removeLineClass:Rr(function(e,o,l){return eo(this,e,\"gutter\"==o?\"gutter\":\"class\",function(e){var t=\"text\"==o?\"textClass\":\"background\"==o?\"bgClass\":\"gutter\"==o?\"gutterClass\":\"wrapClass\",n=e[t];if(n){if(null==l)e[t]=null;else{var r=n.match(C(l));if(!r)return;var i=r.index+r[0].length;e[t]=n.slice(0,r.index)+(r.index&&i!=n.length?\" \":\"\")+n.slice(i)||null}return 1}})}),addLineWidget:Rr(function(e,t,n){return e=e,i=new ro(r=this,t,n),(o=r.cm)&&i.noHScroll&&(o.display.alignWidgets=!0),eo(r,e,\"widget\",function(e){var t=e.widgets||(e.widgets=[]);return null==i.insertAt?t.push(i):t.splice(Math.min(t.length,Math.max(0,i.insertAt)),0,i),i.line=e,o&&!Ut(r,e)&&(t=Vt(e)<r.scrollTop,Qe(e,e.height+gn(i)),t&&br(o,i.height),o.curOp.forceUpdate=!0),1}),o&&ln(o,\"lineWidgetAdded\",o,i,\"number\"==typeof e?e:Je(e)),i;var r,i,o}),removeLineWidget:function(e){e.clear()},markText:function(e,t,n){return so(this,ct(this,e),ct(this,t),n,n&&n.type||\"range\")},setBookmark:function(e,t){t={replacedWith:t&&(null==t.nodeType?t.widget:t),insertLeft:t&&t.insertLeft,clearWhenEmpty:!1,shared:t&&t.shared,handleMouseEvents:t&&t.handleMouseEvents};return so(this,e=ct(this,e),e,t,\"bookmark\")},findMarksAt:function(e){var t=[],n=$e(this,(e=ct(this,e)).line).markedSpans;if(n)for(var r=0;r<n.length;++r){var i=n[r];(null==i.from||i.from<=e.ch)&&(null==i.to||i.to>=e.ch)&&t.push(i.marker.parent||i.marker)}return t},findMarks:function(i,o,l){i=ct(this,i),o=ct(this,o);var s=[],a=i.line;return this.iter(i.line,o.line+1,function(e){var t=e.markedSpans;if(t)for(var n=0;n<t.length;n++){var r=t[n];null!=r.to&&a==i.line&&i.ch>=r.to||null==r.from&&a!=i.line||null!=r.from&&a==o.line&&r.from>=o.ch||l&&!l(r.marker)||s.push(r.marker.parent||r.marker)}++a}),s},getAllMarks:function(){var r=[];return this.iter(function(e){var t=e.markedSpans;if(t)for(var n=0;n<t.length;++n)null!=t[n].from&&r.push(t[n].marker)}),r},posFromIndex:function(t){var n,r=this.first,i=this.lineSeparator().length;return this.iter(function(e){e=e.text.length+i;if(t<e)return n=t,!0;t-=e,++r}),ct(this,rt(r,n))},indexFromPos:function(e){var t=(e=ct(this,e)).ch;if(e.line<this.first||e.ch<0)return 0;var n=this.lineSeparator().length;return this.iter(this.first,e.line,function(e){t+=e.text.length+n}),t},copy:function(e){var t=new ho(Ze(this,this.first,this.first+this.size),this.modeOption,this.first,this.lineSep,this.direction);return t.scrollTop=this.scrollTop,t.scrollLeft=this.scrollLeft,t.sel=this.sel,t.extend=!1,e&&(t.history.undoDepth=this.history.undoDepth,t.setHistory(this.getHistory())),t},linkedDoc:function(e){e=e||{};var t=this.first,n=this.first+this.size;null!=e.from&&e.from>t&&(t=e.from),null!=e.to&&e.to<n&&(n=e.to);t=new ho(Ze(this,t,n),e.mode||this.modeOption,t,this.lineSep,this.direction);return e.sharedHist&&(t.history=this.history),(this.linked||(this.linked=[])).push({doc:t,sharedHist:e.sharedHist}),t.linked=[{doc:this,isParent:!0,sharedHist:e.sharedHist}],function(e,t){for(var n=0;n<t.length;n++){var r=t[n],i=r.find(),o=e.clipPos(i.from),i=e.clipPos(i.to);it(o,i)&&(i=so(e,o,i,r.primary,r.primary.type),r.markers.push(i),i.parent=r)}}(t,uo(this)),t},unlinkDoc:function(e){if(e instanceof ul&&(e=e.doc),this.linked)for(var t=0;t<this.linked.length;++t)if(this.linked[t].doc==e){this.linked.splice(t,1),e.unlinkDoc(this),function(o){for(var e=0;e<o.length;e++)!function(e){var t=o[e],n=[t.primary.doc];mi(t.primary.doc,function(e){return n.push(e)});for(var r=0;r<t.markers.length;r++){var i=t.markers[r];-1==R(n,i.doc)&&(i.parent=null,t.markers.splice(r--,1))}}(e)}(uo(this));break}var n;e.history==this.history&&(n=[e.id],mi(e,function(e){return n.push(e.id)},!0),e.history=new bi(null),e.history.done=Ni(this.history.done,n),e.history.undone=Ni(this.history.undone,n))},iterLinkedDocs:function(e){mi(this,e)},getMode:function(){return this.mode},getEditor:function(){return this.cm},splitLines:function(e){return this.lineSep?e.split(this.lineSep):Ee(e)},lineSeparator:function(){return this.lineSep||\"\\n\"},setDirection:Rr(function(e){var t;\"rtl\"!=e&&(e=\"ltr\"),e!=this.direction&&(this.direction=e,this.iter(function(e){return e.order=null}),this.cm&&Er(t=this.cm,function(){yi(t),tr(t)}))})}),ho.prototype.eachLine=ho.prototype.iter;var fo=0;function po(e){var r=this;if(go(r),!Ce(r,e)&&!mn(r.display,e)){Te(e),w&&(fo=+new Date);var t=Jn(r,e,!0),n=e.dataTransfer.files;if(t&&!r.isReadOnly())if(n&&n.length&&window.FileReader&&window.File)for(var i=n.length,o=Array(i),l=0,s=function(){++l==i&&Pr(r,function(){var e={from:t=ct(r.doc,t),to:t,text:r.doc.splitLines(o.filter(function(e){return null!=e}).join(r.doc.lineSeparator())),origin:\"paste\"};ji(r.doc,e),Fi(r.doc,si(ct(r.doc,t),ct(r.doc,ai(e))))})()},a=0;a<n.length;a++)!function(e,t){var n;r.options.allowDropFileTypes&&-1==R(r.options.allowDropFileTypes,e.type)?s():((n=new FileReader).onerror=s,n.onload=function(){var e=n.result;/[\\x00-\\x08\\x0e-\\x1f]{2}/.test(e)||(o[t]=e),s()},n.readAsText(e))}(n[a],a);else{if(r.state.draggingText&&-1<r.doc.sel.contains(t))return r.state.draggingText(e),void setTimeout(function(){return r.display.input.focus()},20);try{var u,c=e.dataTransfer.getData(\"Text\");if(c){if(r.state.draggingText&&!r.state.draggingText.copy&&(u=r.listSelections()),Pi(r.doc,si(t,t)),u)for(var h=0;h<u.length;++h)qi(r.doc,\"\",u[h].anchor,u[h].head,\"drag\");r.replaceSelection(c,\"around\",\"paste\"),r.display.input.focus()}}catch(e){}}}}function go(e){e.display.dragCursor&&(e.display.lineSpace.removeChild(e.display.dragCursor),e.display.dragCursor=null)}function mo(t){if(document.getElementsByClassName){for(var e=document.getElementsByClassName(\"CodeMirror\"),n=[],r=0;r<e.length;r++){var i=e[r].CodeMirror;i&&n.push(i)}n.length&&n[0].operation(function(){for(var e=0;e<n.length;e++)t(n[e])})}}var vo=!1;function yo(){var e;vo||(ye(window,\"resize\",function(){null==e&&(e=setTimeout(function(){e=null,mo(bo)},100))}),ye(window,\"blur\",function(){return mo(pr)}),vo=!0)}function bo(e){var t=e.display;t.cachedCharWidth=t.cachedTextHeight=t.cachedPaddingH=null,t.scrollbarsClipped=!1,e.setSize()}for(var wo={3:\"Pause\",8:\"Backspace\",9:\"Tab\",13:\"Enter\",16:\"Shift\",17:\"Ctrl\",18:\"Alt\",19:\"Pause\",20:\"CapsLock\",27:\"Esc\",32:\"Space\",33:\"PageUp\",34:\"PageDown\",35:\"End\",36:\"Home\",37:\"Left\",38:\"Up\",39:\"Right\",40:\"Down\",44:\"PrintScrn\",45:\"Insert\",46:\"Delete\",59:\";\",61:\"=\",91:\"Mod\",92:\"Mod\",93:\"Mod\",106:\"*\",107:\"=\",109:\"-\",110:\".\",111:\"/\",145:\"ScrollLock\",173:\"-\",186:\";\",187:\"=\",188:\",\",189:\"-\",190:\".\",191:\"/\",192:\"`\",219:\"[\",220:\"\\\\\",221:\"]\",222:\"'\",224:\"Mod\",63232:\"Up\",63233:\"Down\",63234:\"Left\",63235:\"Right\",63272:\"Delete\",63273:\"Home\",63275:\"End\",63276:\"PageUp\",63277:\"PageDown\",63302:\"Insert\"},xo=0;xo<10;xo++)wo[xo+48]=wo[xo+96]=String(xo);for(var Co=65;Co<=90;Co++)wo[Co]=String.fromCharCode(Co);for(var So=1;So<=12;So++)wo[So+111]=wo[So+63235]=\"F\"+So;var Lo={};function ko(e){var t,n,r,i,o=e.split(/-(?!$)/);e=o[o.length-1];for(var l=0;l<o.length-1;l++){var s=o[l];if(/^(cmd|meta|m)$/i.test(s))i=!0;else if(/^a(lt)?$/i.test(s))t=!0;else if(/^(c|ctrl|control)$/i.test(s))n=!0;else{if(!/^s(hift)?$/i.test(s))throw new Error(\"Unrecognized modifier name: \"+s);r=!0}}return t&&(e=\"Alt-\"+e),n&&(e=\"Ctrl-\"+e),i&&(e=\"Cmd-\"+e),r&&(e=\"Shift-\"+e),e}function To(e){var t,n,r={};for(t in e)if(e.hasOwnProperty(t)){var i=e[t];if(!/^(name|fallthrough|(de|at)tach)$/.test(t))if(\"...\"!=i){for(var o=_(t.split(\" \"),ko),l=0;l<o.length;l++){var s=void 0,a=void 0,s=l==o.length-1?(a=o.join(\" \"),i):(a=o.slice(0,l+1).join(\" \"),\"...\"),u=r[a];if(u){if(u!=s)throw new Error(\"Inconsistent bindings for \"+a)}else r[a]=s}delete e[t]}else delete e[t]}for(n in r)e[n]=r[n];return e}function Mo(e,t,n,r){var i=(t=Do(t)).call?t.call(e,r):t[e];if(!1===i)return\"nothing\";if(\"...\"===i)return\"multi\";if(null!=i&&n(i))return\"handled\";if(t.fallthrough){if(\"[object Array]\"!=Object.prototype.toString.call(t.fallthrough))return Mo(e,t.fallthrough,n,r);for(var o=0;o<t.fallthrough.length;o++){var l=Mo(e,t.fallthrough[o],n,r);if(l)return l}}}function No(e){e=\"string\"==typeof e?e:wo[e.keyCode];return\"Ctrl\"==e||\"Alt\"==e||\"Shift\"==e||\"Mod\"==e}function Ao(e,t,n){var r=e;return t.altKey&&\"Alt\"!=r&&(e=\"Alt-\"+e),(b?t.metaKey:t.ctrlKey)&&\"Ctrl\"!=r&&(e=\"Ctrl-\"+e),(b?t.ctrlKey:t.metaKey)&&\"Mod\"!=r&&(e=\"Cmd-\"+e),!n&&t.shiftKey&&\"Shift\"!=r&&(e=\"Shift-\"+e),e}function Oo(e,t){if(p&&34==e.keyCode&&e.char)return!1;var n=wo[e.keyCode];return null!=n&&!e.altGraphKey&&(3==e.keyCode&&e.code&&(n=e.code),Ao(n,e,t))}function Do(e){return\"string\"==typeof e?Lo[e]:e}function Wo(t,e){for(var n=t.doc.sel.ranges,r=[],i=0;i<n.length;i++){for(var o=e(n[i]);r.length&&it(o.from,Y(r).to)<=0;){var l=r.pop();if(it(l.from,o.from)<0){o.from=l.from;break}}r.push(o)}Er(t,function(){for(var e=r.length-1;0<=e;e--)qi(t.doc,\"\",r[e].from,r[e].to,\"+delete\");wr(t)})}function Ho(e,t,n){n=re(e.text,t+n,n);return n<0||n>e.text.length?null:n}function Fo(e,t,n){e=Ho(e,t.ch,n);return null==e?null:new rt(t.line,e,n<0?\"after\":\"before\")}function Eo(e,t,n,r,i){if(e){\"rtl\"==t.doc.direction&&(i=-i);var o=me(n,t.doc.direction);if(o){var l,s,a,e=i<0?Y(o):o[0],o=i<0==(1==e.level)?\"after\":\"before\";return 0<e.level||\"rtl\"==t.doc.direction?(l=Tn(t,n),s=i<0?n.text.length-1:0,a=Mn(t,l,s).top,s=ie(function(e){return Mn(t,l,e).top==a},i<0==(1==e.level)?e.from:e.to-1,s),\"before\"==o&&(s=Ho(n,s,1))):s=i<0?e.to:e.from,new rt(r,s,o)}}return new rt(r,i<0?n.text.length:0,i<0?\"before\":\"after\")}function Po(t,n,s,e){var a=me(n,t.doc.direction);if(!a)return Fo(n,s,e);s.ch>=n.text.length?(s.ch=n.text.length,s.sticky=\"before\"):s.ch<=0&&(s.ch=0,s.sticky=\"after\");var r=le(a,s.ch,s.sticky),i=a[r];if(\"ltr\"==t.doc.direction&&i.level%2==0&&(0<e?i.to>s.ch:i.from<s.ch))return Fo(n,s,e);function u(e,t){return Ho(n,e instanceof rt?e.ch:e,t)}function o(e){return t.options.lineWrapping?(l=l||Tn(t,n),jn(t,n,l,e)):{begin:0,end:n.text.length}}var l,c=o(\"before\"==s.sticky?u(s,-1):s.ch);if(\"rtl\"==t.doc.direction||1==i.level){var h=1==i.level==e<0,d=u(s,h?1:-1);if(null!=d&&(h?d<=i.to&&d<=c.end:d>=i.from&&d>=c.begin)){var f=h?\"before\":\"after\";return new rt(s.line,d,f)}}f=function(e,t,n){for(var r=function(e,t){return t?new rt(s.line,u(e,1),\"before\"):new rt(s.line,e,\"after\")};0<=e&&e<a.length;e+=t){var i=a[e],o=0<t==(1!=i.level),l=o?n.begin:u(n.end,-1);if(i.from<=l&&l<i.to)return r(l,o);if(l=o?i.from:u(i.to,-1),n.begin<=l&&l<n.end)return r(l,o)}},r=f(r+e,e,c);if(r)return r;c=0<e?c.end:u(c.begin,-1);return null==c||0<e&&c==n.text.length||!(r=f(0<e?0:a.length-1,e,o(c)))?null:r}Lo.basic={Left:\"goCharLeft\",Right:\"goCharRight\",Up:\"goLineUp\",Down:\"goLineDown\",End:\"goLineEnd\",Home:\"goLineStartSmart\",PageUp:\"goPageUp\",PageDown:\"goPageDown\",Delete:\"delCharAfter\",Backspace:\"delCharBefore\",\"Shift-Backspace\":\"delCharBefore\",Tab:\"defaultTab\",\"Shift-Tab\":\"indentAuto\",Enter:\"newlineAndIndent\",Insert:\"toggleOverwrite\",Esc:\"singleSelection\"},Lo.pcDefault={\"Ctrl-A\":\"selectAll\",\"Ctrl-D\":\"deleteLine\",\"Ctrl-Z\":\"undo\",\"Shift-Ctrl-Z\":\"redo\",\"Ctrl-Y\":\"redo\",\"Ctrl-Home\":\"goDocStart\",\"Ctrl-End\":\"goDocEnd\",\"Ctrl-Up\":\"goLineUp\",\"Ctrl-Down\":\"goLineDown\",\"Ctrl-Left\":\"goGroupLeft\",\"Ctrl-Right\":\"goGroupRight\",\"Alt-Left\":\"goLineStart\",\"Alt-Right\":\"goLineEnd\",\"Ctrl-Backspace\":\"delGroupBefore\",\"Ctrl-Delete\":\"delGroupAfter\",\"Ctrl-S\":\"save\",\"Ctrl-F\":\"find\",\"Ctrl-G\":\"findNext\",\"Shift-Ctrl-G\":\"findPrev\",\"Shift-Ctrl-F\":\"replace\",\"Shift-Ctrl-R\":\"replaceAll\",\"Ctrl-[\":\"indentLess\",\"Ctrl-]\":\"indentMore\",\"Ctrl-U\":\"undoSelection\",\"Shift-Ctrl-U\":\"redoSelection\",\"Alt-U\":\"redoSelection\",fallthrough:\"basic\"},Lo.emacsy={\"Ctrl-F\":\"goCharRight\",\"Ctrl-B\":\"goCharLeft\",\"Ctrl-P\":\"goLineUp\",\"Ctrl-N\":\"goLineDown\",\"Alt-F\":\"goWordRight\",\"Alt-B\":\"goWordLeft\",\"Ctrl-A\":\"goLineStart\",\"Ctrl-E\":\"goLineEnd\",\"Ctrl-V\":\"goPageDown\",\"Shift-Ctrl-V\":\"goPageUp\",\"Ctrl-D\":\"delCharAfter\",\"Ctrl-H\":\"delCharBefore\",\"Alt-D\":\"delWordAfter\",\"Alt-Backspace\":\"delWordBefore\",\"Ctrl-K\":\"killLine\",\"Ctrl-T\":\"transposeChars\",\"Ctrl-O\":\"openLine\"},Lo.macDefault={\"Cmd-A\":\"selectAll\",\"Cmd-D\":\"deleteLine\",\"Cmd-Z\":\"undo\",\"Shift-Cmd-Z\":\"redo\",\"Cmd-Y\":\"redo\",\"Cmd-Home\":\"goDocStart\",\"Cmd-Up\":\"goDocStart\",\"Cmd-End\":\"goDocEnd\",\"Cmd-Down\":\"goDocEnd\",\"Alt-Left\":\"goGroupLeft\",\"Alt-Right\":\"goGroupRight\",\"Cmd-Left\":\"goLineLeft\",\"Cmd-Right\":\"goLineRight\",\"Alt-Backspace\":\"delGroupBefore\",\"Ctrl-Alt-Backspace\":\"delGroupAfter\",\"Alt-Delete\":\"delGroupAfter\",\"Cmd-S\":\"save\",\"Cmd-F\":\"find\",\"Cmd-G\":\"findNext\",\"Shift-Cmd-G\":\"findPrev\",\"Cmd-Alt-F\":\"replace\",\"Shift-Cmd-Alt-F\":\"replaceAll\",\"Cmd-[\":\"indentLess\",\"Cmd-]\":\"indentMore\",\"Cmd-Backspace\":\"delWrappedLineLeft\",\"Cmd-Delete\":\"delWrappedLineRight\",\"Cmd-U\":\"undoSelection\",\"Shift-Cmd-U\":\"redoSelection\",\"Ctrl-Up\":\"goDocStart\",\"Ctrl-Down\":\"goDocEnd\",fallthrough:[\"basic\",\"emacsy\"]},Lo.default=g?Lo.macDefault:Lo.pcDefault;var Io={selectAll:Vi,singleSelection:function(e){return e.setSelection(e.getCursor(\"anchor\"),e.getCursor(\"head\"),G)},killLine:function(n){return Wo(n,function(e){if(e.empty()){var t=$e(n.doc,e.head.line).text.length;return e.head.ch==t&&e.head.line<n.lastLine()?{from:e.head,to:rt(e.head.line+1,0)}:{from:e.head,to:rt(e.head.line,t)}}return{from:e.from(),to:e.to()}})},deleteLine:function(t){return Wo(t,function(e){return{from:rt(e.from().line,0),to:ct(t.doc,rt(e.to().line+1,0))}})},delLineLeft:function(e){return Wo(e,function(e){return{from:rt(e.from().line,0),to:e.from()}})},delWrappedLineLeft:function(n){return Wo(n,function(e){var t=n.charCoords(e.head,\"div\").top+5;return{from:n.coordsChar({left:0,top:t},\"div\"),to:e.from()}})},delWrappedLineRight:function(n){return Wo(n,function(e){var t=n.charCoords(e.head,\"div\").top+5,t=n.coordsChar({left:n.display.lineDiv.offsetWidth+100,top:t},\"div\");return{from:e.from(),to:t}})},undo:function(e){return e.undo()},redo:function(e){return e.redo()},undoSelection:function(e){return e.undoSelection()},redoSelection:function(e){return e.redoSelection()},goDocStart:function(e){return e.extendSelection(rt(e.firstLine(),0))},goDocEnd:function(e){return e.extendSelection(rt(e.lastLine()))},goLineStart:function(t){return t.extendSelectionsBy(function(e){return Ro(t,e.head.line)},{origin:\"+move\",bias:1})},goLineStartSmart:function(t){return t.extendSelectionsBy(function(e){return zo(t,e.head)},{origin:\"+move\",bias:1})},goLineEnd:function(t){return t.extendSelectionsBy(function(e){return function(e,t){var n=$e(e.doc,t),r=function(e){for(var t;t=It(e);)e=t.find(1,!0).line;return e}(n);r!=n&&(t=Je(r));return Eo(!0,e,n,t,-1)}(t,e.head.line)},{origin:\"+move\",bias:-1})},goLineRight:function(t){return t.extendSelectionsBy(function(e){e=t.cursorCoords(e.head,\"div\").top+5;return t.coordsChar({left:t.display.lineDiv.offsetWidth+100,top:e},\"div\")},V)},goLineLeft:function(t){return t.extendSelectionsBy(function(e){e=t.cursorCoords(e.head,\"div\").top+5;return t.coordsChar({left:0,top:e},\"div\")},V)},goLineLeftSmart:function(n){return n.extendSelectionsBy(function(e){var t=n.cursorCoords(e.head,\"div\").top+5,t=n.coordsChar({left:0,top:t},\"div\");return t.ch<n.getLine(t.line).search(/\\S/)?zo(n,e.head):t},V)},goLineUp:function(e){return e.moveV(-1,\"line\")},goLineDown:function(e){return e.moveV(1,\"line\")},goPageUp:function(e){return e.moveV(-1,\"page\")},goPageDown:function(e){return e.moveV(1,\"page\")},goCharLeft:function(e){return e.moveH(-1,\"char\")},goCharRight:function(e){return e.moveH(1,\"char\")},goColumnLeft:function(e){return e.moveH(-1,\"column\")},goColumnRight:function(e){return e.moveH(1,\"column\")},goWordLeft:function(e){return e.moveH(-1,\"word\")},goGroupRight:function(e){return e.moveH(1,\"group\")},goGroupLeft:function(e){return e.moveH(-1,\"group\")},goWordRight:function(e){return e.moveH(1,\"word\")},delCharBefore:function(e){return e.deleteH(-1,\"codepoint\")},delCharAfter:function(e){return e.deleteH(1,\"char\")},delWordBefore:function(e){return e.deleteH(-1,\"word\")},delWordAfter:function(e){return e.deleteH(1,\"word\")},delGroupBefore:function(e){return e.deleteH(-1,\"group\")},delGroupAfter:function(e){return e.deleteH(1,\"group\")},indentAuto:function(e){return e.indentSelection(\"smart\")},indentMore:function(e){return e.indentSelection(\"add\")},indentLess:function(e){return e.indentSelection(\"subtract\")},insertTab:function(e){return e.replaceSelection(\"\\t\")},insertSoftTab:function(e){for(var t=[],n=e.listSelections(),r=e.options.tabSize,i=0;i<n.length;i++){var o=n[i].from(),o=P(e.getLine(o.line),o.ch,r);t.push(X(r-o%r))}e.replaceSelections(t)},defaultTab:function(e){e.somethingSelected()?e.indentSelection(\"add\"):e.execCommand(\"insertTab\")},transposeChars:function(l){return Er(l,function(){for(var e,t,n,r=l.listSelections(),i=[],o=0;o<r.length;o++)r[o].empty()&&(e=r[o].head,(t=$e(l.doc,e.line).text)&&(e.ch==t.length&&(e=new rt(e.line,e.ch-1)),0<e.ch?(e=new rt(e.line,e.ch+1),l.replaceRange(t.charAt(e.ch-1)+t.charAt(e.ch-2),rt(e.line,e.ch-2),e,\"+transpose\")):e.line>l.doc.first&&((n=$e(l.doc,e.line-1).text)&&(e=new rt(e.line,1),l.replaceRange(t.charAt(0)+l.doc.lineSeparator()+n.charAt(n.length-1),rt(e.line-1,n.length-1),e,\"+transpose\")))),i.push(new oi(e,e)));l.setSelections(i)})},newlineAndIndent:function(r){return Er(r,function(){for(var e=r.listSelections(),t=e.length-1;0<=t;t--)r.replaceRange(r.doc.lineSeparator(),e[t].anchor,e[t].head,\"+input\");e=r.listSelections();for(var n=0;n<e.length;n++)r.indentLine(e[n].from().line,null,!0);wr(r)})},openLine:function(e){return e.replaceSelection(\"\\n\",\"start\")},toggleOverwrite:function(e){return e.toggleOverwrite()}};function Ro(e,t){var n=$e(e.doc,t),r=zt(n);return r!=n&&(t=Je(r)),Eo(!0,e,r,t,1)}function zo(e,t){var n=Ro(e,t.line),r=$e(e.doc,n.line),e=me(r,e.doc.direction);if(e&&0!=e[0].level)return n;r=Math.max(n.ch,r.text.search(/\\S/)),t=t.line==n.line&&t.ch<=r&&t.ch;return rt(n.line,t?0:r,n.sticky)}function Bo(e,t,n){if(\"string\"==typeof t&&!(t=Io[t]))return!1;e.display.input.ensurePolled();var r=e.display.shift,i=!1;try{e.isReadOnly()&&(e.state.suppressEdits=!0),n&&(e.display.shift=!1),i=t(e)!=B}finally{e.display.shift=r,e.state.suppressEdits=!1}return i}var Go=new I;function Uo(e,t,n,r){var i=e.state.keySeq;if(i){if(No(t))return\"handled\";if(/\\'$/.test(t)?e.state.keySeq=null:Go.set(50,function(){e.state.keySeq==i&&(e.state.keySeq=null,e.display.input.reset())}),Vo(e,i+\" \"+t,n,r))return!0}return Vo(e,t,n,r)}function Vo(e,t,n,r){r=function(e,t,n){for(var r=0;r<e.state.keyMaps.length;r++){var i=Mo(t,e.state.keyMaps[r],n,e);if(i)return i}return e.options.extraKeys&&Mo(t,e.options.extraKeys,n,e)||Mo(t,e.options.keyMap,n,e)}(e,t,r);return\"multi\"==r&&(e.state.keySeq=t),\"handled\"==r&&ln(e,\"keyHandled\",e,t,n),\"handled\"!=r&&\"multi\"!=r||(Te(n),cr(e)),!!r}function Ko(t,e){var n=Oo(e,!0);return!!n&&(e.shiftKey&&!t.state.keySeq?Uo(t,\"Shift-\"+n,e,function(e){return Bo(t,e,!0)})||Uo(t,n,e,function(e){if(\"string\"==typeof e?/^go[A-Z]/.test(e):e.motion)return Bo(t,e)}):Uo(t,n,e,function(e){return Bo(t,e)}))}var jo=null;function Xo(e){var t,n,r,i=this;function o(e){18!=e.keyCode&&e.altKey||(L(r,\"CodeMirror-crosshair\"),we(document,\"keyup\",o),we(document,\"mouseover\",o))}e.target&&e.target!=i.display.input.getField()||(i.curOp.focus=O(),Ce(i,e)||(w&&v<11&&27==e.keyCode&&(e.returnValue=!1),t=e.keyCode,i.display.shift=16==t||e.shiftKey,n=Ko(i,e),p&&(jo=n?t:null,!n&&88==t&&!Ie&&(g?e.metaKey:e.ctrlKey)&&i.replaceSelection(\"\",null,\"cut\")),d&&!g&&!n&&46==t&&e.shiftKey&&!e.ctrlKey&&document.execCommand&&document.execCommand(\"cut\"),18!=t||/\\bCodeMirror-crosshair\\b/.test(i.display.lineDiv.className)||(D(r=i.display.lineDiv,\"CodeMirror-crosshair\"),ye(document,\"keyup\",o),ye(document,\"mouseover\",o))))}function Yo(e){16==e.keyCode&&(this.doc.sel.shift=!1),Ce(this,e)}function _o(e){var t=this;if(!(e.target&&e.target!=t.display.input.getField()||mn(t.display,e)||Ce(t,e)||e.ctrlKey&&!e.altKey||g&&e.metaKey)){var n,r=e.keyCode,i=e.charCode;if(p&&r==jo)return jo=null,void Te(e);p&&(!e.which||e.which<10)&&Ko(t,e)||\"\\b\"!=(i=String.fromCharCode(null==i?r:i))&&(Uo(n=t,\"'\"+i+\"'\",e,function(e){return Bo(n,e,!0)})||t.display.input.onKeyPress(e))}}var $o,qo,Zo=function(e,t,n){this.time=e,this.pos=t,this.button=n};function Qo(e){var t,n,r,i,o,l=this,s=l.display;Ce(l,e)||s.activeTouch&&s.input.supportsTouch()||(s.input.ensurePolled(),s.shift=e.shiftKey,mn(s,e)?f||(s.scroller.draggable=!1,setTimeout(function(){return s.scroller.draggable=!0},100)):tl(l,e)||(t=Jn(l,e),n=De(e),i=t?(r=t,i=n,o=+new Date,qo&&qo.compare(o,r,i)?($o=qo=null,\"triple\"):$o&&$o.compare(o,r,i)?(qo=new Zo(o,r,i),$o=null,\"double\"):($o=new Zo(o,r,i),qo=null,\"single\")):\"single\",window.focus(),1==n&&l.state.selectingText&&l.state.selectingText(e),t&&function(n,e,r,t,i){var o=\"Click\";\"double\"==t?o=\"Double\"+o:\"triple\"==t&&(o=\"Triple\"+o);return Uo(n,Ao(o=(1==e?\"Left\":2==e?\"Middle\":\"Right\")+o,i),i,function(e){if(\"string\"==typeof e&&(e=Io[e]),!e)return!1;var t=!1;try{n.isReadOnly()&&(n.state.suppressEdits=!0),t=e(n,r)!=B}finally{n.state.suppressEdits=!1}return t})}(l,n,t,i,e)||(1==n?t?function(e,t,n,r){w?setTimeout(F(hr,e),0):e.curOp.focus=O();var i,o=function(e,t,n){var r=e.getOption(\"configureMouse\"),i=r?r(e,t,n):{};null==i.unit&&(r=m?n.shiftKey&&n.metaKey:n.altKey,i.unit=r?\"rectangle\":\"single\"==t?\"char\":\"double\"==t?\"word\":\"line\");null!=i.extend&&!e.doc.extend||(i.extend=e.doc.extend||n.shiftKey);null==i.addNew&&(i.addNew=g?n.metaKey:n.ctrlKey);null==i.moveOnDrag&&(i.moveOnDrag=!(g?n.altKey:n.ctrlKey));return i}(e,n,r),l=e.doc.sel;(e.options.dragDrop&&Fe&&!e.isReadOnly()&&\"single\"==n&&-1<(i=l.contains(t))&&(it((i=l.ranges[i]).from(),t)<0||0<t.xRel)&&(0<it(i.to(),t)||t.xRel<0)?function(t,n,r,i){var o=t.display,l=!1,s=Pr(t,function(e){f&&(o.scroller.draggable=!1),t.state.draggingText=!1,t.state.delayingBlurEvent&&(t.hasFocus()?t.state.delayingBlurEvent=!1:dr(t)),we(o.wrapper.ownerDocument,\"mouseup\",s),we(o.wrapper.ownerDocument,\"mousemove\",a),we(o.scroller,\"dragstart\",u),we(o.scroller,\"drop\",s),l||(Te(e),i.addNew||Oi(t.doc,r,null,null,i.extend),f&&!c||w&&9==v?setTimeout(function(){o.wrapper.ownerDocument.body.focus({preventScroll:!0}),o.input.focus()},20):o.input.focus())}),a=function(e){l=l||10<=Math.abs(n.clientX-e.clientX)+Math.abs(n.clientY-e.clientY)},u=function(){return l=!0};f&&(o.scroller.draggable=!0);(t.state.draggingText=s).copy=!i.moveOnDrag,ye(o.wrapper.ownerDocument,\"mouseup\",s),ye(o.wrapper.ownerDocument,\"mousemove\",a),ye(o.scroller,\"dragstart\",u),ye(o.scroller,\"drop\",s),t.state.delayingBlurEvent=!0,setTimeout(function(){return o.input.focus()},20),o.scroller.dragDrop&&o.scroller.dragDrop()}:function(d,e,f,p){w&&dr(d);var l=d.display,g=d.doc;Te(e);var m,v,y=g.sel,t=y.ranges;p.addNew&&!p.extend?(v=g.sel.contains(f),m=-1<v?t[v]:new oi(f,f)):(m=g.sel.primary(),v=g.sel.primIndex);\"rectangle\"==p.unit?(p.addNew||(m=new oi(f,f)),f=Jn(d,e,!0,!0),v=-1):(e=Jo(d,f,p.unit),m=p.extend?Ai(m,e.anchor,e.head,p.extend):e);p.addNew?-1==v?(v=t.length,Ei(g,li(d,t.concat([m]),v),{scroll:!1,origin:\"*mouse\"})):1<t.length&&t[v].empty()&&\"char\"==p.unit&&!p.extend?(Ei(g,li(d,t.slice(0,v).concat(t.slice(v+1)),0),{scroll:!1,origin:\"*mouse\"}),y=g.sel):Wi(g,v,m,U):(Ei(g,new ii([m],v=0),U),y=g.sel);var b=f;function s(e){if(0!=it(b,e))if(b=e,\"rectangle\"==p.unit){for(var t=[],n=d.options.tabSize,r=P($e(g,f.line).text,f.ch,n),i=P($e(g,e.line).text,e.ch,n),o=Math.min(r,i),l=Math.max(r,i),s=Math.min(f.line,e.line),a=Math.min(d.lastLine(),Math.max(f.line,e.line));s<=a;s++){var u=$e(g,s).text,c=K(u,o,n);o==l?t.push(new oi(rt(s,c),rt(s,c))):u.length>c&&t.push(new oi(rt(s,c),rt(s,K(u,l,n))))}t.length||t.push(new oi(f,f)),Ei(g,li(d,y.ranges.slice(0,v).concat(t),v),{origin:\"*mouse\",scroll:!1}),d.scrollIntoView(e)}else{var h,r=m,i=Jo(d,e,p.unit),e=r.anchor,e=0<it(i.anchor,e)?(h=i.head,at(r.from(),i.anchor)):(h=i.anchor,st(r.to(),i.head)),i=y.ranges.slice(0);i[v]=function(e,t){var n=t.anchor,r=t.head,i=$e(e.doc,n.line);if(0==it(n,r)&&n.sticky==r.sticky)return t;var o=me(i);if(!o)return t;var l=le(o,n.ch,n.sticky),s=o[l];if(s.from!=n.ch&&s.to!=n.ch)return t;i=l+(s.from==n.ch==(1!=s.level)?0:1);if(0==i||i==o.length)return t;a=r.line!=n.line?0<(r.line-n.line)*(\"ltr\"==e.doc.direction?1:-1):(e=le(o,r.ch,r.sticky),a=e-l||(r.ch-n.ch)*(1==s.level?-1:1),e==i-1||e==i?a<0:0<a);var i=o[i+(a?-1:0)],a=a==(1==i.level),i=a?i.from:i.to,a=a?\"after\":\"before\";return n.ch==i&&n.sticky==a?t:new oi(new rt(n.line,i,a),r)}(d,new oi(ct(g,e),h)),Ei(g,li(d,i,v),U)}}var a=l.wrapper.getBoundingClientRect(),u=0;function n(e){d.state.selectingText=!1,u=1/0,e&&(Te(e),l.input.focus()),we(l.wrapper.ownerDocument,\"mousemove\",r),we(l.wrapper.ownerDocument,\"mouseup\",i),g.history.lastSelOrigin=null}var r=Pr(d,function(e){(0!==e.buttons&&De(e)?function e(t){var n,r,i=++u,o=Jn(d,t,!0,\"rectangle\"==p.unit);o&&(0!=it(o,b)?(d.curOp.focus=O(),s(o),n=vr(l,g),(o.line>=n.to||o.line<n.from)&&setTimeout(Pr(d,function(){u==i&&e(t)}),150)):(r=t.clientY<a.top?-20:t.clientY>a.bottom?20:0)&&setTimeout(Pr(d,function(){u==i&&(l.scroller.scrollTop+=r,e(t))}),50))}:n)(e)}),i=Pr(d,n);d.state.selectingText=i,ye(l.wrapper.ownerDocument,\"mousemove\",r),ye(l.wrapper.ownerDocument,\"mouseup\",i)})(e,r,t,o)}(l,t,i,e):Oe(e)==s.scroller&&Te(e):2==n?(t&&Oi(l.doc,t),setTimeout(function(){return s.input.focus()},20)):3==n&&(x?l.display.input.onContextMenu(e):dr(l)))))}function Jo(e,t,n){if(\"char\"==n)return new oi(t,t);if(\"word\"==n)return e.findWordAt(t);if(\"line\"==n)return new oi(rt(t.line,0),ct(e.doc,rt(t.line+1,0)));t=n(e,t);return new oi(t.from,t.to)}function el(e,t,n,r){var i,o;if(t.touches)i=t.touches[0].clientX,o=t.touches[0].clientY;else try{i=t.clientX,o=t.clientY}catch(e){return!1}if(i>=Math.floor(e.display.gutters.getBoundingClientRect().right))return!1;r&&Te(t);var l=e.display,r=l.lineDiv.getBoundingClientRect();if(o>r.bottom||!Le(e,n))return Ne(t);o-=r.top-l.viewOffset;for(var s=0;s<e.display.gutterSpecs.length;++s){var a=l.gutters.childNodes[s];if(a&&a.getBoundingClientRect().right>=i)return xe(e,n,e,et(e.doc,o),e.display.gutterSpecs[s].className,t),Ne(t)}}function tl(e,t){return el(e,t,\"gutterClick\",!0)}function nl(e,t){var n,r;mn(e.display,t)||(r=t,Le(n=e,\"gutterContextMenu\")&&el(n,r,\"gutterContextMenu\",!1))||Ce(e,t,\"contextmenu\")||x||e.display.input.onContextMenu(t)}function rl(e){e.display.wrapper.className=e.display.wrapper.className.replace(/\\s*cm-s-\\S+/g,\"\")+e.options.theme.replace(/(^|\\s)\\s*/g,\" cm-s-\"),Hn(e)}Zo.prototype.compare=function(e,t,n){return this.time+400>e&&0==it(t,this.pos)&&n==this.button};var il={toString:function(){return\"CodeMirror.Init\"}},ol={},ll={};function sl(e,t,n){!t!=!(n&&n!=il)&&(n=e.display.dragFunctions,(t=t?ye:we)(e.display.scroller,\"dragstart\",n.start),t(e.display.scroller,\"dragenter\",n.enter),t(e.display.scroller,\"dragover\",n.over),t(e.display.scroller,\"dragleave\",n.leave),t(e.display.scroller,\"drop\",n.drop))}function al(e){e.options.lineWrapping?(D(e.display.wrapper,\"CodeMirror-wrap\"),e.display.sizer.style.minWidth=\"\",e.display.sizerWidth=null):(L(e.display.wrapper,\"CodeMirror-wrap\"),jt(e)),Qn(e),tr(e),Hn(e),setTimeout(function(){return Nr(e)},100)}function ul(e,t){var n=this;if(!(this instanceof ul))return new ul(e,t);this.options=t=t?E(t):{},E(ol,t,!1);var r=t.value;\"string\"==typeof r?r=new ho(r,t.mode,null,t.lineSeparator,t.direction):t.mode&&(r.modeOption=t.mode),this.doc=r;var i,o=new ul.inputStyles[t.inputStyle](this),o=this.display=new Qr(e,r,o,t);for(i in rl(o.wrapper.CodeMirror=this),t.lineWrapping&&(this.display.wrapper.className+=\" CodeMirror-wrap\"),Dr(this),this.state={keyMaps:[],overlays:[],modeGen:0,overwrite:!1,delayingBlurEvent:!1,focused:!1,suppressEdits:!1,pasteIncoming:-1,cutIncoming:-1,selectingText:!1,draggingText:!1,highlight:new I,keySeq:null,specialChars:null},t.autofocus&&!h&&o.input.focus(),w&&v<11&&setTimeout(function(){return n.display.input.reset(!0)},20),function(r){var i=r.display;ye(i.scroller,\"mousedown\",Pr(r,Qo)),ye(i.scroller,\"dblclick\",w&&v<11?Pr(r,function(e){var t;Ce(r,e)||(!(t=Jn(r,e))||tl(r,e)||mn(r.display,e)||(Te(e),t=r.findWordAt(t),Oi(r.doc,t.anchor,t.head)))}):function(e){return Ce(r,e)||Te(e)});ye(i.scroller,\"contextmenu\",function(e){return nl(r,e)}),ye(i.input.getField(),\"contextmenu\",function(e){i.scroller.contains(e.target)||nl(r,e)});var n,o={end:0};function l(){i.activeTouch&&(n=setTimeout(function(){return i.activeTouch=null},1e3),(o=i.activeTouch).end=+new Date)}function s(e,t){if(null==t.left)return 1;var n=t.left-e.left,e=t.top-e.top;return 400<n*n+e*e}ye(i.scroller,\"touchstart\",function(e){var t;Ce(r,e)||function(e){if(1==e.touches.length){e=e.touches[0];return e.radiusX<=1&&e.radiusY<=1}}(e)||tl(r,e)||(i.input.ensurePolled(),clearTimeout(n),t=+new Date,i.activeTouch={start:t,moved:!1,prev:t-o.end<=300?o:null},1==e.touches.length&&(i.activeTouch.left=e.touches[0].pageX,i.activeTouch.top=e.touches[0].pageY))}),ye(i.scroller,\"touchmove\",function(){i.activeTouch&&(i.activeTouch.moved=!0)}),ye(i.scroller,\"touchend\",function(e){var t,n=i.activeTouch;n&&!mn(i,e)&&null!=n.left&&!n.moved&&new Date-n.start<300&&(t=r.coordsChar(i.activeTouch,\"page\"),t=!n.prev||s(n,n.prev)?new oi(t,t):!n.prev.prev||s(n,n.prev.prev)?r.findWordAt(t):new oi(rt(t.line,0),ct(r.doc,rt(t.line+1,0))),r.setSelection(t.anchor,t.head),r.focus(),Te(e)),l()}),ye(i.scroller,\"touchcancel\",l),ye(i.scroller,\"scroll\",function(){i.scroller.clientHeight&&(Lr(r,i.scroller.scrollTop),Tr(r,i.scroller.scrollLeft,!0),xe(r,\"scroll\",r))}),ye(i.scroller,\"mousewheel\",function(e){return ri(r,e)}),ye(i.scroller,\"DOMMouseScroll\",function(e){return ri(r,e)}),ye(i.wrapper,\"scroll\",function(){return i.wrapper.scrollTop=i.wrapper.scrollLeft=0}),i.dragFunctions={enter:function(e){Ce(r,e)||Ae(e)},over:function(e){var t,n;Ce(r,e)||((n=Jn(t=r,n=e))&&(ar(t,n,n=document.createDocumentFragment()),t.display.dragCursor||(t.display.dragCursor=M(\"div\",null,\"CodeMirror-cursors CodeMirror-dragcursors\"),t.display.lineSpace.insertBefore(t.display.dragCursor,t.display.cursorDiv)),T(t.display.dragCursor,n)),Ae(e))},start:function(e){return t=r,n=e,void(w&&(!t.state.draggingText||+new Date-fo<100)?Ae(n):Ce(t,n)||mn(t.display,n)||(n.dataTransfer.setData(\"Text\",t.getSelection()),n.dataTransfer.effectAllowed=\"copyMove\",n.dataTransfer.setDragImage&&!c&&((e=M(\"img\",null,null,\"position: fixed; left: 0; top: 0;\")).src=\"data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==\",p&&(e.width=e.height=1,t.display.wrapper.appendChild(e),e._top=e.offsetTop),n.dataTransfer.setDragImage(e,0,0),p&&e.parentNode.removeChild(e))));var t,n},drop:Pr(r,po),leave:function(e){Ce(r,e)||go(r)}};var e=i.input.getField();ye(e,\"keyup\",function(e){return Yo.call(r,e)}),ye(e,\"keydown\",Pr(r,Xo)),ye(e,\"keypress\",Pr(r,_o)),ye(e,\"focus\",function(e){return fr(r,e)}),ye(e,\"blur\",function(e){return pr(r,e)})}(this),yo(),Hr(this),this.curOp.forceUpdate=!0,vi(this,r),t.autofocus&&!h||this.hasFocus()?setTimeout(function(){n.hasFocus()&&!n.state.focused&&fr(n)},20):pr(this),ll)ll.hasOwnProperty(i)&&ll[i](this,t[i],il);_r(this),t.finishInit&&t.finishInit(this);for(var l=0;l<cl.length;++l)cl[l](this);Fr(this),f&&t.lineWrapping&&\"optimizelegibility\"==getComputedStyle(o.lineDiv).textRendering&&(o.lineDiv.style.textRendering=\"auto\")}ul.defaults=ol,ul.optionHandlers=ll;var cl=[];function hl(e,t,n,r){var i,o=e.doc;null==n&&(n=\"add\"),\"smart\"==n&&(o.mode.indent?i=mt(e,t).state:n=\"prev\");var l=e.options.tabSize,s=$e(o,t),a=P(s.text,null,l);s.stateAfter&&(s.stateAfter=null);var u,c=s.text.match(/^\\s*/)[0];if(r||/\\S/.test(s.text)){if(\"smart\"==n&&((u=o.mode.indent(i,s.text.slice(c.length),s.text))==B||150<u)){if(!r)return;n=\"prev\"}}else u=0,n=\"not\";\"prev\"==n?u=t>o.first?P($e(o,t-1).text,null,l):0:\"add\"==n?u=a+e.options.indentUnit:\"subtract\"==n?u=a-e.options.indentUnit:\"number\"==typeof n&&(u=a+n),u=Math.max(0,u);var h=\"\",d=0;if(e.options.indentWithTabs)for(var f=Math.floor(u/l);f;--f)d+=l,h+=\"\\t\";if(d<u&&(h+=X(u-d)),h!=c)return qi(o,h,rt(t,0),rt(t,c.length),\"+input\"),!(s.stateAfter=null);for(var p=0;p<o.sel.ranges.length;p++){var g=o.sel.ranges[p];if(g.head.line==t&&g.head.ch<c.length){g=rt(t,c.length);Wi(o,p,new oi(g,g));break}}}ul.defineInitHook=function(e){return cl.push(e)};var dl=null;function fl(e){dl=e}function pl(e,t,n,r,i){var o=e.doc;e.display.shift=!1,r=r||o.sel;var l=+new Date-200,s=\"paste\"==i||e.state.pasteIncoming>l,a=Ee(t),u=null;if(s&&1<r.ranges.length)if(dl&&dl.text.join(\"\\n\")==t){if(r.ranges.length%dl.text.length==0){u=[];for(var c=0;c<dl.text.length;c++)u.push(o.splitLines(dl.text[c]))}}else a.length==r.ranges.length&&e.options.pasteLinesPerSelection&&(u=_(a,function(e){return[e]}));for(var h=e.curOp.updateInput,d=r.ranges.length-1;0<=d;d--){var f=r.ranges[d],p=f.from(),g=f.to();f.empty()&&(n&&0<n?p=rt(p.line,p.ch-n):e.state.overwrite&&!s?g=rt(g.line,Math.min($e(o,g.line).text.length,g.ch+Y(a).length)):s&&dl&&dl.lineWise&&dl.text.join(\"\\n\")==a.join(\"\\n\")&&(p=g=rt(p.line,0)));g={from:p,to:g,text:u?u[d%u.length]:a,origin:i||(s?\"paste\":e.state.cutIncoming>l?\"cut\":\"+input\")};ji(e.doc,g),ln(e,\"inputRead\",e,g)}t&&!s&&ml(e,t),wr(e),e.curOp.updateInput<2&&(e.curOp.updateInput=h),e.curOp.typing=!0,e.state.pasteIncoming=e.state.cutIncoming=-1}function gl(e,t){var n=e.clipboardData&&e.clipboardData.getData(\"Text\");return n&&(e.preventDefault(),t.isReadOnly()||t.options.disableInput||Er(t,function(){return pl(t,n,0,null,\"paste\")}),1)}function ml(e,t){if(e.options.electricChars&&e.options.smartIndent)for(var n=e.doc.sel,r=n.ranges.length-1;0<=r;r--){var i=n.ranges[r];if(!(100<i.head.ch||r&&n.ranges[r-1].head.line==i.head.line)){var o=e.getModeAt(i.head),l=!1;if(o.electricChars){for(var s=0;s<o.electricChars.length;s++)if(-1<t.indexOf(o.electricChars.charAt(s))){l=hl(e,i.head.line,\"smart\");break}}else o.electricInput&&o.electricInput.test($e(e.doc,i.head.line).text.slice(0,i.head.ch))&&(l=hl(e,i.head.line,\"smart\"));l&&ln(e,\"electricInput\",e,i.head.line)}}}function vl(e){for(var t=[],n=[],r=0;r<e.doc.sel.ranges.length;r++){var i=e.doc.sel.ranges[r].head.line,i={anchor:rt(i,0),head:rt(i+1,0)};n.push(i),t.push(e.getRange(i.anchor,i.head))}return{text:t,ranges:n}}function yl(e,t,n,r){e.setAttribute(\"autocorrect\",n?\"\":\"off\"),e.setAttribute(\"autocapitalize\",r?\"\":\"off\"),e.setAttribute(\"spellcheck\",!!t)}function bl(){var e=M(\"textarea\",null,null,\"position: absolute; bottom: -1em; padding: 0; width: 1px; height: 1em; outline: none\"),t=M(\"div\",[e],null,\"overflow: hidden; position: relative; width: 3px; height: 0px;\");return f?e.style.width=\"1000px\":e.setAttribute(\"wrap\",\"off\"),s&&(e.style.border=\"1px solid black\"),yl(e),t}function wl(r,i,o,l,s){var e=i,t=o,a=$e(r,i.line),u=s&&\"rtl\"==r.direction?-o:o;function n(e){var t,n;if(null==(t=\"codepoint\"==l?(t=a.text.charCodeAt(i.ch+(0<l?0:-1)),isNaN(t)?null:new rt(i.line,Math.max(0,Math.min(a.text.length,i.ch+o*(55296<=t&&t<56320?2:1))),-o)):s?Po(r.cm,a,i,o):Fo(a,i,o))){if(e||(n=i.line+u)<r.first||n>=r.first+r.size||(i=new rt(n,i.ch,i.sticky),!(a=$e(r,n))))return;i=Eo(s,r.cm,a,i.line,u)}else i=t;return 1}if(\"char\"==l||\"codepoint\"==l)n();else if(\"column\"==l)n(!0);else if(\"word\"==l||\"group\"==l)for(var c=null,h=\"group\"==l,d=r.cm&&r.cm.getHelper(i,\"wordChars\"),f=!0;!(o<0)||n(!f);f=!1){var p=a.text.charAt(i.ch)||\"\\n\",p=J(p,d)?\"w\":h&&\"\\n\"==p?\"n\":!h||/\\s/.test(p)?null:\"p\";if(!h||f||p||(p=\"s\"),c&&c!=p){o<0&&(o=1,n(),i.sticky=\"after\");break}if(p&&(c=p),0<o&&!n(!f))break}t=Gi(r,i,e,t,!0);return ot(e,t)&&(t.hitSide=!0),t}function xl(e,t,n,r){var i,o,l,s=e.doc,a=t.left;for(\"page\"==r?(i=Math.min(e.display.wrapper.clientHeight,window.innerHeight||document.documentElement.clientHeight),i=Math.max(i-.5*Yn(e.display),3),o=(0<n?t.bottom:t.top)+n*i):\"line\"==r&&(o=0<n?t.bottom+3:t.top-3);(l=Vn(e,a,o)).outside;){if(n<0?o<=0:o>=s.height){l.hitSide=!0;break}o+=5*n}return l}e=function(e){this.cm=e,this.lastAnchorNode=this.lastAnchorOffset=this.lastFocusNode=this.lastFocusOffset=null,this.polling=new I,this.composing=null,this.gracePeriod=!1,this.readDOMTimeout=null};function Cl(e,t){var n=kn(e,t.line);if(!n||n.hidden)return null;var r=$e(e.doc,t.line),n=Sn(n,r,t.line),r=me(r,e.doc.direction),e=\"left\";r&&(e=le(r,t.ch)%2?\"right\":\"left\");e=On(n.map,t.ch,e);return e.offset=\"right\"==e.collapse?e.end:e.start,e}function Sl(e,t){return t&&(e.bad=!0),e}function Ll(e,t,n){var r;if(t==e.display.lineDiv){if(!(r=e.display.lineDiv.childNodes[n]))return Sl(e.clipPos(rt(e.display.viewTo-1)),!0);t=null,n=0}else for(r=t;;r=r.parentNode){if(!r||r==e.display.lineDiv)return null;if(r.parentNode&&r.parentNode==e.display.lineDiv)break}for(var i=0;i<e.display.view.length;i++){var o=e.display.view[i];if(o.node==r)return function(u,e,t){var n=u.text.firstChild,r=!1;if(!e||!A(n,e))return Sl(rt(Je(u.line),0),!0);if(e==n&&(r=!0,e=n.childNodes[t],t=0,!e)){var i=u.rest?Y(u.rest):u.line;return Sl(rt(Je(i),i.text.length),r)}var i=3==e.nodeType?e:null,o=e;i||1!=e.childNodes.length||3!=e.firstChild.nodeType||(i=e.firstChild,t=t&&i.nodeValue.length);for(;o.parentNode!=n;)o=o.parentNode;var c=u.measure,h=c.maps;function l(e,t,n){for(var r=-1;r<(h?h.length:0);r++)for(var i=r<0?c.map:h[r],o=0;o<i.length;o+=3){var l=i[o+2];if(l==e||l==t){var s=Je(r<0?u.line:u.rest[r]),a=i[o]+n;return(n<0||l!=e)&&(a=i[o+(n?1:0)]),rt(s,a)}}}var s=l(i,o,t);if(s)return Sl(s,r);for(var a=o.nextSibling,d=i?i.nodeValue.length-t:0;a;a=a.nextSibling){if(s=l(a,a.firstChild,0))return Sl(rt(s.line,s.ch-d),r);d+=a.textContent.length}for(var f=o.previousSibling,p=t;f;f=f.previousSibling){if(s=l(f,f.firstChild,-1))return Sl(rt(s.line,s.ch+p),r);p+=f.textContent.length}}(o,t,n)}}e.prototype.init=function(e){var t=this,o=this,l=o.cm,s=o.div=e.lineDiv;function a(e){for(var t=e.target;t;t=t.parentNode){if(t==s)return 1;if(/\\bCodeMirror-(?:line)?widget\\b/.test(t.className))break}}function n(e){if(a(e)&&!Ce(l,e)){if(l.somethingSelected())fl({lineWise:!1,text:l.getSelections()}),\"cut\"==e.type&&l.replaceSelection(\"\",null,\"cut\");else{if(!l.options.lineWiseCopyCut)return;var t=vl(l);fl({lineWise:!0,text:t.text}),\"cut\"==e.type&&l.operation(function(){l.setSelections(t.ranges,0,G),l.replaceSelection(\"\",null,\"cut\")})}if(e.clipboardData){e.clipboardData.clearData();var n=dl.text.join(\"\\n\");if(e.clipboardData.setData(\"Text\",n),e.clipboardData.getData(\"Text\")==n)return void e.preventDefault()}var r=bl(),e=r.firstChild;l.display.lineSpace.insertBefore(r,l.display.lineSpace.firstChild),e.value=dl.text.join(\"\\n\");var i=document.activeElement;H(e),setTimeout(function(){l.display.lineSpace.removeChild(r),i.focus(),i==s&&o.showPrimarySelection()},50)}}yl(s,l.options.spellcheck,l.options.autocorrect,l.options.autocapitalize),ye(s,\"paste\",function(e){!a(e)||Ce(l,e)||gl(e,l)||v<=11&&setTimeout(Pr(l,function(){return t.updateFromDOM()}),20)}),ye(s,\"compositionstart\",function(e){t.composing={data:e.data,done:!1}}),ye(s,\"compositionupdate\",function(e){t.composing||(t.composing={data:e.data,done:!1})}),ye(s,\"compositionend\",function(e){t.composing&&(e.data!=t.composing.data&&t.readFromDOMSoon(),t.composing.done=!0)}),ye(s,\"touchstart\",function(){return o.forceCompositionEnd()}),ye(s,\"input\",function(){t.composing||t.readFromDOMSoon()}),ye(s,\"copy\",n),ye(s,\"cut\",n)},e.prototype.screenReaderLabelChanged=function(e){e?this.div.setAttribute(\"aria-label\",e):this.div.removeAttribute(\"aria-label\")},e.prototype.prepareSelection=function(){var e=sr(this.cm,!1);return e.focus=document.activeElement==this.div,e},e.prototype.showSelection=function(e,t){e&&this.cm.display.view.length&&((e.focus||t)&&this.showPrimarySelection(),this.showMultipleSelections(e))},e.prototype.getSelection=function(){return this.cm.display.wrapper.ownerDocument.getSelection()},e.prototype.showPrimarySelection=function(){var e=this.getSelection(),t=this.cm,n=t.doc.sel.primary(),r=n.from(),i=n.to();if(t.display.viewTo==t.display.viewFrom||r.line>=t.display.viewTo||i.line<t.display.viewFrom)e.removeAllRanges();else{var o=Ll(t,e.anchorNode,e.anchorOffset),n=Ll(t,e.focusNode,e.focusOffset);if(!o||o.bad||!n||n.bad||0!=it(at(o,n),r)||0!=it(st(o,n),i)){var n=t.display.view,l=r.line>=t.display.viewFrom&&Cl(t,r)||{node:n[0].measure.map[2],offset:0},s=i.line<t.display.viewTo&&Cl(t,i);if(s||(s={node:(u=(u=n[n.length-1].measure).maps?u.maps[u.maps.length-1]:u.map)[u.length-1],offset:u[u.length-2]-u[u.length-3]}),l&&s){var a,u=e.rangeCount&&e.getRangeAt(0);try{a=S(l.node,l.offset,s.offset,s.node)}catch(e){}a&&(!d&&t.state.focused?(e.collapse(l.node,l.offset),a.collapsed||(e.removeAllRanges(),e.addRange(a))):(e.removeAllRanges(),e.addRange(a)),u&&null==e.anchorNode?e.addRange(u):d&&this.startGracePeriod()),this.rememberSelection()}else e.removeAllRanges()}}},e.prototype.startGracePeriod=function(){var e=this;clearTimeout(this.gracePeriod),this.gracePeriod=setTimeout(function(){e.gracePeriod=!1,e.selectionChanged()&&e.cm.operation(function(){return e.cm.curOp.selectionChanged=!0})},20)},e.prototype.showMultipleSelections=function(e){T(this.cm.display.cursorDiv,e.cursors),T(this.cm.display.selectionDiv,e.selection)},e.prototype.rememberSelection=function(){var e=this.getSelection();this.lastAnchorNode=e.anchorNode,this.lastAnchorOffset=e.anchorOffset,this.lastFocusNode=e.focusNode,this.lastFocusOffset=e.focusOffset},e.prototype.selectionInEditor=function(){var e=this.getSelection();if(!e.rangeCount)return!1;e=e.getRangeAt(0).commonAncestorContainer;return A(this.div,e)},e.prototype.focus=function(){\"nocursor\"!=this.cm.options.readOnly&&(this.selectionInEditor()&&document.activeElement==this.div||this.showSelection(this.prepareSelection(),!0),this.div.focus())},e.prototype.blur=function(){this.div.blur()},e.prototype.getField=function(){return this.div},e.prototype.supportsTouch=function(){return!0},e.prototype.receivedFocus=function(){var t=this;this.selectionInEditor()?this.pollSelection():Er(this.cm,function(){return t.cm.curOp.selectionChanged=!0}),this.polling.set(this.cm.options.pollInterval,function e(){t.cm.state.focused&&(t.pollSelection(),t.polling.set(t.cm.options.pollInterval,e))})},e.prototype.selectionChanged=function(){var e=this.getSelection();return e.anchorNode!=this.lastAnchorNode||e.anchorOffset!=this.lastAnchorOffset||e.focusNode!=this.lastFocusNode||e.focusOffset!=this.lastFocusOffset},e.prototype.pollSelection=function(){if(null==this.readDOMTimeout&&!this.gracePeriod&&this.selectionChanged()){var e,t,n=this.getSelection(),r=this.cm;if(a&&o&&this.cm.display.gutterSpecs.length&&function(e){for(var t=e;t;t=t.parentNode)if(/CodeMirror-gutter-wrapper/.test(t.className))return!0;return!1}(n.anchorNode))return this.cm.triggerOnKeyDown({type:\"keydown\",keyCode:8,preventDefault:Math.abs}),this.blur(),void this.focus();this.composing||(this.rememberSelection(),e=Ll(r,n.anchorNode,n.anchorOffset),t=Ll(r,n.focusNode,n.focusOffset),e&&t&&Er(r,function(){Ei(r.doc,si(e,t),G),(e.bad||t.bad)&&(r.curOp.selectionChanged=!0)}))}},e.prototype.pollContent=function(){null!=this.readDOMTimeout&&(clearTimeout(this.readDOMTimeout),this.readDOMTimeout=null);var e,t=this.cm,n=t.display,r=t.doc.sel.primary(),i=r.from(),r=r.to();if(0==i.ch&&i.line>t.firstLine()&&(i=rt(i.line-1,$e(t.doc,i.line-1).length)),r.ch==$e(t.doc,r.line).text.length&&r.line<t.lastLine()&&(r=rt(r.line+1,0)),i.line<n.viewFrom||r.line>n.viewTo-1)return!1;m=i.line==n.viewFrom||0==(m=er(t,i.line))?(e=Je(n.view[0].line),n.view[0].node):(e=Je(n.view[m].line),n.view[m-1].node.nextSibling);var o,r=er(t,r.line),r=r==n.view.length-1?(o=n.viewTo-1,n.lineDiv.lastChild):(o=Je(n.view[r+1].line)-1,n.view[r+1].node.previousSibling);if(!m)return!1;for(var l=t.doc.splitLines(function(l,e,t,s,a){var n=\"\",u=!1,c=l.doc.lineSeparator(),h=!1;function d(){u&&(n+=c,h&&(n+=c),u=h=!1)}function f(e){e&&(d(),n+=e)}for(;!function e(t){if(1==t.nodeType){var n=t.getAttribute(\"cm-text\");if(n)f(n);else if(n=t.getAttribute(\"cm-marker\"))(n=l.findMarks(rt(s,0),rt(a+1,0),(o=+n,function(e){return e.id==o}))).length&&(r=n[0].find(0))&&f(qe(l.doc,r.from,r.to).join(c));else if(\"false\"!=t.getAttribute(\"contenteditable\")){var r=/^(pre|div|p|li|table|br)$/i.test(t.nodeName);if(/^br$/i.test(t.nodeName)||0!=t.textContent.length){r&&d();for(var i=0;i<t.childNodes.length;i++)e(t.childNodes[i]);/^(pre|p)$/i.test(t.nodeName)&&(h=!0),r&&(u=!0)}}}else 3==t.nodeType&&f(t.nodeValue.replace(/\\u200b/g,\"\").replace(/\\u00a0/g,\" \"));var o}(e),e!=t;)e=e.nextSibling,h=!1;return n}(t,m,r,e,o)),s=qe(t.doc,rt(e,0),rt(o,$e(t.doc,o).text.length));1<l.length&&1<s.length;)if(Y(l)==Y(s))l.pop(),s.pop(),o--;else{if(l[0]!=s[0])break;l.shift(),s.shift(),e++}for(var a=0,u=0,c=l[0],h=s[0],d=Math.min(c.length,h.length);a<d&&c.charCodeAt(a)==h.charCodeAt(a);)++a;for(var f=Y(l),p=Y(s),g=Math.min(f.length-(1==l.length?a:0),p.length-(1==s.length?a:0));u<g&&f.charCodeAt(f.length-u-1)==p.charCodeAt(p.length-u-1);)++u;if(1==l.length&&1==s.length&&e==i.line)for(;a&&a>i.ch&&f.charCodeAt(f.length-u-1)==p.charCodeAt(p.length-u-1);)a--,u++;l[l.length-1]=f.slice(0,f.length-u).replace(/^\\u200b+/,\"\"),l[0]=l[0].slice(a).replace(/\\u200b+$/,\"\");var m=rt(e,a),r=rt(o,s.length?Y(s).length-u:0);return 1<l.length||l[0]||it(m,r)?(qi(t.doc,l,m,r,\"+input\"),!0):void 0},e.prototype.ensurePolled=function(){this.forceCompositionEnd()},e.prototype.reset=function(){this.forceCompositionEnd()},e.prototype.forceCompositionEnd=function(){this.composing&&(clearTimeout(this.readDOMTimeout),this.composing=null,this.updateFromDOM(),this.div.blur(),this.div.focus())},e.prototype.readFromDOMSoon=function(){var e=this;null==this.readDOMTimeout&&(this.readDOMTimeout=setTimeout(function(){if(e.readDOMTimeout=null,e.composing){if(!e.composing.done)return;e.composing=null}e.updateFromDOM()},80))},e.prototype.updateFromDOM=function(){var e=this;!this.cm.isReadOnly()&&this.pollContent()||Er(this.cm,function(){return tr(e.cm)})},e.prototype.setUneditable=function(e){e.contentEditable=\"false\"},e.prototype.onKeyPress=function(e){0==e.charCode||this.composing||(e.preventDefault(),this.cm.isReadOnly()||Pr(this.cm,pl)(this.cm,String.fromCharCode(null==e.charCode?e.keyCode:e.charCode),0))},e.prototype.readOnlyChanged=function(e){this.div.contentEditable=String(\"nocursor\"!=e)},e.prototype.onContextMenu=function(){},e.prototype.resetPosition=function(){},e.prototype.needsContentAttribute=!0;var kl,Tl,Ml,Nl,Al,r=function(e){this.cm=e,this.prevInput=\"\",this.pollingFast=!1,this.polling=new I,this.hasSelection=!1,this.composing=null};function Ol(e,t,r,n){kl.defaults[e]=t,r&&(Tl[e]=n?function(e,t,n){n!=il&&r(e,t,n)}:r)}r.prototype.init=function(n){var e=this,r=this,i=this.cm;this.createField(n);var o=this.textarea;function t(e){if(!Ce(i,e)){if(i.somethingSelected())fl({lineWise:!1,text:i.getSelections()});else{if(!i.options.lineWiseCopyCut)return;var t=vl(i);fl({lineWise:!0,text:t.text}),\"cut\"==e.type?i.setSelections(t.ranges,null,G):(r.prevInput=\"\",o.value=t.text.join(\"\\n\"),H(o))}\"cut\"==e.type&&(i.state.cutIncoming=+new Date)}}n.wrapper.insertBefore(this.wrapper,n.wrapper.firstChild),s&&(o.style.width=\"0px\"),ye(o,\"input\",function(){w&&9<=v&&e.hasSelection&&(e.hasSelection=null),r.poll()}),ye(o,\"paste\",function(e){Ce(i,e)||gl(e,i)||(i.state.pasteIncoming=+new Date,r.fastPoll())}),ye(o,\"cut\",t),ye(o,\"copy\",t),ye(n.scroller,\"paste\",function(e){if(!mn(n,e)&&!Ce(i,e)){if(!o.dispatchEvent)return i.state.pasteIncoming=+new Date,void r.focus();var t=new Event(\"paste\");t.clipboardData=e.clipboardData,o.dispatchEvent(t)}}),ye(n.lineSpace,\"selectstart\",function(e){mn(n,e)||Te(e)}),ye(o,\"compositionstart\",function(){var e=i.getCursor(\"from\");r.composing&&r.composing.range.clear(),r.composing={start:e,range:i.markText(e,i.getCursor(\"to\"),{className:\"CodeMirror-composing\"})}}),ye(o,\"compositionend\",function(){r.composing&&(r.poll(),r.composing.range.clear(),r.composing=null)})},r.prototype.createField=function(e){this.wrapper=bl(),this.textarea=this.wrapper.firstChild},r.prototype.screenReaderLabelChanged=function(e){e?this.textarea.setAttribute(\"aria-label\",e):this.textarea.removeAttribute(\"aria-label\")},r.prototype.prepareSelection=function(){var e,t=this.cm,n=t.display,r=t.doc,i=sr(t);return t.options.moveInputWithCursor&&(e=Bn(t,r.sel.primary().head,\"div\"),t=n.wrapper.getBoundingClientRect(),r=n.lineDiv.getBoundingClientRect(),i.teTop=Math.max(0,Math.min(n.wrapper.clientHeight-10,e.top+r.top-t.top)),i.teLeft=Math.max(0,Math.min(n.wrapper.clientWidth-10,e.left+r.left-t.left))),i},r.prototype.showSelection=function(e){var t=this.cm.display;T(t.cursorDiv,e.cursors),T(t.selectionDiv,e.selection),null!=e.teTop&&(this.wrapper.style.top=e.teTop+\"px\",this.wrapper.style.left=e.teLeft+\"px\")},r.prototype.reset=function(e){var t,n;this.contextMenuPending||this.composing||((t=this.cm).somethingSelected()?(this.prevInput=\"\",n=t.getSelection(),this.textarea.value=n,t.state.focused&&H(this.textarea),w&&9<=v&&(this.hasSelection=n)):e||(this.prevInput=this.textarea.value=\"\",w&&9<=v&&(this.hasSelection=null)))},r.prototype.getField=function(){return this.textarea},r.prototype.supportsTouch=function(){return!1},r.prototype.focus=function(){if(\"nocursor\"!=this.cm.options.readOnly&&(!h||O()!=this.textarea))try{this.textarea.focus()}catch(e){}},r.prototype.blur=function(){this.textarea.blur()},r.prototype.resetPosition=function(){this.wrapper.style.top=this.wrapper.style.left=0},r.prototype.receivedFocus=function(){this.slowPoll()},r.prototype.slowPoll=function(){var e=this;this.pollingFast||this.polling.set(this.cm.options.pollInterval,function(){e.poll(),e.cm.state.focused&&e.slowPoll()})},r.prototype.fastPoll=function(){var t=!1,n=this;n.pollingFast=!0,n.polling.set(20,function e(){n.poll()||t?(n.pollingFast=!1,n.slowPoll()):(t=!0,n.polling.set(60,e))})},r.prototype.poll=function(){var e=this,t=this.cm,n=this.textarea,r=this.prevInput;if(this.contextMenuPending||!t.state.focused||Pe(n)&&!r&&!this.composing||t.isReadOnly()||t.options.disableInput||t.state.keySeq)return!1;var i=n.value;if(i==r&&!t.somethingSelected())return!1;if(w&&9<=v&&this.hasSelection===i||g&&/[\\uf700-\\uf7ff]/.test(i))return t.display.input.reset(),!1;if(t.doc.sel==t.display.selForContextMenu){var o=i.charCodeAt(0);if(8203!=o||r||(r=\"​\"),8666==o)return this.reset(),this.cm.execCommand(\"undo\")}for(var l=0,s=Math.min(r.length,i.length);l<s&&r.charCodeAt(l)==i.charCodeAt(l);)++l;return Er(t,function(){pl(t,i.slice(l),r.length-l,null,e.composing?\"*compose\":null),1e3<i.length||-1<i.indexOf(\"\\n\")?n.value=e.prevInput=\"\":e.prevInput=i,e.composing&&(e.composing.range.clear(),e.composing.range=t.markText(e.composing.start,t.getCursor(\"to\"),{className:\"CodeMirror-composing\"}))}),!0},r.prototype.ensurePolled=function(){this.pollingFast&&this.poll()&&(this.pollingFast=!1)},r.prototype.onKeyPress=function(){w&&9<=v&&(this.hasSelection=null),this.fastPoll()},r.prototype.onContextMenu=function(e){var n=this,r=n.cm,i=r.display,o=n.textarea;n.contextMenuPending&&n.contextMenuPending();var l,s,t,a,u=Jn(r,e),c=i.scroller.scrollTop;function h(){var e,t;null!=o.selectionStart&&(t=\"​\"+((e=r.somethingSelected())?o.value:\"\"),o.value=\"⇚\",o.value=t,n.prevInput=e?\"\":\"​\",o.selectionStart=1,o.selectionEnd=t.length,i.selForContextMenu=r.doc.sel)}function d(){var e,t;n.contextMenuPending==d&&(n.contextMenuPending=!1,n.wrapper.style.cssText=s,o.style.cssText=l,w&&v<9&&i.scrollbars.setScrollTop(i.scroller.scrollTop=c),null!=o.selectionStart&&((!w||w&&v<9)&&h(),e=0,t=function(){i.selForContextMenu==r.doc.sel&&0==o.selectionStart&&0<o.selectionEnd&&\"​\"==n.prevInput?Pr(r,Vi)(r):e++<10?i.detectingSelectAll=setTimeout(t,500):(i.selForContextMenu=null,i.input.reset())},i.detectingSelectAll=setTimeout(t,200)))}u&&!p&&(r.options.resetSelectionOnContextMenu&&-1==r.doc.sel.contains(u)&&Pr(r,Ei)(r.doc,si(u),G),l=o.style.cssText,s=n.wrapper.style.cssText,u=n.wrapper.offsetParent.getBoundingClientRect(),n.wrapper.style.cssText=\"position: static\",o.style.cssText=\"position: absolute; width: 30px; height: 30px;\\n      top: \"+(e.clientY-u.top-5)+\"px; left: \"+(e.clientX-u.left-5)+\"px;\\n      z-index: 1000; background: \"+(w?\"rgba(255, 255, 255, .05)\":\"transparent\")+\";\\n      outline: none; border-width: 0; outline: none; overflow: hidden; opacity: .05; filter: alpha(opacity=5);\",f&&(t=window.scrollY),i.input.focus(),f&&window.scrollTo(null,t),i.input.reset(),r.somethingSelected()||(o.value=n.prevInput=\" \"),n.contextMenuPending=d,i.selForContextMenu=r.doc.sel,clearTimeout(i.detectingSelectAll),w&&9<=v&&h(),x?(Ae(e),a=function(){we(window,\"mouseup\",a),setTimeout(d,20)},ye(window,\"mouseup\",a)):setTimeout(d,50))},r.prototype.readOnlyChanged=function(e){e||this.reset(),this.textarea.disabled=\"nocursor\"==e,this.textarea.readOnly=!!e},r.prototype.setUneditable=function(){},r.prototype.needsContentAttribute=!1,Tl=(kl=ul).optionHandlers,kl.defineOption=Ol,kl.Init=il,Ol(\"value\",\"\",function(e,t){return e.setValue(t)},!0),Ol(\"mode\",null,function(e,t){e.doc.modeOption=t,di(e)},!0),Ol(\"indentUnit\",2,di,!0),Ol(\"indentWithTabs\",!1),Ol(\"smartIndent\",!0),Ol(\"tabSize\",4,function(e){fi(e),Hn(e),tr(e)},!0),Ol(\"lineSeparator\",null,function(e,r){if(e.doc.lineSep=r){var i=[],o=e.doc.first;e.doc.iter(function(e){for(var t=0;;){var n=e.text.indexOf(r,t);if(-1==n)break;t=n+r.length,i.push(rt(o,n))}o++});for(var t=i.length-1;0<=t;t--)qi(e.doc,r,i[t],rt(i[t].line,i[t].ch+r.length))}}),Ol(\"specialChars\",/[\\u0000-\\u001f\\u007f-\\u009f\\u00ad\\u061c\\u200b-\\u200c\\u200e\\u200f\\u2028\\u2029\\ufeff\\ufff9-\\ufffc]/g,function(e,t,n){e.state.specialChars=new RegExp(t.source+(t.test(\"\\t\")?\"\":\"|\\t\"),\"g\"),n!=il&&e.refresh()}),Ol(\"specialCharPlaceholder\",Zt,function(e){return e.refresh()},!0),Ol(\"electricChars\",!0),Ol(\"inputStyle\",h?\"contenteditable\":\"textarea\",function(){throw new Error(\"inputStyle can not (yet) be changed in a running editor\")},!0),Ol(\"spellcheck\",!1,function(e,t){return e.getInputField().spellcheck=t},!0),Ol(\"autocorrect\",!1,function(e,t){return e.getInputField().autocorrect=t},!0),Ol(\"autocapitalize\",!1,function(e,t){return e.getInputField().autocapitalize=t},!0),Ol(\"rtlMoveVisually\",!y),Ol(\"wholeLineUpdateBefore\",!0),Ol(\"theme\",\"default\",function(e){rl(e),Zr(e)},!0),Ol(\"keyMap\",\"default\",function(e,t,n){t=Do(t),n=n!=il&&Do(n);n&&n.detach&&n.detach(e,t),t.attach&&t.attach(e,n||null)}),Ol(\"extraKeys\",null),Ol(\"configureMouse\",null),Ol(\"lineWrapping\",!1,al,!0),Ol(\"gutters\",[],function(e,t){e.display.gutterSpecs=$r(t,e.options.lineNumbers),Zr(e)},!0),Ol(\"fixedGutter\",!0,function(e,t){e.display.gutters.style.left=t?qn(e.display)+\"px\":\"0\",e.refresh()},!0),Ol(\"coverGutterNextToScrollbar\",!1,function(e){return Nr(e)},!0),Ol(\"scrollbarStyle\",\"native\",function(e){Dr(e),Nr(e),e.display.scrollbars.setScrollTop(e.doc.scrollTop),e.display.scrollbars.setScrollLeft(e.doc.scrollLeft)},!0),Ol(\"lineNumbers\",!1,function(e,t){e.display.gutterSpecs=$r(e.options.gutters,t),Zr(e)},!0),Ol(\"firstLineNumber\",1,Zr,!0),Ol(\"lineNumberFormatter\",function(e){return e},Zr,!0),Ol(\"showCursorWhenSelecting\",!1,lr,!0),Ol(\"resetSelectionOnContextMenu\",!0),Ol(\"lineWiseCopyCut\",!0),Ol(\"pasteLinesPerSelection\",!0),Ol(\"selectionsMayTouch\",!1),Ol(\"readOnly\",!1,function(e,t){\"nocursor\"==t&&(pr(e),e.display.input.blur()),e.display.input.readOnlyChanged(t)}),Ol(\"screenReaderLabel\",null,function(e,t){t=\"\"===t?null:t,e.display.input.screenReaderLabelChanged(t)}),Ol(\"disableInput\",!1,function(e,t){t||e.display.input.reset()},!0),Ol(\"dragDrop\",!0,sl),Ol(\"allowDropFileTypes\",null),Ol(\"cursorBlinkRate\",530),Ol(\"cursorScrollMargin\",0),Ol(\"cursorHeight\",1,lr,!0),Ol(\"singleCursorHeightPerLine\",!0,lr,!0),Ol(\"workTime\",100),Ol(\"workDelay\",100),Ol(\"flattenSpans\",!0,fi,!0),Ol(\"addModeClass\",!1,fi,!0),Ol(\"pollInterval\",100),Ol(\"undoDepth\",200,function(e,t){return e.doc.history.undoDepth=t}),Ol(\"historyEventDelay\",1250),Ol(\"viewportMargin\",10,function(e){return e.refresh()},!0),Ol(\"maxHighlightLength\",1e4,fi,!0),Ol(\"moveInputWithCursor\",!0,function(e,t){t||e.display.input.resetPosition()}),Ol(\"tabindex\",null,function(e,t){return e.display.input.getField().tabIndex=t||\"\"}),Ol(\"autofocus\",null),Ol(\"direction\",\"ltr\",function(e,t){return e.doc.setDirection(t)},!0),Ol(\"phrases\",null),Nl=(Ml=ul).optionHandlers,Al=Ml.helpers={},Ml.prototype={constructor:Ml,focus:function(){window.focus(),this.display.input.focus()},setOption:function(e,t){var n=this.options,r=n[e];n[e]==t&&\"mode\"!=e||(n[e]=t,Nl.hasOwnProperty(e)&&Pr(this,Nl[e])(this,t,r),xe(this,\"optionChange\",this,e))},getOption:function(e){return this.options[e]},getDoc:function(){return this.doc},addKeyMap:function(e,t){this.state.keyMaps[t?\"push\":\"unshift\"](Do(e))},removeKeyMap:function(e){for(var t=this.state.keyMaps,n=0;n<t.length;++n)if(t[n]==e||t[n].name==e)return t.splice(n,1),!0},addOverlay:Ir(function(e,t){var n=e.token?e:Ml.getMode(this.options,e);if(n.startState)throw new Error(\"Overlays may not be stateful.\");!function(e,t,n){for(var r=0,i=n(t);r<e.length&&n(e[r])<=i;)r++;e.splice(r,0,t)}(this.state.overlays,{mode:n,modeSpec:e,opaque:t&&t.opaque,priority:t&&t.priority||0},function(e){return e.priority}),this.state.modeGen++,tr(this)}),removeOverlay:Ir(function(e){for(var t=this.state.overlays,n=0;n<t.length;++n){var r=t[n].modeSpec;if(r==e||\"string\"==typeof e&&r.name==e)return t.splice(n,1),this.state.modeGen++,void tr(this)}}),indentLine:Ir(function(e,t,n){\"string\"!=typeof t&&\"number\"!=typeof t&&(t=null==t?this.options.smartIndent?\"smart\":\"prev\":t?\"add\":\"subtract\"),tt(this.doc,e)&&hl(this,e,t,n)}),indentSelection:Ir(function(e){for(var t=this.doc.sel.ranges,n=-1,r=0;r<t.length;r++){var i=t[r];if(i.empty())i.head.line>n&&(hl(this,i.head.line,e,!0),n=i.head.line,r==this.doc.sel.primIndex&&wr(this));else{for(var o=i.from(),l=i.to(),i=Math.max(n,o.line),n=Math.min(this.lastLine(),l.line-(l.ch?0:1))+1,s=i;s<n;++s)hl(this,s,e);i=this.doc.sel.ranges;0==o.ch&&t.length==i.length&&0<i[r].from().ch&&Wi(this.doc,r,new oi(o,i[r].to()),G)}}}),getTokenAt:function(e,t){return xt(this,e,t)},getLineTokens:function(e,t){return xt(this,rt(e),t,!0)},getTokenTypeAt:function(e){e=ct(this.doc,e);var t,n=gt(this,$e(this.doc,e.line)),r=0,i=(n.length-1)/2,o=e.ch;if(0==o)t=n[2];else for(;;){var l=r+i>>1;if((l?n[2*l-1]:0)>=o)i=l;else{if(!(n[2*l+1]<o)){t=n[2*l+2];break}r=1+l}}e=t?t.indexOf(\"overlay \"):-1;return e<0?t:0==e?null:t.slice(0,e-1)},getModeAt:function(e){var t=this.doc.mode;return t.innerMode?Ml.innerMode(t,this.getTokenAt(e).state).mode:t},getHelper:function(e,t){return this.getHelpers(e,t)[0]},getHelpers:function(e,t){var n=[];if(!Al.hasOwnProperty(t))return n;var r=Al[t],i=this.getModeAt(e);if(\"string\"==typeof i[t])r[i[t]]&&n.push(r[i[t]]);else if(i[t])for(var o=0;o<i[t].length;o++){var l=r[i[t][o]];l&&n.push(l)}else i.helperType&&r[i.helperType]?n.push(r[i.helperType]):r[i.name]&&n.push(r[i.name]);for(var s=0;s<r._global.length;s++){var a=r._global[s];a.pred(i,this)&&-1==R(n,a.val)&&n.push(a.val)}return n},getStateAfter:function(e,t){var n=this.doc;return mt(this,(e=ut(n,null==e?n.first+n.size-1:e))+1,t).state},cursorCoords:function(e,t){var n=this.doc.sel.primary(),n=null==e?n.head:\"object\"==typeof e?ct(this.doc,e):e?n.from():n.to();return Bn(this,n,t||\"page\")},charCoords:function(e,t){return zn(this,ct(this.doc,e),t||\"page\")},coordsChar:function(e,t){return Vn(this,(e=Rn(this,e,t||\"page\")).left,e.top)},lineAtHeight:function(e,t){return e=Rn(this,{top:e,left:0},t||\"page\").top,et(this.doc,e+this.display.viewOffset)},heightAtLine:function(e,t,n){var r,i=!1,e=\"number\"==typeof e?(r=this.doc.first+this.doc.size-1,e<this.doc.first?e=this.doc.first:r<e&&(e=r,i=!0),$e(this.doc,e)):e;return In(this,e,{top:0,left:0},t||\"page\",n||i).top+(i?this.doc.height-Vt(e):0)},defaultTextHeight:function(){return Yn(this.display)},defaultCharWidth:function(){return _n(this.display)},getViewport:function(){return{from:this.display.viewFrom,to:this.display.viewTo}},addWidget:function(e,t,n,r,i){var o,l,s=this.display,a=(e=Bn(this,ct(this.doc,e))).bottom,u=e.left;t.style.position=\"absolute\",t.setAttribute(\"cm-ignore-events\",\"true\"),this.display.input.setUneditable(t),s.sizer.appendChild(t),\"over\"==r?a=e.top:\"above\"!=r&&\"near\"!=r||(o=Math.max(s.wrapper.clientHeight,this.doc.height),l=Math.max(s.sizer.clientWidth,s.lineSpace.clientWidth),(\"above\"==r||e.bottom+t.offsetHeight>o)&&e.top>t.offsetHeight?a=e.top-t.offsetHeight:e.bottom+t.offsetHeight<=o&&(a=e.bottom),u+t.offsetWidth>l&&(u=l-t.offsetWidth)),t.style.top=a+\"px\",t.style.left=t.style.right=\"\",\"right\"==i?(u=s.sizer.clientWidth-t.offsetWidth,t.style.right=\"0px\"):(\"left\"==i?u=0:\"middle\"==i&&(u=(s.sizer.clientWidth-t.offsetWidth)/2),t.style.left=u+\"px\"),n&&(n=this,t={left:u,top:a,right:u+t.offsetWidth,bottom:a+t.offsetHeight},null!=(t=yr(n,t)).scrollTop&&Lr(n,t.scrollTop),null!=t.scrollLeft&&Tr(n,t.scrollLeft))},triggerOnKeyDown:Ir(Xo),triggerOnKeyPress:Ir(_o),triggerOnKeyUp:Yo,triggerOnMouseDown:Ir(Qo),execCommand:function(e){if(Io.hasOwnProperty(e))return Io[e].call(null,this)},triggerElectric:Ir(function(e){ml(this,e)}),findPosH:function(e,t,n,r){var i=1;t<0&&(i=-1,t=-t);for(var o=ct(this.doc,e),l=0;l<t&&!(o=wl(this.doc,o,i,n,r)).hitSide;++l);return o},moveH:Ir(function(t,n){var r=this;this.extendSelectionsBy(function(e){return r.display.shift||r.doc.extend||e.empty()?wl(r.doc,e.head,t,n,r.options.rtlMoveVisually):t<0?e.from():e.to()},V)}),deleteH:Ir(function(n,r){var e=this.doc.sel,i=this.doc;e.somethingSelected()?i.replaceSelection(\"\",null,\"+delete\"):Wo(this,function(e){var t=wl(i,e.head,n,r,!1);return n<0?{from:t,to:e.head}:{from:e.head,to:t}})}),findPosV:function(e,t,n,r){var i=1,o=r;t<0&&(i=-1,t=-t);for(var l=ct(this.doc,e),s=0;s<t;++s){var a=Bn(this,l,\"div\");if(null==o?o=a.left:a.left=o,(l=xl(this,a,i,n)).hitSide)break}return l},moveV:Ir(function(r,i){var o=this,l=this.doc,s=[],a=!this.display.shift&&!l.extend&&l.sel.somethingSelected();if(l.extendSelectionsBy(function(e){if(a)return r<0?e.from():e.to();var t=Bn(o,e.head,\"div\");null!=e.goalColumn&&(t.left=e.goalColumn),s.push(t.left);var n=xl(o,t,r,i);return\"page\"==i&&e==l.sel.primary()&&br(o,zn(o,n,\"div\").top-t.top),n},V),s.length)for(var e=0;e<l.sel.ranges.length;e++)l.sel.ranges[e].goalColumn=s[e]}),findWordAt:function(e){var t=$e(this.doc,e.line).text,n=e.ch,r=e.ch;if(t){var i=this.getHelper(e,\"wordChars\");\"before\"!=e.sticky&&r!=t.length||!n?++r:--n;for(var o=t.charAt(n),l=J(o,i)?function(e){return J(e,i)}:/\\s/.test(o)?function(e){return/\\s/.test(e)}:function(e){return!/\\s/.test(e)&&!J(e)};0<n&&l(t.charAt(n-1));)--n;for(;r<t.length&&l(t.charAt(r));)++r}return new oi(rt(e.line,n),rt(e.line,r))},toggleOverwrite:function(e){null!=e&&e==this.state.overwrite||(((this.state.overwrite=!this.state.overwrite)?D:L)(this.display.cursorDiv,\"CodeMirror-overwrite\"),xe(this,\"overwriteToggle\",this,this.state.overwrite))},hasFocus:function(){return this.display.input.getField()==O()},isReadOnly:function(){return!(!this.options.readOnly&&!this.doc.cantEdit)},scrollTo:Ir(function(e,t){xr(this,e,t)}),getScrollInfo:function(){var e=this.display.scroller;return{left:e.scrollLeft,top:e.scrollTop,height:e.scrollHeight-wn(this)-this.display.barHeight,width:e.scrollWidth-wn(this)-this.display.barWidth,clientHeight:Cn(this),clientWidth:xn(this)}},scrollIntoView:Ir(function(e,t){var n;null==e?(e={from:this.doc.sel.primary().head,to:null},null==t&&(t=this.options.cursorScrollMargin)):\"number\"==typeof e?e={from:rt(e,0),to:null}:null==e.from&&(e={from:e,to:null}),e.to||(e.to=e.from),e.margin=t||0,null!=e.from.line?(n=e,Cr(t=this),t.curOp.scrollToPos=n):Sr(this,e.from,e.to,e.margin)}),setSize:Ir(function(e,t){function n(e){return\"number\"==typeof e||/^\\d+$/.test(String(e))?e+\"px\":e}var r=this;null!=e&&(this.display.wrapper.style.width=n(e)),null!=t&&(this.display.wrapper.style.height=n(t)),this.options.lineWrapping&&Wn(this);var i=this.display.viewFrom;this.doc.iter(i,this.display.viewTo,function(e){if(e.widgets)for(var t=0;t<e.widgets.length;t++)if(e.widgets[t].noHScroll){nr(r,i,\"widget\");break}++i}),this.curOp.forceUpdate=!0,xe(this,\"refresh\",this)}),operation:function(e){return Er(this,e)},startOperation:function(){return Hr(this)},endOperation:function(){return Fr(this)},refresh:Ir(function(){var e=this.display.cachedTextHeight;tr(this),this.curOp.forceUpdate=!0,Hn(this),xr(this,this.doc.scrollLeft,this.doc.scrollTop),jr(this.display),(null==e||.5<Math.abs(e-Yn(this.display))||this.options.lineWrapping)&&Qn(this),xe(this,\"refresh\",this)}),swapDoc:Ir(function(e){var t=this.doc;return t.cm=null,this.state.selectingText&&this.state.selectingText(),vi(this,e),Hn(this),this.display.input.reset(),xr(this,e.scrollLeft,e.scrollTop),this.curOp.forceScroll=!0,ln(this,\"swapDoc\",this,t),t}),phrase:function(e){var t=this.options.phrases;return t&&Object.prototype.hasOwnProperty.call(t,e)?t[e]:e},getInputField:function(){return this.display.input.getField()},getWrapperElement:function(){return this.display.wrapper},getScrollerElement:function(){return this.display.scroller},getGutterElement:function(){return this.display.gutters}},ke(Ml),Ml.registerHelper=function(e,t,n){Al.hasOwnProperty(e)||(Al[e]=Ml[e]={_global:[]}),Al[e][t]=n},Ml.registerGlobalHelper=function(e,t,n,r){Ml.registerHelper(e,t,r),Al[e]._global.push({pred:n,val:r})};var Dl,Wl,Hl=\"iter insert remove copy getEditor constructor\".split(\" \");for(Dl in ho.prototype)ho.prototype.hasOwnProperty(Dl)&&R(Hl,Dl)<0&&(ul.prototype[Dl]=function(e){return function(){return e.apply(this.doc,arguments)}}(ho.prototype[Dl]));return ke(ho),ul.inputStyles={textarea:r,contenteditable:e},ul.defineMode=function(e){ul.defaults.mode||\"null\"==e||(ul.defaults.mode=e),function(e,t){2<arguments.length&&(t.dependencies=Array.prototype.slice.call(arguments,2)),ze[e]=t}.apply(this,arguments)},ul.defineMIME=function(e,t){Be[e]=t},ul.defineMode(\"null\",function(){return{token:function(e){return e.skipToEnd()}}}),ul.defineMIME(\"text/plain\",\"null\"),ul.defineExtension=function(e,t){ul.prototype[e]=t},ul.defineDocExtension=function(e,t){ho.prototype[e]=t},ul.fromTextArea=function(t,n){var e;function r(){t.value=s.getValue()}if(n=n?E(n):{},n.value=t.value,!n.tabindex&&t.tabIndex&&(n.tabindex=t.tabIndex),!n.placeholder&&t.placeholder&&(n.placeholder=t.placeholder),null==n.autofocus&&(e=O(),n.autofocus=e==t||null!=t.getAttribute(\"autofocus\")&&e==document.body),t.form&&(ye(t.form,\"submit\",r),!n.leaveSubmitMethodAlone)){var i=t.form,o=i.submit;try{var l=i.submit=function(){r(),i.submit=o,i.submit(),i.submit=l}}catch(e){}}n.finishInit=function(e){e.save=r,e.getTextArea=function(){return t},e.toTextArea=function(){e.toTextArea=isNaN,r(),t.parentNode.removeChild(e.getWrapperElement()),t.style.display=\"\",t.form&&(we(t.form,\"submit\",r),n.leaveSubmitMethodAlone||\"function\"!=typeof t.form.submit||(t.form.submit=o))}},t.style.display=\"none\";var s=ul(function(e){return t.parentNode.insertBefore(e,t.nextSibling)},n);return s},(Wl=ul).off=we,Wl.on=ye,Wl.wheelEventPixels=ni,Wl.Doc=ho,Wl.splitLines=Ee,Wl.countColumn=P,Wl.findColumn=K,Wl.isWordChar=Q,Wl.Pass=B,Wl.signal=xe,Wl.Line=Xt,Wl.changeEnd=ai,Wl.scrollbarModel=Or,Wl.Pos=rt,Wl.cmpPos=it,Wl.modes=ze,Wl.mimeModes=Be,Wl.resolveMode=Ge,Wl.getMode=Ue,Wl.modeExtensions=Ve,Wl.extendMode=Ke,Wl.copyState=je,Wl.startState=Ye,Wl.innerMode=Xe,Wl.commands=Io,Wl.keyMap=Lo,Wl.keyName=Oo,Wl.isModifierKey=No,Wl.lookupKey=Mo,Wl.normalizeKeyMap=To,Wl.StringStream=_e,Wl.SharedTextMarker=ao,Wl.TextMarker=lo,Wl.LineWidget=ro,Wl.e_preventDefault=Te,Wl.e_stopPropagation=Me,Wl.e_stop=Ae,Wl.addClass=D,Wl.contains=A,Wl.rmClass=L,Wl.keyNames=wo,ul.version=\"5.58.3\",ul});\n",
            "type": "application/javascript",
            "title": "$:/plugins/tiddlywiki/codemirror/lib/codemirror.js",
            "module-type": "library"
        },
        "$:/plugins/tiddlywiki/codemirror/lib/codemirror.css": {
            "text": ".CodeMirror{font-family:monospace;height:300px;color:#000;direction:ltr}.CodeMirror-lines{padding:4px 0}.CodeMirror pre.CodeMirror-line,.CodeMirror pre.CodeMirror-line-like{padding:0 4px}.CodeMirror-scrollbar-filler,.CodeMirror-gutter-filler{background-color:#fff}.CodeMirror-gutters{border-right:1px solid #ddd;background-color:#f7f7f7;white-space:nowrap}.CodeMirror-linenumber{padding:0 3px 0 5px;min-width:20px;text-align:right;color:#999;white-space:nowrap}.CodeMirror-guttermarker{color:#000}.CodeMirror-guttermarker-subtle{color:#999}.CodeMirror-cursor{border-left:1px solid #000;border-right:none;width:0}.CodeMirror div.CodeMirror-secondarycursor{border-left:1px solid silver}.cm-fat-cursor .CodeMirror-cursor{width:auto;border:0!important;background:#7e7}.cm-fat-cursor div.CodeMirror-cursors{z-index:1}.cm-fat-cursor-mark{background-color:rgba(20,255,20,0.5);-webkit-animation:blink 1.06s steps(1) infinite;-moz-animation:blink 1.06s steps(1) infinite;animation:blink 1.06s steps(1) infinite}.cm-animate-fat-cursor{width:auto;border:0;-webkit-animation:blink 1.06s steps(1) infinite;-moz-animation:blink 1.06s steps(1) infinite;animation:blink 1.06s steps(1) infinite;background-color:#7e7}@-moz-keyframes blink{50%{background-color:transparent}}@-webkit-keyframes blink{50%{background-color:transparent}}@keyframes blink{50%{background-color:transparent}}.cm-tab{display:inline-block;text-decoration:inherit}.CodeMirror-rulers{position:absolute;left:0;right:0;top:-50px;bottom:0;overflow:hidden}.CodeMirror-ruler{border-left:1px solid #ccc;top:0;bottom:0;position:absolute}.cm-s-default .cm-header{color:blue}.cm-s-default .cm-quote{color:#090}.cm-negative{color:#d44}.cm-positive{color:#292}.cm-header,.cm-strong{font-weight:700}.cm-em{font-style:italic}.cm-link{text-decoration:underline}.cm-strikethrough{text-decoration:line-through}.cm-s-default .cm-keyword{color:#708}.cm-s-default .cm-atom{color:#219}.cm-s-default .cm-number{color:#164}.cm-s-default .cm-def{color:#00f}.cm-s-default .cm-variable-2{color:#05a}.cm-s-default .cm-variable-3,.cm-s-default .cm-type{color:#085}.cm-s-default .cm-comment{color:#a50}.cm-s-default .cm-string{color:#a11}.cm-s-default .cm-string-2{color:#f50}.cm-s-default .cm-meta{color:#555}.cm-s-default .cm-qualifier{color:#555}.cm-s-default .cm-builtin{color:#30a}.cm-s-default .cm-bracket{color:#997}.cm-s-default .cm-tag{color:#170}.cm-s-default .cm-attribute{color:#00c}.cm-s-default .cm-hr{color:#999}.cm-s-default .cm-link{color:#00c}.cm-s-default .cm-error{color:red}.cm-invalidchar{color:red}.CodeMirror-composing{border-bottom:2px solid}div.CodeMirror span.CodeMirror-matchingbracket{color:#0b0}div.CodeMirror span.CodeMirror-nonmatchingbracket{color:#a22}.CodeMirror-matchingtag{background:rgba(255,150,0,.3)}.CodeMirror-activeline-background{background:#e8f2ff}.CodeMirror{position:relative;overflow:hidden;background:#fff}.CodeMirror-scroll{overflow:scroll!important;margin-bottom:-50px;margin-right:-50px;padding-bottom:50px;height:100%;outline:none;position:relative}.CodeMirror-sizer{position:relative;border-right:50px solid transparent}.CodeMirror-vscrollbar,.CodeMirror-hscrollbar,.CodeMirror-scrollbar-filler,.CodeMirror-gutter-filler{position:absolute;z-index:6;display:none;outline:none}.CodeMirror-vscrollbar{right:0;top:0;overflow-x:hidden;overflow-y:scroll}.CodeMirror-hscrollbar{bottom:0;left:0;overflow-y:hidden;overflow-x:scroll}.CodeMirror-scrollbar-filler{right:0;bottom:0}.CodeMirror-gutter-filler{left:0;bottom:0}.CodeMirror-gutters{position:absolute;left:0;top:0;min-height:100%;z-index:3}.CodeMirror-gutter{white-space:normal;height:100%;display:inline-block;vertical-align:top;margin-bottom:-50px}.CodeMirror-gutter-wrapper{position:absolute;z-index:4;background:none!important;border:none!important}.CodeMirror-gutter-background{position:absolute;top:0;bottom:0;z-index:4}.CodeMirror-gutter-elt{position:absolute;cursor:default;z-index:4}.CodeMirror-gutter-wrapper ::selection{background-color:transparent}.CodeMirror-gutter-wrapper ::-moz-selection{background-color:transparent}.CodeMirror-lines{cursor:text;min-height:1px}.CodeMirror pre.CodeMirror-line,.CodeMirror pre.CodeMirror-line-like{-moz-border-radius:0;-webkit-border-radius:0;border-radius:0;border-width:0;background:transparent;font-family:inherit;font-size:inherit;margin:0;white-space:pre;word-wrap:normal;line-height:inherit;color:inherit;z-index:2;position:relative;overflow:visible;-webkit-tap-highlight-color:transparent;-webkit-font-variant-ligatures:contextual;font-variant-ligatures:contextual}.CodeMirror-wrap pre.CodeMirror-line,.CodeMirror-wrap pre.CodeMirror-line-like{word-wrap:break-word;white-space:pre-wrap;word-break:normal}.CodeMirror-linebackground{position:absolute;left:0;right:0;top:0;bottom:0;z-index:0}.CodeMirror-linewidget{position:relative;z-index:2;padding:.1px}.CodeMirror-rtl pre{direction:rtl}.CodeMirror-code{outline:none}.CodeMirror-scroll,.CodeMirror-sizer,.CodeMirror-gutter,.CodeMirror-gutters,.CodeMirror-linenumber{-moz-box-sizing:content-box;box-sizing:content-box}.CodeMirror-measure{position:absolute;width:100%;height:0;overflow:hidden;visibility:hidden}.CodeMirror-cursor{position:absolute;pointer-events:none}.CodeMirror-measure pre{position:static}div.CodeMirror-cursors{visibility:hidden;position:relative;z-index:3}div.CodeMirror-dragcursors{visibility:visible}.CodeMirror-focused div.CodeMirror-cursors{visibility:visible}.CodeMirror-selected{background:#d9d9d9}.CodeMirror-focused .CodeMirror-selected{background:#d7d4f0}.CodeMirror-crosshair{cursor:crosshair}.CodeMirror-line::selection,.CodeMirror-line > span::selection,.CodeMirror-line > span > span::selection{background:#d7d4f0}.CodeMirror-line::-moz-selection,.CodeMirror-line > span::-moz-selection,.CodeMirror-line > span > span::-moz-selection{background:#d7d4f0}.cm-searching{background-color:#ffa;background-color:rgba(255,255,0,.4)}.cm-force-border{padding-right:.1px}@media print{.CodeMirror div.CodeMirror-cursors{visibility:hidden}}.cm-tab-wrap-hack:after{content:''}span.CodeMirror-selectedtext{background:none}\n",
            "type": "text/vnd.tiddlywiki",
            "title": "$:/plugins/tiddlywiki/codemirror/lib/codemirror.css",
            "tags": "[[$:/tags/Stylesheet]]"
        },
        "$:/plugins/tiddlywiki/codemirror/addon/dialog/dialog.css": {
            "text": ".CodeMirror-dialog {\n  position: absolute;\n  left: 0; right: 0;\n  background: inherit;\n  z-index: 15;\n  padding: .1em .8em;\n  overflow: hidden;\n  color: inherit;\n}\n\n.CodeMirror-dialog-top {\n  border-bottom: 1px solid #eee;\n  top: 0;\n}\n\n.CodeMirror-dialog-bottom {\n  border-top: 1px solid #eee;\n  bottom: 0;\n}\n\n.CodeMirror-dialog input {\n  border: none;\n  outline: none;\n  background: transparent;\n  width: 20em;\n  color: inherit;\n  font-family: monospace;\n}\n\n.CodeMirror-dialog button {\n  font-size: 70%;\n}\n",
            "type": "text/css",
            "title": "$:/plugins/tiddlywiki/codemirror/addon/dialog/dialog.css",
            "tags": "[[$:/tags/Stylesheet]]"
        },
        "$:/plugins/tiddlywiki/codemirror/addon/dialog/dialog.js": {
            "text": "!function(e){\"object\"==typeof exports&&\"object\"==typeof module?e(require(\"../../lib/codemirror\")):\"function\"==typeof define&&define.amd?define([\"../../lib/codemirror\"],e):e(CodeMirror)}(function(s){function f(e,o,n){var t=e.getWrapperElement(),i=t.appendChild(document.createElement(\"div\"));return i.className=n?\"CodeMirror-dialog CodeMirror-dialog-bottom\":\"CodeMirror-dialog CodeMirror-dialog-top\",\"string\"==typeof o?i.innerHTML=o:i.appendChild(o),s.addClass(t,\"dialog-opened\"),i}function p(e,o){e.state.currentNotificationClose&&e.state.currentNotificationClose(),e.state.currentNotificationClose=o}s.defineExtension(\"openDialog\",function(e,o,n){n=n||{},p(this,null);var t=f(this,e,n.bottom),i=!1,r=this;function u(e){if(\"string\"==typeof e)a.value=e;else{if(i)return;i=!0,s.rmClass(t.parentNode,\"dialog-opened\"),t.parentNode.removeChild(t),r.focus(),n.onClose&&n.onClose(t)}}var l,a=t.getElementsByTagName(\"input\")[0];return a?(a.focus(),n.value&&(a.value=n.value,!1!==n.selectValueOnOpen&&a.select()),n.onInput&&s.on(a,\"input\",function(e){n.onInput(e,a.value,u)}),n.onKeyUp&&s.on(a,\"keyup\",function(e){n.onKeyUp(e,a.value,u)}),s.on(a,\"keydown\",function(e){n&&n.onKeyDown&&n.onKeyDown(e,a.value,u)||((27==e.keyCode||!1!==n.closeOnEnter&&13==e.keyCode)&&(a.blur(),s.e_stop(e),u()),13==e.keyCode&&o(a.value,e))}),!1!==n.closeOnBlur&&s.on(t,\"focusout\",function(e){null!==e.relatedTarget&&u()})):(l=t.getElementsByTagName(\"button\")[0])&&(s.on(l,\"click\",function(){u(),r.focus()}),!1!==n.closeOnBlur&&s.on(l,\"blur\",u),l.focus()),u}),s.defineExtension(\"openConfirm\",function(e,o,n){p(this,null);var t=f(this,e,n&&n.bottom),i=t.getElementsByTagName(\"button\"),r=!1,u=this,l=1;function a(){r||(r=!0,s.rmClass(t.parentNode,\"dialog-opened\"),t.parentNode.removeChild(t),u.focus())}i[0].focus();for(var c=0;c<i.length;++c){var d=i[c];!function(o){s.on(d,\"click\",function(e){s.e_preventDefault(e),a(),o&&o(u)})}(o[c]),s.on(d,\"blur\",function(){--l,setTimeout(function(){l<=0&&a()},200)}),s.on(d,\"focus\",function(){++l})}}),s.defineExtension(\"openNotification\",function(e,o){p(this,u);var n,t=f(this,e,o&&o.bottom),i=!1,r=o&&void 0!==o.duration?o.duration:5e3;function u(){i||(i=!0,clearTimeout(n),s.rmClass(t.parentNode,\"dialog-opened\"),t.parentNode.removeChild(t))}return s.on(t,\"click\",function(e){s.e_preventDefault(e),u()}),r&&(n=setTimeout(u,r)),u})});\n",
            "type": "application/javascript",
            "title": "$:/plugins/tiddlywiki/codemirror/addon/dialog/dialog.js",
            "module-type": "codemirror"
        },
        "$:/plugins/tiddlywiki/codemirror/addon/selection/activeline.js": {
            "text": "!function(e){\"object\"==typeof exports&&\"object\"==typeof module?e(require(\"../../lib/codemirror\")):\"function\"==typeof define&&define.amd?define([\"../../lib/codemirror\"],e):e(CodeMirror)}(function(r){\"use strict\";var s=\"CodeMirror-activeline\",c=\"CodeMirror-activeline-background\",l=\"CodeMirror-activeline-gutter\";function f(e){for(var t=0;t<e.state.activeLines.length;t++)e.removeLineClass(e.state.activeLines[t],\"wrap\",s),e.removeLineClass(e.state.activeLines[t],\"background\",c),e.removeLineClass(e.state.activeLines[t],\"gutter\",l)}function o(t,e){for(var n=[],i=0;i<e.length;i++){var r,o=e[i],a=t.getOption(\"styleActiveLine\");(\"object\"==typeof a&&a.nonEmpty?o.anchor.line==o.head.line:o.empty())&&(r=t.getLineHandleVisualStart(o.head.line),n[n.length-1]!=r&&n.push(r))}!function(e,t){if(e.length==t.length){for(var n=0;n<e.length;n++)if(e[n]!=t[n])return;return 1}}(t.state.activeLines,n)&&t.operation(function(){f(t);for(var e=0;e<n.length;e++)t.addLineClass(n[e],\"wrap\",s),t.addLineClass(n[e],\"background\",c),t.addLineClass(n[e],\"gutter\",l);t.state.activeLines=n})}function a(e,t){o(e,t.ranges)}r.defineOption(\"styleActiveLine\",!1,function(e,t,n){var i=n!=r.Init&&n;t!=i&&(i&&(e.off(\"beforeSelectionChange\",a),f(e),delete e.state.activeLines),t&&(e.state.activeLines=[],o(e,e.listSelections()),e.on(\"beforeSelectionChange\",a)))})});\n",
            "type": "application/javascript",
            "title": "$:/plugins/tiddlywiki/codemirror/addon/selection/activeline.js",
            "module-type": "codemirror"
        },
        "$:/plugins/tiddlywiki/codemirror/mode/tw-meta.js": {
            "text": "!function(e){\"object\"==typeof exports&&\"object\"==typeof module?e(require(\"../lib/codemirror\")):\"function\"==typeof define&&define.amd?define([\"../lib/codemirror\"],e):e(CodeMirror)}(function(e){\"use strict\";e.modeInfo=[{name:\"CMake\",mime:\"text/x-cmake\",mode:\"cmake\",ext:[\"cmake\",\"cmake.in\"],file:/^CMakeLists.txt$/},{name:\"Cython\",mime:\"text/x-cython\",mode:\"python\",ext:[\"pyx\",\"pxd\",\"pxi\"]},{name:\"CSS\",mime:\"text/css\",mode:\"css\",ext:[\"css\"]},{name:\"diff\",mime:\"text/x-diff\",mode:\"diff\",ext:[\"diff\",\"patch\"]},{name:\"Embedded Javascript\",mime:\"application/x-ejs\",mode:\"htmlembedded\",ext:[\"ejs\"]},{name:\"Embedded Ruby\",mime:\"application/x-erb\",mode:\"htmlembedded\",ext:[\"erb\"]},{name:\"Erlang\",mime:\"text/x-erlang\",mode:\"erlang\",ext:[\"erl\"]},{name:\"GitHub Flavored Markdown\",mime:\"text/x-gfm\",mode:\"gfm\",file:/^(readme|contributing|history).md$/i},{name:\"Go\",mime:\"text/x-go\",mode:\"go\",ext:[\"go\"]},{name:\"ASP.NET\",mime:\"application/x-aspx\",mode:\"htmlembedded\",ext:[\"aspx\"],alias:[\"asp\",\"aspx\"]},{name:\"HTML\",mime:\"text/html\",mode:\"htmlmixed\",ext:[\"html\",\"htm\",\"handlebars\",\"hbs\"],alias:[\"xhtml\"]},{name:\"HTTP\",mime:\"message/http\",mode:\"http\"},{name:\"JavaScript\",mimes:[\"text/javascript\",\"text/ecmascript\",\"application/javascript\",\"application/x-javascript\",\"application/ecmascript\"],mode:\"javascript\",ext:[\"js\"],alias:[\"ecmascript\",\"js\",\"node\"]},{name:\"JSON\",mimes:[\"application/json\",\"application/x-json\"],mode:\"javascript\",ext:[\"json\",\"map\"],alias:[\"json5\"]},{name:\"JSON-LD\",mime:\"application/ld+json\",mode:\"javascript\",ext:[\"jsonld\"],alias:[\"jsonld\"]},{name:\"Lua\",mime:\"text/x-lua\",mode:\"lua\",ext:[\"lua\"]},{name:\"Markdown\",mime:\"text/x-markdown\",mode:\"markdown\",ext:[\"markdown\",\"md\",\"mkd\"]},{name:\"MySQL\",mime:\"text/x-mysql\",mode:\"sql\"},{name:\"Plain Text\",mime:\"text/plain\",mode:\"null\",ext:[\"txt\",\"text\",\"conf\",\"def\",\"list\",\"log\"]},{name:\"Python\",mime:\"text/x-python\",mode:\"python\",ext:[\"BUILD\",\"bzl\",\"py\",\"pyw\"],file:/^(BUCK|BUILD)$/},{name:\"SCSS\",mime:\"text/x-scss\",mode:\"css\",ext:[\"scss\"]},{name:\"LaTeX\",mime:\"text/x-latex\",mode:\"stex\",ext:[\"text\",\"ltx\",\"tex\"],alias:[\"tex\"]},{name:\"TiddlyWiki \",mime:\"text/x-tiddlywiki\",mode:\"tiddlywiki\"}];for(var t=0;t<e.modeInfo.length;t++){var m=e.modeInfo[t];m.mimes&&(m.mime=m.mimes[0])}e.findModeByMIME=function(t){t=t.toLowerCase();for(var m=0;m<e.modeInfo.length;m++){var i=e.modeInfo[m];if(i.mime==t)return i;if(i.mimes)for(var a=0;a<i.mimes.length;a++)if(i.mimes[a]==t)return i}return/\\+xml$/.test(t)?e.findModeByMIME(\"application/xml\"):/\\+json$/.test(t)?e.findModeByMIME(\"application/json\"):void 0},e.findModeByExtension=function(t){for(var m=0;m<e.modeInfo.length;m++){var i=e.modeInfo[m];if(i.ext)for(var a=0;a<i.ext.length;a++)if(i.ext[a]==t)return i}},e.findModeByFileName=function(t){for(var m=0;m<e.modeInfo.length;m++){var i=e.modeInfo[m];if(i.file&&i.file.test(t))return i}var a=t.lastIndexOf(\".\"),o=a>-1&&t.substring(a+1,t.length);if(o)return e.findModeByExtension(o)},e.findModeByName=function(t){t=t.toLowerCase();for(var m=0;m<e.modeInfo.length;m++){var i=e.modeInfo[m];if(i.name.toLowerCase()==t)return i;if(i.alias)for(var a=0;a<i.alias.length;a++)if(i.alias[a].toLowerCase()==t)return i}}});\n",
            "type": "application/javascript",
            "title": "$:/plugins/tiddlywiki/codemirror/mode/tw-meta.js",
            "module-type": "codemirror"
        },
        "$:/plugins/tiddlywiki/codemirror/keyboard": {
            "title": "$:/plugins/tiddlywiki/codemirror/keyboard",
            "text": "\n!!Default keyboard shortcuts\n\n!!!Basic shortcuts\n\n|Shortcut |Function |h\n|Left |goCharLeft |\n|Right |goCharRight |\n|Up |goLineUp |\n|Down |goLineDown |\n|End |goLineEnd |\n|Home |goLineStartSmart |\n|~PageUp |goPageUp |\n|~PageDown |goPageDown |\n|Delete |delCharAfter |\n|Backspace |delCharBefore |\n|Shift-Backspace |delCharBefore |\n|Tab |defaultTab |\n|Shift-Tab |indentAuto |\n|Enter |newlineAndIndent |\n|Insert |toggleOverwrite |\n|Ctrl-Esc |singleSelection |\n\n\n!!!Shortcuts on Windows and Linux\n\n|Shortcut |Function |h\n|Ctrl-A |selectAll |\n|Ctrl-D |deleteLine |\n|Ctrl-Z |undo |\n|Shift-Ctrl-Z |redo |\n|Ctrl-Y |redo |\n|Ctrl-Home |goDocStart |\n|Ctrl-End |goDocEnd |\n|Ctrl-Up |goLineUp |\n|Ctrl-Down |goLineDown |\n|Ctrl-Left |goGroupLeft |\n|Ctrl-Right |goGroupRight |\n|Alt-Left |goLineStart |\n|Alt-Right |goLineEnd |\n|Ctrl-Backspace |delGroupBefore |\n|Ctrl-Delete |delGroupAfter |\n|Ctrl-F |find |\n|Ctrl-G |findNext |\n|Shift-Ctrl-G |findPrev |\n|Shift-Ctrl-F |replace |\n|Shift-Ctrl-R |replaceAll |\n|Ctrl-[ |indentLess |\n|Ctrl-] |indentMore |\n|Alt-U |undoSelection |\n|Shift-Ctrl-U |redoSelection |\n|Shift-Alt-U |redoSelection |\n\n\n!!!Shortcuts on ~MacOs\n\n|Shortcut |Function |h\n|Cmd-A |selectAll |\n|Cmd-D |deleteLine |\n|Cmd-Z |undo |\n|Shift-Cmd-Z |redo |\n|Cmd-Y |redo |\n|Cmd-Home |goDocStart |\n|Cmd-Up |goDocStart |\n|Cmd-End |goDocEnd |\n|Cmd-Down |goDocEnd |\n|Alt-Left |goGroupLeft |\n|Alt-Right |goGroupRight |\n|Cmd-Left |goLineLeft |\n|Cmd-Right |goLineRight |\n|Alt-Backspace |delGroupBefore |\n|Ctrl-Alt-Backspace |delGroupAfter |\n|Alt-Delete |delGroupAfter |\n|Cmd-F |find |\n|Cmd-G |findNext |\n|Shift-Cmd-G |findPrev |\n|Cmd-Alt-F |replace |\n|Shift-Cmd-Alt-F |replaceAll |\n|Cmd-[ |indentLess |\n|Cmd-] |indentMore |\n|Cmd-Backspace |delWrappedLineLeft |\n|Cmd-Delete |delWrappedLineRight |\n|Alt-U |undoSelection |\n|Shift-Alt-U |redoSelection |\n|Ctrl-Up |goDocStart |\n|Ctrl-Down |goDocEnd |\n|Ctrl-F |goCharRight |\n|Ctrl-B |goCharLeft |\n|Ctrl-P |goLineUp |\n|Ctrl-N |goLineDown |\n|Alt-F |goWordRight |\n|Alt-B |goWordLeft |\n|Ctrl-A |goLineStart |\n|Ctrl-E |goLineEnd |\n|Ctrl-V |goPageDown |\n|Shift-Ctrl-V |goPageUp |\n|Ctrl-D |delCharAfter |\n|Ctrl-H |delCharBefore |\n|Alt-D |delWordAfter |\n|Alt-Backspace |delWordBefore |\n|Ctrl-K |killLine |\n|Alt-T |transposeChars |\n|Ctrl-O |openLine |\n\n\n"
        },
        "$:/plugins/tiddlywiki/codemirror/license": {
            "title": "$:/plugins/tiddlywiki/codemirror/license",
            "text": "\"\"\"\n~CodeMirror, copyright (c) by Marijn Haverbeke and others\nDistributed under an MIT license: http://codemirror.net/LICENSE\n\nCopyright (c) 2004-2007, Jeremy Ruston\nCopyright (c) 2007-2018, UnaMesa Association\nDistributed under an BSD license: https://tiddlywiki.com/#License\n\"\"\"\n"
        },
        "$:/plugins/tiddlywiki/codemirror/readme": {
            "title": "$:/plugins/tiddlywiki/codemirror/readme",
            "text": "This plugin provides an enhanced text editor component based on [[CodeMirror|http://codemirror.net]]. The basic configuration is designed to be as lightweight as possible and is just around 235kb of size. Additional features can be installed with ~CodeMirror ~AddOns from the plugin library.\n\n[[Source code|https://github.com/Jermolene/TiddlyWiki5/blob/master/plugins/tiddlywiki/codemirror]]\n\nBased on ~CodeMirror version 5.58.3\n"
        },
        "$:/core/ui/ControlPanel/Settings/codemirror/cursorBlinkRate": {
            "title": "$:/core/ui/ControlPanel/Settings/codemirror/cursorBlinkRate",
            "tags": "$:/tags/ControlPanel/Settings/CodeMirror",
            "caption": "{{$:/language/codemirror/cursorBlinkRate/hint}}",
            "text": "\\define lingo-base() $:/language/codemirror/cursorBlinkRate/\n\n|<$link to=\"$:/config/codemirror/cursorBlinkRate\"><<lingo hint>></$link> |<$edit-text tiddler=\"$:/config/codemirror/cursorBlinkRate\" default=\"\" placeholder=\"cursorBlinkRate\" tag=\"input\"/> |\n"
        },
        "$:/core/ui/ControlPanel/Settings/codemirror/editorFont": {
            "title": "$:/core/ui/ControlPanel/Settings/codemirror/editorFont",
            "tags": "$:/tags/ControlPanel/Settings/CodeMirror",
            "caption": "{{$:/language/codemirror/editorFont/hint}}",
            "text": "\\define lingo-base() $:/language/ThemeTweaks/\n\n|<$link to=\"$:/themes/tiddlywiki/vanilla/settings/editorfontfamily\"><<lingo Settings/EditorFontFamily>></$link> |<$edit-text tiddler=\"$:/themes/tiddlywiki/vanilla/settings/editorfontfamily\" default=\"\" tag=\"input\"/> | |\n"
        },
        "$:/core/ui/ControlPanel/Settings/codemirror/indentUnit": {
            "title": "$:/core/ui/ControlPanel/Settings/codemirror/indentUnit",
            "tags": "$:/tags/ControlPanel/Settings/CodeMirror",
            "caption": "{{$:/language/codemirror/indentUnit/hint}}",
            "text": "\\define lingo-base() $:/language/codemirror/indentUnit/\n\n|<$link to=\"$:/config/codemirror/indentUnit\"><<lingo hint>></$link> |<$edit-text tiddler=\"$:/config/codemirror/indentUnit\" default=\"\" placeholder=\"indentUnit\" tag=\"input\"/> |\n"
        },
        "$:/core/ui/ControlPanel/Settings/codemirror/indentWithTabs": {
            "title": "$:/core/ui/ControlPanel/Settings/codemirror/indentWithTabs",
            "tags": "$:/tags/ControlPanel/Settings/CodeMirror",
            "caption": "{{$:/language/codemirror/indentWithTabs/hint}}",
            "text": "\\define lingo-base() $:/language/codemirror/indentWithTabs/\n<<lingo hint>>\n\n<$checkbox tiddler=\"$:/config/codemirror/indentWithTabs\" field=\"text\" checked=\"true\" unchecked=\"false\" default=\"true\"> <$link to=\"$:/config/codemirror/indentWithTabs\"><<lingo info>></$link> </$checkbox>\n"
        },
        "$:/core/ui/ControlPanel/Settings/codemirror/keyMap": {
            "title": "$:/core/ui/ControlPanel/Settings/codemirror/keyMap",
            "tags": "$:/tags/ControlPanel/Settings/CodeMirror",
            "caption": "{{$:/language/codemirror/keyMap/hint}}",
            "text": "\\define lingo-base() $:/language/codemirror/keyMap\n\n<$link to=\"$:/config/codemirror/keyMap\"><<lingo hint>></$link>\n\n<$select tiddler=\"$:/config/codemirror/keyMap\" default=\"default\">\n<option value=\"default\">default</option>\n<$list filter=\"[all[shadows+tiddlers]module-type[codemirror-keymap]!has[draft.of]get[text]]\">\n<option value=<<currentTiddler>>><$transclude><$text text=<<currentTiddler>>/></$transclude></option>\n</$list>\n</$select>\n\n"
        },
        "$:/core/ui/ControlPanel/Settings/codemirror/lineNumbers": {
            "title": "$:/core/ui/ControlPanel/Settings/codemirror/lineNumbers",
            "tags": "$:/tags/ControlPanel/Settings/CodeMirror",
            "caption": "{{$:/language/codemirror/lineNumbers/hint}}",
            "text": "\\define lingo-base() $:/language/codemirror/lineNumbers/\n<<lingo hint>>\n\n<$checkbox tiddler=\"$:/config/codemirror/lineNumbers\" field=\"text\" checked=\"true\" unchecked=\"false\" default=\"false\"> <$link to=\"$:/config/codemirror/lineNumbers\"><<lingo info>></$link> </$checkbox>\n\n"
        },
        "$:/core/ui/ControlPanel/Settings/codemirror/lineWrapping": {
            "title": "$:/core/ui/ControlPanel/Settings/codemirror/lineWrapping",
            "tags": "$:/tags/ControlPanel/Settings/CodeMirror",
            "caption": "{{$:/language/codemirror/lineWrapping/hint}}",
            "text": "\\define lingo-base() $:/language/codemirror/lineWrapping/\n<<lingo hint>>\n\n<$checkbox tiddler=\"$:/config/codemirror/lineWrapping\" field=\"text\" checked=\"true\" unchecked=\"false\" default=\"true\"> <$link to=\"$:/config/codemirror/lineWrapping\"><<lingo info>></$link> </$checkbox>\n\n"
        },
        "$:/core/ui/ControlPanel/Settings/codemirror/showCursorWhenSelecting": {
            "title": "$:/core/ui/ControlPanel/Settings/codemirror/showCursorWhenSelecting",
            "tags": "$:/tags/ControlPanel/Settings/CodeMirror",
            "caption": "{{$:/language/codemirror/showCursorWhenSelecting/hint}}",
            "text": "\\define lingo-base() $:/language/codemirror/showCursorWhenSelecting/\n<<lingo hint>>\n\n<$checkbox tiddler=\"$:/config/codemirror/showCursorWhenSelecting\" field=\"text\" checked=\"true\" unchecked=\"false\" default=\"true\"> <$link to=\"$:/config/codemirror/showCursorWhenSelecting\"><<lingo info>></$link> </$checkbox>\n\n"
        },
        "$:/core/ui/ControlPanel/Settings/codemirror/smartIndent": {
            "title": "$:/core/ui/ControlPanel/Settings/codemirror/smartIndent",
            "tags": "$:/tags/ControlPanel/Settings/CodeMirror",
            "caption": "{{$:/language/codemirror/smartIndent/hint}}",
            "text": "\\define lingo-base() $:/language/codemirror/smartIndent/\n<<lingo hint>>\n\n<$checkbox tiddler=\"$:/config/codemirror/smartIndent\" field=\"text\" checked=\"true\" unchecked=\"false\" default=\"true\"> <$link to=\"$:/config/codemirror/smartIndent\"><<lingo info>></$link> </$checkbox>\n"
        },
        "$:/core/ui/ControlPanel/Settings/codemirror/styleActiveLine": {
            "title": "$:/core/ui/ControlPanel/Settings/codemirror/styleActiveLine",
            "tags": "$:/tags/ControlPanel/Settings/CodeMirror",
            "caption": "{{$:/language/codemirror/styleActiveLine/hint}}",
            "text": "\\define lingo-base() $:/language/codemirror/styleActiveLine/\n<<lingo hint>>\n\n<$checkbox tiddler=\"$:/config/codemirror/styleActiveLine\" field=\"text\" checked=\"true\" unchecked=\"false\" default=\"false\"> <$link to=\"$:/config/codemirror/styleActiveLine\"><<lingo info>></$link> </$checkbox>\n\n"
        },
        "$:/core/ui/ControlPanel/Settings/codemirror/tabSize": {
            "title": "$:/core/ui/ControlPanel/Settings/codemirror/tabSize",
            "tags": "$:/tags/ControlPanel/Settings/CodeMirror",
            "caption": "{{$:/language/codemirror/tabSize/hint}}",
            "text": "\\define lingo-base() $:/language/codemirror/tabSize/\n\n|<$link to=\"$:/config/codemirror/tabSize\"><<lingo hint>></$link> |<$edit-text tiddler=\"$:/config/codemirror/tabSize\" default=\"\" placeholder=\"tabSize\" tag=\"input\"/> |\n"
        },
        "$:/core/ui/ControlPanel/Settings/codemirror/theme": {
            "title": "$:/core/ui/ControlPanel/Settings/codemirror/theme",
            "tags": "$:/tags/ControlPanel/Settings/CodeMirror",
            "caption": "{{$:/language/codemirror/theme/hint}}",
            "text": "\\define lingo-base() $:/language/codemirror/\n\n<$link to=\"$:/config/codemirror/theme\"><<lingo hint>></$link>\n\n<$select tiddler=\"$:/config/codemirror/theme\" default=\"default\">\n<option value=\"default\">default</option>\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/Stylesheet]module-type[codemirror-theme]!has[draft.of]get[name]]\">\n<option value=<<currentTiddler>>><$transclude field=\"name\"><$text text=<<currentTiddler>>/></$transclude></option>\n</$list>\n</$select>\n\n//see the [[CodeMirror Usage|$:/plugins/tiddlywiki/codemirror/usage]] how to add themes//\n"
        },
        "$:/plugins/tiddlywiki/codemirror/styles": {
            "title": "$:/plugins/tiddlywiki/codemirror/styles",
            "tags": "[[$:/tags/Stylesheet]]",
            "module-type": "codemirror-theme",
            "name": "tiddlywiki",
            "text": "\\define set-fat-cursor-background-css(colour,colourA,colourB)\n<$set name=\"backgroundColour\" value=<<contrastcolour target:\"\"\"$colour$\"\"\" fallbackTarget:\"\"\"\"\"\" colourA:\"\"\"$colourA$\"\"\" colourB:\"\"\"$colourB$\"\"\">>>\n.cm-s-tiddlywiki.cm-fat-cursor .CodeMirror-cursor { background: <<backgroundColour>>; }\n.cm-s-tiddlywiki .cm-animate-fat-cursor { background-color: <<backgroundColour>>; }\n</$set>\n\\end\n\\define set-fat-cursor-background-colours(palette)\n<$macrocall $name=\"set-fat-cursor-background-css\" colour={{$palette$##foreground}} colourA=\"#77ee77\" colourB=\"#586e75\"/>\n\\end\n\\define set-fat-cursor-background()\n<$macrocall $name=\"set-fat-cursor-background-colours\" palette={{$:/palette}}/>\n\\end\n\\define set-selection-background-css(colour,colourA,colourB,tiddlerEditorBackground)\n<$wikify name=\"tiddlerEditorBackground\" text={{{ [[$tiddlerEditorBackground$]lowercase[]] }}}>\n<$set name=\"backgroundColour\" value=<<contrastcolour target:\"\"\"$colour$\"\"\" fallbackTarget:\"\"\"\"\"\" colourA:\"\"\"$colourA$\"\"\" colourB:\"\"\"$colourB$\"\"\">>>\n<$set name=\"backgroundColour\" value={{{ [<backgroundColour>lowercase[]match<tiddlerEditorBackground>then[]] ~[<backgroundColour>] }}}>\n.cm-s-tiddlywiki div.CodeMirror-selected { background: <<backgroundColour>>; color: <<colour foreground>>; }\n.cm-s-tiddlywiki.CodeMirror ::selection { background: <<backgroundColour>>; color: <<colour foreground>>; }\n.cm-s-tiddlywiki .CodeMirror-line::-moz-selection,  .CodeMirror-line > span::-moz-selection,  .CodeMirror-line > span > span::-moz-selection { background: <<backgroundColour>>; color: <<colour foreground>>; }\n.cm-s-tiddlywiki .CodeMirror-line::selection,  .CodeMirror-line > span::selection,  .CodeMirror-line > span > span::selection { background: <<backgroundColour>>; color: <<colour foreground>>; }\n</$set>\n</$set>\n</$wikify>\n\\end\n\\define set-selection-background-colours(palette)\n<$macrocall $name=\"set-selection-background-css\" colour={{$palette$##foreground}} colourA={{{ [{$palette$##selection-background}!match[]!prefix[<<]!suffix[>>]] ~#073642 }}} colourB={{{ [{$palette$##selection-background}!match[]!prefix[<<]!suffix[>>]] ~#eee8d5 }}} tiddlerEditorBackground={{$palette$##tiddler-editor-background}}/>\n\\end\n\\define set-selection-background()\n<$macrocall $name=\"set-selection-background-colours\" palette={{$:/palette}}/>\n\\end\n\n\\rules only filteredtranscludeinline transcludeinline macrodef macrocallinline macrocallblock\n\n/* Make the editor resize to fit its content */\n\n.CodeMirror {\n\theight: auto;\n\tborder: 1px solid <<colour tiddler-editor-border>>;\n\tline-height: 1.5;\n\tfont-family: {{$:/themes/tiddlywiki/vanilla/settings/editorfontfamily}};\n\tfont-size: {{$:/themes/tiddlywiki/vanilla/metrics/bodyfontsize}};\n}\n\n.CodeMirror-scroll {\n\toverflow-x: auto;\n\toverflow-y: hidden;\n}\n\n.cm-s-tiddlywiki {\n  color-profile: sRGB;\n  rendering-intent: auto;\n}\n\n.cm-s-tiddlywiki.CodeMirror, .cm-s-tiddlywiki .CodeMirror-gutters { background-color: <<colour tiddler-editor-background>>; color: <<colour foreground>>; }\n.cm-s-tiddlywiki .CodeMirror-gutters {background: <<colour tiddler-editor-background>>; border-right: 1px solid <<colour tiddler-editor-border>>;}\n.cm-s-tiddlywiki .CodeMirror-linenumber {color: <<colour foreground>>;}\n.cm-s-tiddlywiki .CodeMirror-cursor { border-left: 2px solid <<colour foreground>>; }\n.cm-s-tiddlywiki span.cm-comment { color: #586e75; font-style:italic; font-weight:normal; }\n.cm-s-tiddlywiki .CodeMirror-activeline-background, .cm-s-tiddlywiki .CodeMirror-activeline-gutter .CodeMirror-linenumber { background: rgba(127,127,127,0.2); }\n.cm-s-tiddlywiki span.cm-matchhighlight { color: <<colour background>>; background-color: <<colour primary>>; font-weight: normal;}\n.cm-s-tiddlywiki .CodeMirror-widget { text-shadow: none; }\n.cm-s-tiddlywiki .CodeMirror-dialog { background: <<colour tiddler-background>>; }\n.cm-s-tiddlywiki .cm-header { color: #586e75; }\n.cm-s-tiddlywiki .cm-quote { color: #93a1a1; }\n.cm-s-tiddlywiki .cm-keyword { color: #cb4b16; }\n.cm-s-tiddlywiki .cm-atom { color: #d33682; }\n.cm-s-tiddlywiki .cm-number { color: #d33682; }\n.cm-s-tiddlywiki .cm-def { color: #2aa198; }\n.cm-s-tiddlywiki .cm-variable { color: #839496; }\n.cm-s-tiddlywiki .cm-variable-2 { color: #b58900; }\n.cm-s-tiddlywiki .cm-variable-3, .cm-s-tiddlywiki .cm-type { color: #6c71c4; }\n.cm-s-tiddlywiki .cm-property { color: #2aa198; }\n.cm-s-tiddlywiki .cm-operator { color: #6c71c4; }\n.cm-s-tiddlywiki .cm-comment { color: #586e75; font-style:italic; }\n.cm-s-tiddlywiki .cm-string { color: #859900; }\n.cm-s-tiddlywiki .cm-string-2 { color: #b58900; }\n.cm-s-tiddlywiki .cm-meta { color: #859900; }\n.cm-s-tiddlywiki .cm-qualifier { color: #b58900; }\n.cm-s-tiddlywiki .cm-builtin { color: #d33682; }\n.cm-s-tiddlywiki .cm-bracket { color: #cb4b16; }\n.cm-s-tiddlywiki .CodeMirror-matchingbracket { color: #859900; }\n.cm-s-tiddlywiki .CodeMirror-nonmatchingbracket { color: #dc322f; }\n.cm-s-tiddlywiki .cm-tag { color: #93a1a1; }\n.cm-s-tiddlywiki .cm-attribute { color: #2aa198; }\n.cm-s-tiddlywiki .cm-hr { color: transparent; border-top: 1px solid #586e75; display: block; }\n.cm-s-tiddlywiki .cm-link { color: #93a1a1; cursor: pointer; }\n.cm-s-tiddlywiki .cm-special { color: #6c71c4; }\n.cm-s-tiddlywiki .cm-em { color: #999; text-decoration: underline; text-decoration-style: dotted; }\n.cm-s-tiddlywiki .cm-error,\n.cm-s-tiddlywiki .cm-invalidchar { color: #586e75; border-bottom: 1px dotted #dc322f; }\n.cm-s-tiddlywiki .CodeMirror-matchingbracket { color: #859900; }\n.cm-s-tiddlywiki .CodeMirror-nonmatchingbracket { color: #dc322f; }\n.cm-s-tiddlywiki .cm-searching { background: rgba(243, 155, 53, .3); outline: 1px solid #F39B35; }\n<<set-fat-cursor-background>>\n<<set-selection-background>>\n"
        },
        "$:/core/ui/ControlPanel/Settings/CodeMirror": {
            "title": "$:/core/ui/ControlPanel/Settings/CodeMirror",
            "tags": "$:/tags/ControlPanel/SettingsTab",
            "caption": "CodeMirror",
            "list-after": "$:/core/ui/ControlPanel/Settings/TiddlyWiki",
            "text": "\\define lingo-base() $:/language/codemirror/controlPanel/\n\n<<lingo hint>>\n\n<$link to=\"$:/plugins/tiddlywiki/codemirror/usage\"><<lingo usage>></$link>\n\n<$link to=\"$:/plugins/tiddlywiki/codemirror/keyboard\"><<lingo keyboard>></$link>\n\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/ControlPanel/Settings/CodeMirror]]\">\n\n<div style=\"border-top:1px solid #eee;\">\n\n!! <$link><$transclude field=\"caption\"/></$link>\n\n<$transclude/>\n\n</div>\n\n</$list>\n"
        },
        "$:/core/ui/ControlPanel/Settings": {
            "title": "$:/core/ui/ControlPanel/Settings",
            "tags": "$:/tags/ControlPanel",
            "caption": "{{$:/language/ControlPanel/Settings/Caption}}",
            "text": "<div class=\"tc-control-panel\">\n<$macrocall $name=\"tabs\" tabsList=\"[all[shadows+tiddlers]tag[$:/tags/ControlPanel/SettingsTab]!has[draft.of]]\" default=\"$:/core/ui/ControlPanel/Settings/TiddlyWiki\" explicitState=\"$:/state/tab--697582678\"/>\n</div>\n"
        },
        "$:/core/ui/ControlPanel/Settings/TiddlyWiki": {
            "title": "$:/core/ui/ControlPanel/Settings/TiddlyWiki",
            "tags": "$:/tags/ControlPanel/SettingsTab",
            "caption": "TiddlyWiki",
            "text": "\\define lingo-base() $:/language/ControlPanel/Settings/\n\n<<lingo Hint>>\n\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/ControlPanel/Settings]]\">\n\n<div style=\"border-top:1px solid #eee;\">\n\n!! <$link><$transclude field=\"caption\"/></$link>\n\n<$transclude/>\n\n</div>\n\n</$list>\n"
        },
        "$:/plugins/tiddlywiki/codemirror/usage": {
            "title": "$:/plugins/tiddlywiki/codemirror/usage",
            "text": "! Configuration\n\nConfiguration for the ~CodeMirror text-editor can be done from within the CodeMirror Settings Tab in the [[ControlPanel|$:/ControlPanel]] (Settings - ~CodeMirror)\n\n\n!!Setting a different Theme\n\n~CodeMirror themes are available in the [ext[official GitHub repository|https://github.com/codemirror/CodeMirror/tree/master/theme]]\n\nMore themes can be found at https://github.com/FarhadG/code-mirror-themes/tree/master/themes and previewed [ext[here|http://farhadg.github.io/code-mirror-themes/]]\n\n\nTo add a theme to your wiki, follow these four steps:\n\n* choose one of the CSS files and copy its content to a new tiddler\n* remove all comments from the top and tag the tiddler with <<tag-pill \"$:/tags/Stylesheet\">>\n* add a field \"module-type\" with the value \"codemirror-theme\". add a field \"name\" with the exact ''name'' of the theme as value\n* save the tiddler and go to the Settings tab in $:/ControlPanel - look for the \"theme\" dropdown to select your newly added theme\n\n\n!!Line Numbers\n\nTo show or hide the Line Numbers at the left, go to ~ControlPanel - Settings - ~CodeMirror and look for the \"Line Numbers\" checkbox\n\n\n!!Line Wrapping\n\nControls if long lines get visually wrapped to a new line if they're too long to fit the editor width or if the editor should scroll horizontally\n\nTo change the line-wrapping behaviour, go to  ~ControlPanel - Settings - ~CodeMirror and look for the \"Line Wrapping\" checkbox\n\n\n!!Show Cursor when selecting\n\nDefines whether the Mouse cursor should be visually shown or hidden when making a text-selection\n\nTo change the show-cursor-when-selecting behaviour, go to  ~ControlPanel - Settings - ~CodeMirror and look for the \"Show cursor when selecting\" checkbox\n\n\n!!~CodeMirror Font Family\n\nThe Font-Family used within the ~CodeMirror text-editor defaults to \"monospace\" which will choose your configured monospace system-font\n\nThat setting can be overridden entering one or more Font-Families in the \"Font Family\" input field at ~ControlPanel - Settings - ~CodeMirror\n\n* The entries must be separated by semicolons ','\n* Font-Family Names that contain spaces must be quoted like \"My Font\"\n* If a list of Font-Families is specified, the last Font-Family found on the user-system gets used, non-existing fonts get ignored\n* If none of the specified Font-Families is available, ~CodeMirror uses the default \"monospace\"\n\n\n!!\"Hidden\" Settings:\n\n!!!Cursor Blink Rate\n\nThe cursor blink-rate defines how fast (in milliseconds) the cursor blinks inside the textarea\n\nYou can change it by editing $:/config/codemirror/cursorBlinkRate\n\"0\" disables blinking\n\n!!!Tabsize\n\nThe Tabsize defines the width of a tab character. Default is 4.\n\nYou can change it by editing $:/config/codemirror/tabSize\n\n!!!Indent Unit\n\nNot enabled for vnd.tiddlywiki and x-tiddlywiki\n\nDefines how many spaces a text-block should be indented. Defaults to 2.\n\nYou can change it by editing $:/config/codemirror/indentUnit\n\n"
        }
    }
}
{
    "tiddlers": {
        "$:/config/codemirror/autocomplete": {
            "title": "$:/config/codemirror/autocomplete",
            "extend": "extraKeys",
            "type": "json",
            "text": "{\n\t\"Ctrl-Space\": \"autocomplete\"\n}"
        },
        "$:/plugins/tiddlywiki/codemirror/addon/hint/anyword-hint.js": {
            "text": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n!function(e){\"object\"==typeof exports&&\"object\"==typeof module?e(require(\"../../lib/codemirror\")):\"function\"==typeof define&&define.amd?define([\"../../lib/codemirror\"],e):e(CodeMirror)}(function(y){\"use strict\";var b=/[\\w$]+/;y.registerHelper(\"hint\",\"anyword\",function(e,r){for(var t=r&&r.word||b,o=r&&r.range||500,i=e.getCursor(),n=e.getLine(i.line),f=i.ch,s=f;s&&t.test(n.charAt(s-1));)--s;for(var a=s!=f&&n.slice(s,f),c=r&&r.list||[],l={},d=new RegExp(t.source,\"g\"),u=-1;u<=1;u+=2)for(var p=i.line,g=Math.min(Math.max(p+u*o,e.firstLine()),e.lastLine())+u;p!=g;p+=u)for(var h,m=e.getLine(p);h=d.exec(m);)p==i.line&&h[0]===a||a&&0!=h[0].lastIndexOf(a,0)||Object.prototype.hasOwnProperty.call(l,h[0])||(l[h[0]]=!0,c.push(h[0]));return{list:c,from:y.Pos(i.line,s),to:y.Pos(i.line,f)}})});\n",
            "type": "application/javascript",
            "title": "$:/plugins/tiddlywiki/codemirror/addon/hint/anyword-hint.js",
            "module-type": "codemirror"
        },
        "$:/plugins/tiddlywiki/codemirror/addon/hint/css-hint.js": {
            "text": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n!function(e){\"object\"==typeof exports&&\"object\"==typeof module?e(require(\"../../lib/codemirror\"),require(\"../../mode/css/css\")):\"function\"==typeof define&&define.amd?define([\"../../lib/codemirror\",\"../../mode/css/css\"],e):e(CodeMirror)}(function(f){\"use strict\";var p={active:1,after:1,before:1,checked:1,default:1,disabled:1,empty:1,enabled:1,\"first-child\":1,\"first-letter\":1,\"first-line\":1,\"first-of-type\":1,focus:1,hover:1,\"in-range\":1,indeterminate:1,invalid:1,lang:1,\"last-child\":1,\"last-of-type\":1,link:1,not:1,\"nth-child\":1,\"nth-last-child\":1,\"nth-last-of-type\":1,\"nth-of-type\":1,\"only-of-type\":1,\"only-child\":1,optional:1,\"out-of-range\":1,placeholder:1,\"read-only\":1,\"read-write\":1,required:1,root:1,selection:1,target:1,valid:1,visited:1};f.registerHelper(\"hint\",\"css\",function(e){var t=e.getCursor(),r=e.getTokenAt(t),o=f.innerMode(e.getMode(),r.state);if(\"css\"==o.mode.name){if(\"keyword\"==r.type&&0==\"!important\".indexOf(r.string))return{list:[\"!important\"],from:f.Pos(t.line,r.start),to:f.Pos(t.line,r.end)};var i=r.start,s=t.ch,n=r.string.slice(0,s-i);/[^\\w$_-]/.test(n)&&(n=\"\",i=s=t.ch);var a=f.resolveMode(\"text/css\"),d=[],l=o.state.state;return\"pseudo\"==l||\"variable-3\"==r.type?c(p):\"block\"==l||\"maybeprop\"==l?c(a.propertyKeywords):\"prop\"==l||\"parens\"==l||\"at\"==l||\"params\"==l?(c(a.valueKeywords),c(a.colorKeywords)):\"media\"!=l&&\"media_parens\"!=l||(c(a.mediaTypes),c(a.mediaFeatures)),d.length?{list:d,from:f.Pos(t.line,i),to:f.Pos(t.line,s)}:void 0}function c(e){for(var t in e)n&&0!=t.lastIndexOf(n,0)||d.push(t)}})});\n",
            "type": "application/javascript",
            "title": "$:/plugins/tiddlywiki/codemirror/addon/hint/css-hint.js",
            "module-type": "codemirror"
        },
        "$:/plugins/tiddlywiki/codemirror/addon/hint/html-hint.js": {
            "text": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n!function(l){\"object\"==typeof exports&&\"object\"==typeof module?l(require(\"../../lib/codemirror\"),require(\"./xml-hint\")):\"function\"==typeof define&&define.amd?define([\"../../lib/codemirror\",\"./xml-hint\"],l):l(CodeMirror)}(function(n){\"use strict\";var l=\"ab aa af ak sq am ar an hy as av ae ay az bm ba eu be bn bh bi bs br bg my ca ch ce ny zh cv kw co cr hr cs da dv nl dz en eo et ee fo fj fi fr ff gl ka de el gn gu ht ha he hz hi ho hu ia id ie ga ig ik io is it iu ja jv kl kn kr ks kk km ki rw ky kv kg ko ku kj la lb lg li ln lo lt lu lv gv mk mg ms ml mt mi mr mh mn na nv nb nd ne ng nn no ii nr oc oj cu om or os pa pi fa pl ps pt qu rm rn ro ru sa sc sd se sm sg sr gd sn si sk sl so st es su sw ss sv ta te tg th ti bo tk tl tn to tr ts tt tw ty ug uk ur uz ve vi vo wa cy wo fy xh yi yo za zu\".split(\" \"),t=[\"_blank\",\"_self\",\"_top\",\"_parent\"],e=[\"ascii\",\"utf-8\",\"utf-16\",\"latin1\",\"latin1\"],a=[\"get\",\"post\",\"put\",\"delete\"],r=[\"application/x-www-form-urlencoded\",\"multipart/form-data\",\"text/plain\"],o=[\"all\",\"screen\",\"print\",\"embossed\",\"braille\",\"handheld\",\"print\",\"projection\",\"screen\",\"tty\",\"tv\",\"speech\",\"3d-glasses\",\"resolution [>][<][=] [X]\",\"device-aspect-ratio: X/Y\",\"orientation:portrait\",\"orientation:landscape\",\"device-height: [X]\",\"device-width: [X]\"],s={attrs:{}},u={a:{attrs:{href:null,ping:null,type:null,media:o,target:t,hreflang:l}},abbr:s,acronym:s,address:s,applet:s,area:{attrs:{alt:null,coords:null,href:null,target:null,ping:null,media:o,hreflang:l,type:null,shape:[\"default\",\"rect\",\"circle\",\"poly\"]}},article:s,aside:s,audio:{attrs:{src:null,mediagroup:null,crossorigin:[\"anonymous\",\"use-credentials\"],preload:[\"none\",\"metadata\",\"auto\"],autoplay:[\"\",\"autoplay\"],loop:[\"\",\"loop\"],controls:[\"\",\"controls\"]}},b:s,base:{attrs:{href:null,target:t}},basefont:s,bdi:s,bdo:s,big:s,blockquote:{attrs:{cite:null}},body:s,br:s,button:{attrs:{form:null,formaction:null,name:null,value:null,autofocus:[\"\",\"autofocus\"],disabled:[\"\",\"autofocus\"],formenctype:r,formmethod:a,formnovalidate:[\"\",\"novalidate\"],formtarget:t,type:[\"submit\",\"reset\",\"button\"]}},canvas:{attrs:{width:null,height:null}},caption:s,center:s,cite:s,code:s,col:{attrs:{span:null}},colgroup:{attrs:{span:null}},command:{attrs:{type:[\"command\",\"checkbox\",\"radio\"],label:null,icon:null,radiogroup:null,command:null,title:null,disabled:[\"\",\"disabled\"],checked:[\"\",\"checked\"]}},data:{attrs:{value:null}},datagrid:{attrs:{disabled:[\"\",\"disabled\"],multiple:[\"\",\"multiple\"]}},datalist:{attrs:{data:null}},dd:s,del:{attrs:{cite:null,datetime:null}},details:{attrs:{open:[\"\",\"open\"]}},dfn:s,dir:s,div:s,dl:s,dt:s,em:s,embed:{attrs:{src:null,type:null,width:null,height:null}},eventsource:{attrs:{src:null}},fieldset:{attrs:{disabled:[\"\",\"disabled\"],form:null,name:null}},figcaption:s,figure:s,font:s,footer:s,form:{attrs:{action:null,name:null,\"accept-charset\":e,autocomplete:[\"on\",\"off\"],enctype:r,method:a,novalidate:[\"\",\"novalidate\"],target:t}},frame:s,frameset:s,h1:s,h2:s,h3:s,h4:s,h5:s,h6:s,head:{attrs:{},children:[\"title\",\"base\",\"link\",\"style\",\"meta\",\"script\",\"noscript\",\"command\"]},header:s,hgroup:s,hr:s,html:{attrs:{manifest:null},children:[\"head\",\"body\"]},i:s,iframe:{attrs:{src:null,srcdoc:null,name:null,width:null,height:null,sandbox:[\"allow-top-navigation\",\"allow-same-origin\",\"allow-forms\",\"allow-scripts\"],seamless:[\"\",\"seamless\"]}},img:{attrs:{alt:null,src:null,ismap:null,usemap:null,width:null,height:null,crossorigin:[\"anonymous\",\"use-credentials\"]}},input:{attrs:{alt:null,dirname:null,form:null,formaction:null,height:null,list:null,max:null,maxlength:null,min:null,name:null,pattern:null,placeholder:null,size:null,src:null,step:null,value:null,width:null,accept:[\"audio/*\",\"video/*\",\"image/*\"],autocomplete:[\"on\",\"off\"],autofocus:[\"\",\"autofocus\"],checked:[\"\",\"checked\"],disabled:[\"\",\"disabled\"],formenctype:r,formmethod:a,formnovalidate:[\"\",\"novalidate\"],formtarget:t,multiple:[\"\",\"multiple\"],readonly:[\"\",\"readonly\"],required:[\"\",\"required\"],type:[\"hidden\",\"text\",\"search\",\"tel\",\"url\",\"email\",\"password\",\"datetime\",\"date\",\"month\",\"week\",\"time\",\"datetime-local\",\"number\",\"range\",\"color\",\"checkbox\",\"radio\",\"file\",\"submit\",\"image\",\"reset\",\"button\"]}},ins:{attrs:{cite:null,datetime:null}},kbd:s,keygen:{attrs:{challenge:null,form:null,name:null,autofocus:[\"\",\"autofocus\"],disabled:[\"\",\"disabled\"],keytype:[\"RSA\"]}},label:{attrs:{for:null,form:null}},legend:s,li:{attrs:{value:null}},link:{attrs:{href:null,type:null,hreflang:l,media:o,sizes:[\"all\",\"16x16\",\"16x16 32x32\",\"16x16 32x32 64x64\"]}},map:{attrs:{name:null}},mark:s,menu:{attrs:{label:null,type:[\"list\",\"context\",\"toolbar\"]}},meta:{attrs:{content:null,charset:e,name:[\"viewport\",\"application-name\",\"author\",\"description\",\"generator\",\"keywords\"],\"http-equiv\":[\"content-language\",\"content-type\",\"default-style\",\"refresh\"]}},meter:{attrs:{value:null,min:null,low:null,high:null,max:null,optimum:null}},nav:s,noframes:s,noscript:s,object:{attrs:{data:null,type:null,name:null,usemap:null,form:null,width:null,height:null,typemustmatch:[\"\",\"typemustmatch\"]}},ol:{attrs:{reversed:[\"\",\"reversed\"],start:null,type:[\"1\",\"a\",\"A\",\"i\",\"I\"]}},optgroup:{attrs:{disabled:[\"\",\"disabled\"],label:null}},option:{attrs:{disabled:[\"\",\"disabled\"],label:null,selected:[\"\",\"selected\"],value:null}},output:{attrs:{for:null,form:null,name:null}},p:s,param:{attrs:{name:null,value:null}},pre:s,progress:{attrs:{value:null,max:null}},q:{attrs:{cite:null}},rp:s,rt:s,ruby:s,s:s,samp:s,script:{attrs:{type:[\"text/javascript\"],src:null,async:[\"\",\"async\"],defer:[\"\",\"defer\"],charset:e}},section:s,select:{attrs:{form:null,name:null,size:null,autofocus:[\"\",\"autofocus\"],disabled:[\"\",\"disabled\"],multiple:[\"\",\"multiple\"]}},small:s,source:{attrs:{src:null,type:null,media:null}},span:s,strike:s,strong:s,style:{attrs:{type:[\"text/css\"],media:o,scoped:null}},sub:s,summary:s,sup:s,table:s,tbody:s,td:{attrs:{colspan:null,rowspan:null,headers:null}},textarea:{attrs:{dirname:null,form:null,maxlength:null,name:null,placeholder:null,rows:null,cols:null,autofocus:[\"\",\"autofocus\"],disabled:[\"\",\"disabled\"],readonly:[\"\",\"readonly\"],required:[\"\",\"required\"],wrap:[\"soft\",\"hard\"]}},tfoot:s,th:{attrs:{colspan:null,rowspan:null,headers:null,scope:[\"row\",\"col\",\"rowgroup\",\"colgroup\"]}},thead:s,time:{attrs:{datetime:null}},title:s,tr:s,track:{attrs:{src:null,label:null,default:null,kind:[\"subtitles\",\"captions\",\"descriptions\",\"chapters\",\"metadata\"],srclang:l}},tt:s,u:s,ul:s,var:s,video:{attrs:{src:null,poster:null,width:null,height:null,crossorigin:[\"anonymous\",\"use-credentials\"],preload:[\"auto\",\"metadata\",\"none\"],autoplay:[\"\",\"autoplay\"],mediagroup:[\"movie\"],muted:[\"\",\"muted\"],controls:[\"\",\"controls\"]}},wbr:s},i={accesskey:[\"a\",\"b\",\"c\",\"d\",\"e\",\"f\",\"g\",\"h\",\"i\",\"j\",\"k\",\"l\",\"m\",\"n\",\"o\",\"p\",\"q\",\"r\",\"s\",\"t\",\"u\",\"v\",\"w\",\"x\",\"y\",\"z\",\"0\",\"1\",\"2\",\"3\",\"4\",\"5\",\"6\",\"7\",\"8\",\"9\"],class:null,contenteditable:[\"true\",\"false\"],contextmenu:null,dir:[\"ltr\",\"rtl\",\"auto\"],draggable:[\"true\",\"false\",\"auto\"],dropzone:[\"copy\",\"move\",\"link\",\"string:\",\"file:\"],hidden:[\"hidden\"],id:null,inert:[\"inert\"],itemid:null,itemprop:null,itemref:null,itemscope:[\"itemscope\"],itemtype:null,lang:[\"en\",\"es\"],spellcheck:[\"true\",\"false\"],autocorrect:[\"true\",\"false\"],autocapitalize:[\"true\",\"false\"],style:null,tabindex:[\"1\",\"2\",\"3\",\"4\",\"5\",\"6\",\"7\",\"8\",\"9\"],title:null,translate:[\"yes\",\"no\"],onclick:null,rel:[\"stylesheet\",\"alternate\",\"author\",\"bookmark\",\"help\",\"license\",\"next\",\"nofollow\",\"noreferrer\",\"prefetch\",\"prev\",\"search\",\"tag\"]};function d(l){for(var t in i)i.hasOwnProperty(t)&&(l.attrs[t]=i[t])}for(var c in d(s),u)u.hasOwnProperty(c)&&u[c]!=s&&d(u[c]);n.htmlSchema=u,n.registerHelper(\"hint\",\"html\",function(l,t){var e={schemaInfo:u};if(t)for(var a in t)e[a]=t[a];return n.hint.xml(l,e)})});\n",
            "type": "application/javascript",
            "title": "$:/plugins/tiddlywiki/codemirror/addon/hint/html-hint.js",
            "module-type": "codemirror"
        },
        "$:/plugins/tiddlywiki/codemirror/addon/hint/javascript-hint.js": {
            "text": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n!function(t){\"object\"==typeof exports&&\"object\"==typeof module?t(require(\"../../lib/codemirror\")):\"function\"==typeof define&&define.amd?define([\"../../lib/codemirror\"],t):t(CodeMirror)}(function(f){var c=f.Pos;function g(t,e){for(var r=0,n=t.length;r<n;++r)e(t[r])}function r(t,e,r,n){var i=t.getCursor(),o=r(t,i);if(!/\\b(?:string|comment)\\b/.test(o.type)){var s=f.innerMode(t.getMode(),o.state);if(\"json\"!==s.mode.helperType){o.state=s.state,/^[\\w$_]*$/.test(o.string)?o.end>i.ch&&(o.end=i.ch,o.string=o.string.slice(0,i.ch-o.start)):o={start:i.ch,end:i.ch,string:\"\",state:o.state,type:\".\"==o.string?\"property\":null};for(var a=o;\"property\"==a.type;){if(\".\"!=(a=r(t,c(i.line,a.start))).string)return;a=r(t,c(i.line,a.start));var l=l||[];l.push(a)}return{list:function(t,e,r,n){var i=[],o=t.string,s=n&&n.globalScope||window;function a(t){0!=t.lastIndexOf(o,0)||function(t,e){if(Array.prototype.indexOf)return-1!=t.indexOf(e);for(var r=t.length;r--;)if(t[r]===e)return 1}(i,t)||i.push(t)}function l(t){\"string\"==typeof t?g(y,a):t instanceof Array?g(h,a):t instanceof Function&&g(v,a),function(t,e){if(Object.getOwnPropertyNames&&Object.getPrototypeOf)for(var r=t;r;r=Object.getPrototypeOf(r))Object.getOwnPropertyNames(r).forEach(e);else for(var n in t)e(n)}(t,a)}if(e&&e.length){var f,c=e.pop();for(c.type&&0===c.type.indexOf(\"variable\")?(n&&n.additionalContext&&(f=n.additionalContext[c.string]),n&&!1===n.useGlobalScope||(f=f||s[c.string])):\"string\"==c.type?f=\"\":\"atom\"==c.type?f=1:\"function\"==c.type&&(null==s.jQuery||\"$\"!=c.string&&\"jQuery\"!=c.string||\"function\"!=typeof s.jQuery?null!=s._&&\"_\"==c.string&&\"function\"==typeof s._&&(f=s._()):f=s.jQuery());null!=f&&e.length;)f=f[e.pop().string];null!=f&&l(f)}else{for(var p=t.state.localVars;p;p=p.next)a(p.name);for(var u=t.state.context;u;u=u.prev)for(p=u.vars;p;p=p.next)a(p.name);for(p=t.state.globalVars;p;p=p.next)a(p.name);if(n&&null!=n.additionalContext)for(var d in n.additionalContext)a(d);n&&!1===n.useGlobalScope||l(s),g(r,a)}return i}(o,l,e,n),from:c(i.line,o.start),to:c(i.line,o.end)}}}}function n(t,e){var r=t.getTokenAt(e);return e.ch==r.start+1&&\".\"==r.string.charAt(0)?(r.end=r.start,r.string=\".\",r.type=\"property\"):/^\\.[\\w$_]*$/.test(r.string)&&(r.type=\"property\",r.start++,r.string=r.string.replace(/\\./,\"\")),r}f.registerHelper(\"hint\",\"javascript\",function(t,e){return r(t,i,function(t,e){return t.getTokenAt(e)},e)}),f.registerHelper(\"hint\",\"coffeescript\",function(t,e){return r(t,o,n,e)});var y=\"charAt charCodeAt indexOf lastIndexOf substring substr slice trim trimLeft trimRight toUpperCase toLowerCase split concat match replace search\".split(\" \"),h=\"length concat join splice push pop shift unshift slice reverse sort indexOf lastIndexOf every some filter forEach map reduce reduceRight \".split(\" \"),v=\"prototype apply call bind\".split(\" \"),i=\"break case catch class const continue debugger default delete do else export extends false finally for function if in import instanceof new null return super switch this throw true try typeof var void while with yield\".split(\" \"),o=\"and break catch class continue delete do else extends false finally for if in instanceof isnt new no not null of off on or return switch then throw true try typeof until void while with yes\".split(\" \")});\n",
            "type": "application/javascript",
            "title": "$:/plugins/tiddlywiki/codemirror/addon/hint/javascript-hint.js",
            "module-type": "codemirror"
        },
        "$:/plugins/tiddlywiki/codemirror/addon/hint/show-hint.js": {
            "text": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n!function(t){\"object\"==typeof exports&&\"object\"==typeof module?t(require(\"../../lib/codemirror\")):\"function\"==typeof define&&define.amd?define([\"../../lib/codemirror\"],t):t(CodeMirror)}(function(W){\"use strict\";var I=\"CodeMirror-hint-active\";function o(t,i){this.cm=t,this.options=i,this.widget=null,this.debounce=0,this.tick=0,this.startPos=this.cm.getCursor(\"start\"),this.startLen=this.cm.getLine(this.startPos.line).length-this.cm.getSelection().length;var e=this;t.on(\"cursorActivity\",this.activityFunc=function(){e.cursorActivity()})}W.showHint=function(t,i,e){if(!i)return t.showHint(e);e&&e.async&&(i.async=!0);var n={hint:i};if(e)for(var o in e)n[o]=e[o];return t.showHint(n)},W.defineExtension(\"showHint\",function(t){t=function(t,i,e){var n=t.options.hintOptions,o={};for(var s in l)o[s]=l[s];if(n)for(var s in n)void 0!==n[s]&&(o[s]=n[s]);if(e)for(var s in e)void 0!==e[s]&&(o[s]=e[s]);o.hint.resolve&&(o.hint=o.hint.resolve(t,i));return o}(this,this.getCursor(\"start\"),t);var i=this.listSelections();if(!(1<i.length)){if(this.somethingSelected()){if(!t.hint.supportsSelection)return;for(var e=0;e<i.length;e++)if(i[e].head.line!=i[e].anchor.line)return}this.state.completionActive&&this.state.completionActive.close();var n=this.state.completionActive=new o(this,t);n.options.hint&&(W.signal(this,\"startCompletion\",this),n.update(!0))}}),W.defineExtension(\"closeHint\",function(){this.state.completionActive&&this.state.completionActive.close()});var s=window.requestAnimationFrame||function(t){return setTimeout(t,1e3/60)},c=window.cancelAnimationFrame||clearTimeout;function B(t){return\"string\"==typeof t?t:t.text}function K(t,i){for(;i&&i!=t;){if(\"LI\"===i.nodeName.toUpperCase()&&i.parentNode==t)return i;i=i.parentNode}}function n(o,t){this.completion=o,this.data=t,this.picked=!1;var e=this,s=o.cm,c=s.getInputField().ownerDocument,r=c.defaultView||c.parentWindow,l=this.hints=c.createElement(\"ul\"),i=o.cm.options.theme;l.className=\"CodeMirror-hints \"+i,this.selectedHint=t.selectedHint||0;for(var n=t.list,h=0;h<n.length;++h){var a=l.appendChild(c.createElement(\"li\")),u=n[h],f=\"CodeMirror-hint\"+(h!=this.selectedHint?\"\":\" \"+I);null!=u.className&&(f=u.className+\" \"+f),a.className=f,u.render?u.render(a,t,u):a.appendChild(c.createTextNode(u.displayText||B(u))),a.hintId=h}var p,d,m,g=o.options.container||c.body,v=s.cursorCoords(o.options.alignWithWord?t.from:null),y=v.left,w=v.bottom,H=!0,C=0,b=0;g!==c.body&&(d=(p=-1!==[\"absolute\",\"relative\",\"fixed\"].indexOf(r.getComputedStyle(g).position)?g:g.offsetParent).getBoundingClientRect(),m=c.body.getBoundingClientRect(),C=d.left-m.left-p.scrollLeft,b=d.top-m.top-p.scrollTop),l.style.left=y-C+\"px\",l.style.top=w-b+\"px\";var k=r.innerWidth||Math.max(c.body.offsetWidth,c.documentElement.offsetWidth),A=r.innerHeight||Math.max(c.body.offsetHeight,c.documentElement.offsetHeight);g.appendChild(l);var x,T,S=l.getBoundingClientRect(),M=S.bottom-A,N=l.scrollHeight>l.clientHeight+1,F=s.getScrollInfo();0<M&&(x=S.bottom-S.top,0<v.top-(v.bottom-S.top)-x?(l.style.top=(w=v.top-x-b)+\"px\",H=!1):A<x&&(l.style.height=A-5+\"px\",l.style.top=(w=v.bottom-S.top-b)+\"px\",T=s.getCursor(),t.from.ch!=T.ch&&(v=s.cursorCoords(T),l.style.left=(y=v.left-C)+\"px\",S=l.getBoundingClientRect())));var E,O=S.right-k;if(0<O&&(S.right-S.left>k&&(l.style.width=k-5+\"px\",O-=S.right-S.left-k),l.style.left=(y=v.left-O-C)+\"px\"),N)for(var P=l.firstChild;P;P=P.nextSibling)P.style.paddingRight=s.display.nativeBarWidth+\"px\";return s.addKeyMap(this.keyMap=function(t,n){var o={Up:function(){n.moveFocus(-1)},Down:function(){n.moveFocus(1)},PageUp:function(){n.moveFocus(1-n.menuSize(),!0)},PageDown:function(){n.moveFocus(n.menuSize()-1,!0)},Home:function(){n.setFocus(0)},End:function(){n.setFocus(n.length-1)},Enter:n.pick,Tab:n.pick,Esc:n.close};/Mac/.test(navigator.platform)&&(o[\"Ctrl-P\"]=function(){n.moveFocus(-1)},o[\"Ctrl-N\"]=function(){n.moveFocus(1)});var i=t.options.customKeys,s=i?{}:o;function e(t,i){var e=\"string\"!=typeof i?function(t){return i(t,n)}:o.hasOwnProperty(i)?o[i]:i;s[t]=e}if(i)for(var c in i)i.hasOwnProperty(c)&&e(c,i[c]);var r=t.options.extraKeys;if(r)for(var c in r)r.hasOwnProperty(c)&&e(c,r[c]);return s}(o,{moveFocus:function(t,i){e.changeActive(e.selectedHint+t,i)},setFocus:function(t){e.changeActive(t)},menuSize:function(){return e.screenAmount()},length:n.length,close:function(){o.close()},pick:function(){e.pick()},data:t})),o.options.closeOnUnfocus&&(s.on(\"blur\",this.onBlur=function(){E=setTimeout(function(){o.close()},100)}),s.on(\"focus\",this.onFocus=function(){clearTimeout(E)})),s.on(\"scroll\",this.onScroll=function(){var t=s.getScrollInfo(),i=s.getWrapperElement().getBoundingClientRect(),e=w+F.top-t.top,n=e-(r.pageYOffset||(c.documentElement||c.body).scrollTop);if(H||(n+=l.offsetHeight),n<=i.top||n>=i.bottom)return o.close();l.style.top=e+\"px\",l.style.left=y+F.left-t.left+\"px\"}),W.on(l,\"dblclick\",function(t){var i=K(l,t.target||t.srcElement);i&&null!=i.hintId&&(e.changeActive(i.hintId),e.pick())}),W.on(l,\"click\",function(t){var i=K(l,t.target||t.srcElement);i&&null!=i.hintId&&(e.changeActive(i.hintId),o.options.completeOnSingleClick&&e.pick())}),W.on(l,\"mousedown\",function(){setTimeout(function(){s.focus()},20)}),this.scrollToActive(),W.signal(t,\"select\",n[this.selectedHint],l.childNodes[this.selectedHint]),!0}function r(t,i,e,n){var o;t.async?t(i,n,e):(o=t(i,e))&&o.then?o.then(n):n(o)}o.prototype={close:function(){this.active()&&(this.cm.state.completionActive=null,this.tick=null,this.cm.off(\"cursorActivity\",this.activityFunc),this.widget&&this.data&&W.signal(this.data,\"close\"),this.widget&&this.widget.close(),W.signal(this.cm,\"endCompletion\",this.cm))},active:function(){return this.cm.state.completionActive==this},pick:function(t,i){var e=t.list[i],n=this;this.cm.operation(function(){e.hint?e.hint(n.cm,t,e):n.cm.replaceRange(B(e),e.from||t.from,e.to||t.to,\"complete\"),W.signal(t,\"pick\",e),n.cm.scrollIntoView()}),this.close()},cursorActivity:function(){this.debounce&&(c(this.debounce),this.debounce=0);var t=this.startPos;this.data&&(t=this.data.from);var i,e=this.cm.getCursor(),n=this.cm.getLine(e.line);e.line!=this.startPos.line||n.length-e.ch!=this.startLen-this.startPos.ch||e.ch<t.ch||this.cm.somethingSelected()||!e.ch||this.options.closeCharacters.test(n.charAt(e.ch-1))?this.close():((i=this).debounce=s(function(){i.update()}),this.widget&&this.widget.disable())},update:function(i){var e,n;null!=this.tick&&(n=++(e=this).tick,r(this.options.hint,this.cm,this.options,function(t){e.tick==n&&e.finishUpdate(t,i)}))},finishUpdate:function(t,i){this.data&&W.signal(this.data,\"update\");var e=this.widget&&this.widget.picked||i&&this.options.completeSingle;this.widget&&this.widget.close(),(this.data=t)&&t.list.length&&(e&&1==t.list.length?this.pick(t,0):(this.widget=new n(this,t),W.signal(t,\"shown\")))}},n.prototype={close:function(){var t;this.completion.widget==this&&(this.completion.widget=null,this.hints.parentNode.removeChild(this.hints),this.completion.cm.removeKeyMap(this.keyMap),t=this.completion.cm,this.completion.options.closeOnUnfocus&&(t.off(\"blur\",this.onBlur),t.off(\"focus\",this.onFocus)),t.off(\"scroll\",this.onScroll))},disable:function(){this.completion.cm.removeKeyMap(this.keyMap);var t=this;this.keyMap={Enter:function(){t.picked=!0}},this.completion.cm.addKeyMap(this.keyMap)},pick:function(){this.completion.pick(this.data,this.selectedHint)},changeActive:function(t,i){var e;t>=this.data.list.length?t=i?this.data.list.length-1:0:t<0&&(t=i?0:this.data.list.length-1),this.selectedHint!=t&&((e=this.hints.childNodes[this.selectedHint])&&(e.className=e.className.replace(\" \"+I,\"\")),(e=this.hints.childNodes[this.selectedHint=t]).className+=\" \"+I,this.scrollToActive(),W.signal(this.data,\"select\",this.data.list[this.selectedHint],e))},scrollToActive:function(){var t=this.completion.options.scrollMargin||0,i=this.hints.childNodes[Math.max(0,this.selectedHint-t)],e=this.hints.childNodes[Math.min(this.data.list.length-1,this.selectedHint+t)],n=this.hints.firstChild;i.offsetTop<this.hints.scrollTop?this.hints.scrollTop=i.offsetTop-n.offsetTop:e.offsetTop+e.offsetHeight>this.hints.scrollTop+this.hints.clientHeight&&(this.hints.scrollTop=e.offsetTop+e.offsetHeight-this.hints.clientHeight+n.offsetTop)},screenAmount:function(){return Math.floor(this.hints.clientHeight/this.hints.firstChild.offsetHeight)||1}},W.registerHelper(\"hint\",\"auto\",{resolve:function(t,i){var e,c=t.getHelpers(i,\"hint\");if(c.length){var n=function(t,n,o){var s=function(t,i){if(!t.somethingSelected())return i;for(var e=[],n=0;n<i.length;n++)i[n].supportsSelection&&e.push(i[n]);return e}(t,c);!function i(e){if(e==s.length)return n(null);r(s[e],t,o,function(t){t&&0<t.list.length?n(t):i(e+1)})}(0)};return n.async=!0,n.supportsSelection=!0,n}return(e=t.getHelper(t.getCursor(),\"hintWords\"))?function(t){return W.hint.fromList(t,{words:e})}:W.hint.anyword?function(t,i){return W.hint.anyword(t,i)}:function(){}}}),W.registerHelper(\"hint\",\"fromList\",function(t,i){var e,n=t.getCursor(),o=t.getTokenAt(n),s=W.Pos(n.line,o.start),c=n;o.start<n.ch&&/\\w/.test(o.string.charAt(n.ch-o.start-1))?e=o.string.substr(0,n.ch-o.start):(e=\"\",s=n);for(var r=[],l=0;l<i.words.length;l++){var h=i.words[l];h.slice(0,e.length)==e&&r.push(h)}if(r.length)return{list:r,from:s,to:c}}),W.commands.autocomplete=W.showHint;var l={hint:W.hint.auto,completeSingle:!0,alignWithWord:!0,closeCharacters:/[\\s()\\[\\]{};:>,]/,closeOnUnfocus:!0,completeOnSingleClick:!0,container:null,customKeys:null,extraKeys:null};W.defineOption(\"hintOptions\",null)});\n",
            "type": "application/javascript",
            "title": "$:/plugins/tiddlywiki/codemirror/addon/hint/show-hint.js",
            "module-type": "codemirror"
        },
        "$:/plugins/tiddlywiki/codemirror/addon/hint/show-hint.css": {
            "text": ".CodeMirror-hints {\n  position: absolute;\n  z-index: 10;\n  overflow: hidden;\n  list-style: none;\n\n  margin: 0;\n  padding: 2px;\n\n  -webkit-box-shadow: 2px 3px 5px rgba(0,0,0,.2);\n  -moz-box-shadow: 2px 3px 5px rgba(0,0,0,.2);\n  box-shadow: 2px 3px 5px rgba(0,0,0,.2);\n  border-radius: 3px;\n  border: 1px solid silver;\n\n  background: white;\n  font-size: 90%;\n  font-family: monospace;\n\n  max-height: 20em;\n  overflow-y: auto;\n}\n\n.CodeMirror-hint {\n  margin: 0;\n  padding: 0 4px;\n  border-radius: 2px;\n  white-space: pre;\n  color: black;\n  cursor: pointer;\n}\n\nli.CodeMirror-hint-active {\n  background: #08f;\n  color: white;\n}\n",
            "type": "text/css",
            "title": "$:/plugins/tiddlywiki/codemirror/addon/hint/show-hint.css",
            "tags": "[[$:/tags/Stylesheet]]"
        },
        "$:/plugins/tiddlywiki/codemirror/addon/hint/xml-hint.js": {
            "text": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n!function(t){\"object\"==typeof exports&&\"object\"==typeof module?t(require(\"../../lib/codemirror\")):\"function\"==typeof define&&define.amd?define([\"../../lib/codemirror\"],t):t(CodeMirror)}(function(H){\"use strict\";var R=H.Pos;function z(t,e,r){return r?0<=t.indexOf(e):0==t.lastIndexOf(e,0)}H.registerHelper(\"hint\",\"xml\",function(t,e){var r=e&&e.schemaInfo,n=e&&e.quoteChar||'\"',s=e&&e.matchInMiddle;if(r){var i=t.getCursor(),o=t.getTokenAt(i);if(o.end>i.ch&&(o.end=i.ch,o.string=o.string.slice(0,i.ch-o.start)),(p=H.innerMode(t.getMode(),o.state)).mode.xmlCurrentTag){var a,l,g,c=[],f=!1,h=/\\btag\\b/.test(o.type)&&!/>$/.test(o.string),u=h&&/^\\w/.test(o.string);u?(M=t.getLine(i.line).slice(Math.max(0,o.start-2),o.start),(g=/<\\/$/.test(M)?\"close\":/<$/.test(M)?\"open\":null)&&(l=o.start-(\"close\"==g?2:1))):h&&\"<\"==o.string?g=\"open\":h&&\"</\"==o.string&&(g=\"close\");var d=p.mode.xmlCurrentTag(p.state);if(!h&&!d||g){u&&(a=o.string),f=g;var p,m=p.mode.xmlCurrentContext?p.mode.xmlCurrentContext(p.state):[],v=(p=m.length&&m[m.length-1])&&r[p],y=p?v&&v.children:r[\"!top\"];if(y&&\"close\"!=g)for(var x=0;x<y.length;++x)a&&!z(y[x],a,s)||c.push(\"<\"+y[x]);else if(\"close\"!=g)for(var C in r)!r.hasOwnProperty(C)||\"!top\"==C||\"!attrs\"==C||a&&!z(C,a,s)||c.push(\"<\"+C);p&&(!a||\"close\"==g&&z(p,a,s))&&c.push(\"</\"+p+\">\")}else{var b=(v=d&&r[d.name])&&v.attrs,O=r[\"!attrs\"];if(!b&&!O)return;if(b){if(O){var w={};for(var A in O)O.hasOwnProperty(A)&&(w[A]=O[A]);for(var A in b)b.hasOwnProperty(A)&&(w[A]=b[A]);b=w}}else b=O;if(\"string\"==o.type||\"=\"==o.string){var M,P,$,I,T,j=(M=t.getRange(R(i.line,Math.max(0,i.ch-60)),R(i.line,\"string\"==o.type?o.start:o.end))).match(/([^\\s\\u00a0=<>\\\"\\']+)=$/);if(!j||!b.hasOwnProperty(j[1])||!(P=b[j[1]]))return;\"function\"==typeof P&&(P=P.call(this,t)),\"string\"==o.type&&(a=o.string,$=0,/['\"]/.test(o.string.charAt(0))&&(n=o.string.charAt(0),a=o.string.slice(1),$++),I=o.string.length,/['\"]/.test(o.string.charAt(I-1))&&(n=o.string.charAt(I-1),a=o.string.substr($,I-2)),!$||(T=t.getLine(i.line)).length>o.end&&T.charAt(o.end)==n&&o.end++,f=!0);var q=function(t){if(t)for(var e=0;e<t.length;++e)a&&!z(t[e],a,s)||c.push(n+t[e]+n);return k()};return P&&P.then?P.then(q):q(P)}for(var L in\"attribute\"==o.type&&(a=o.string,f=!0),b)!b.hasOwnProperty(L)||a&&!z(L,a,s)||c.push(L)}return k()}}function k(){return{list:c,from:f?R(i.line,null==l?o.start:l):i,to:f?R(i.line,o.end):i}}})});\n",
            "type": "application/javascript",
            "title": "$:/plugins/tiddlywiki/codemirror/addon/hint/xml-hint.js",
            "module-type": "codemirror"
        },
        "$:/plugins/tiddlywiki/codemirror-autocomplete/readme": {
            "title": "$:/plugins/tiddlywiki/codemirror-autocomplete/readme",
            "text": "This plugin enhances the [[CodeMirror|http://codemirror.net]] text editor with Autocompletion functionality. It needs the latest [[CodeMirror plugin|$:/plugins/tiddlywiki/codemirror]] to be installed\n\nIt adds Autocompletion for ''html'', ''javascript'' and ''xml'' and also for ''already present words'' within a text-editor instance\n\nThe ''Keyboard Shortcut'' for autocompletion is `Ctrl+Space`\n\n"
        }
    }
}
{
    "tiddlers": {
        "$:/config/codemirror/autoCloseBrackets": {
            "title": "$:/config/codemirror/autoCloseBrackets",
            "type": "bool",
            "text": "true"
        },
        "$:/config/codemirror/matchBrackets": {
            "title": "$:/config/codemirror/matchBrackets",
            "type": "bool",
            "text": "true\n"
        },
        "$:/plugins/tiddlywiki/codemirror/addon/edit/closebrackets.js": {
            "text": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n!function(e){\"object\"==typeof exports&&\"object\"==typeof module?e(require(\"../../lib/codemirror\")):\"function\"==typeof define&&define.amd?define([\"../../lib/codemirror\"],e):e(CodeMirror)}(function(C){var r={pairs:\"()[]{}''\\\"\\\"\",closeBefore:\")]}'\\\":;>\",triples:\"\",explode:\"[]{}\"},x=C.Pos;function P(e,t){return\"pairs\"==t&&\"string\"==typeof e?e:\"object\"==typeof e&&null!=e[t]?e[t]:r[t]}C.defineOption(\"autoCloseBrackets\",!1,function(e,t,r){r&&r!=C.Init&&(e.removeKeyMap(i),e.state.closeBrackets=null),t&&(n(P(t,\"pairs\")),e.state.closeBrackets=t,e.addKeyMap(i))});var i={Backspace:function(e){var t=k(e);if(!t||e.getOption(\"disableInput\"))return C.Pass;for(var r=P(t,\"pairs\"),n=e.listSelections(),i=0;i<n.length;i++){if(!n[i].empty())return C.Pass;var a=s(e,n[i].head);if(!a||r.indexOf(a)%2!=0)return C.Pass}for(i=n.length-1;0<=i;i--){var o=n[i].head;e.replaceRange(\"\",x(o.line,o.ch-1),x(o.line,o.ch+1),\"+delete\")}},Enter:function(n){var e=k(n),t=e&&P(e,\"explode\");if(!t||n.getOption(\"disableInput\"))return C.Pass;for(var i=n.listSelections(),r=0;r<i.length;r++){if(!i[r].empty())return C.Pass;var a=s(n,i[r].head);if(!a||t.indexOf(a)%2!=0)return C.Pass}n.operation(function(){var e=n.lineSeparator()||\"\\n\";n.replaceSelection(e+e,null),n.execCommand(\"goCharLeft\"),i=n.listSelections();for(var t=0;t<i.length;t++){var r=i[t].head.line;n.indentLine(r,null,!0),n.indentLine(r+1,null,!0)}})}};function n(e){for(var t=0;t<e.length;t++){var r=e.charAt(t),n=\"'\"+r+\"'\";i[n]||(i[n]=function(t){return function(e){return function(i,e){var t=k(i);if(!t||i.getOption(\"disableInput\"))return C.Pass;var r=P(t,\"pairs\"),n=r.indexOf(e);if(-1==n)return C.Pass;for(var a,o=P(t,\"closeBefore\"),s=P(t,\"triples\"),l=r.charAt(n+1)==e,c=i.listSelections(),f=n%2==0,h=0;h<c.length;h++){var u,d=c[h],p=d.head,g=i.getRange(p,x(p.line,p.ch+1));if(f&&!d.empty())u=\"surround\";else if(!l&&f||g!=e)if(l&&1<p.ch&&0<=s.indexOf(e)&&i.getRange(x(p.line,p.ch-2),p)==e+e){if(2<p.ch&&/\\bstring/.test(i.getTokenTypeAt(x(p.line,p.ch-2))))return C.Pass;u=\"addFour\"}else if(l){var v=0==p.ch?\" \":i.getRange(x(p.line,p.ch-1),p);if(C.isWordChar(g)||v==e||C.isWordChar(v))return C.Pass;u=\"both\"}else{if(!f||!(0===g.length||/\\s/.test(g)||-1<o.indexOf(g)))return C.Pass;u=\"both\"}else u=l&&function(e,t){var r=e.getTokenAt(x(t.line,t.ch+1));return/\\bstring/.test(r.type)&&r.start==t.ch&&(0==t.ch||!/\\bstring/.test(e.getTokenTypeAt(t)))}(i,p)?\"both\":0<=s.indexOf(e)&&i.getRange(p,x(p.line,p.ch+3))==e+e+e?\"skipThree\":\"skip\";if(a){if(a!=u)return C.Pass}else a=u}var m=n%2?r.charAt(n-1):e,b=n%2?e:r.charAt(n+1);i.operation(function(){if(\"skip\"==a)i.execCommand(\"goCharRight\");else if(\"skipThree\"==a)for(var e=0;e<3;e++)i.execCommand(\"goCharRight\");else if(\"surround\"==a){for(var t=i.getSelections(),e=0;e<t.length;e++)t[e]=m+t[e]+b;i.replaceSelections(t,\"around\"),t=i.listSelections().slice();for(e=0;e<t.length;e++)t[e]=(r=t[e],n=0<C.cmpPos(r.anchor,r.head),{anchor:new x(r.anchor.line,r.anchor.ch+(n?-1:1)),head:new x(r.head.line,r.head.ch+(n?1:-1))});i.setSelections(t)}else\"both\"==a?(i.replaceSelection(m+b,null),i.triggerElectric(m+b),i.execCommand(\"goCharLeft\")):\"addFour\"==a&&(i.replaceSelection(m+m+m+m,\"before\"),i.execCommand(\"goCharRight\"));var r,n})}(e,t)}}(r))}}function k(e){var t=e.state.closeBrackets;return t&&!t.override&&e.getModeAt(e.getCursor()).closeBrackets||t}function s(e,t){var r=e.getRange(x(t.line,t.ch-1),x(t.line,t.ch+1));return 2==r.length?r:null}n(r.pairs+\"`\")});\n",
            "type": "application/javascript",
            "title": "$:/plugins/tiddlywiki/codemirror/addon/edit/closebrackets.js",
            "module-type": "codemirror"
        },
        "$:/plugins/tiddlywiki/codemirror/addon/edit/matchbrackets.js": {
            "text": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n!function(t){\"object\"==typeof exports&&\"object\"==typeof module?t(require(\"../../lib/codemirror\")):\"function\"==typeof define&&define.amd?define([\"../../lib/codemirror\"],t):t(CodeMirror)}(function(i){var h=/MSIE \\d/.test(navigator.userAgent)&&(null==document.documentMode||document.documentMode<8),k=i.Pos,p={\"(\":\")>\",\")\":\"(<\",\"[\":\"]>\",\"]\":\"[<\",\"{\":\"}>\",\"}\":\"{<\",\"<\":\">>\",\">\":\"<<\"};function v(t){return t&&t.bracketRegex||/[(){}[\\]]/}function u(t,e,n){var r=t.getLineHandle(e.line),i=e.ch-1,c=n&&n.afterCursor;null==c&&(c=/(^| )cm-fat-cursor($| )/.test(t.getWrapperElement().className));var a=v(n),o=!c&&0<=i&&a.test(r.text.charAt(i))&&p[r.text.charAt(i)]||a.test(r.text.charAt(i+1))&&p[r.text.charAt(++i)];if(!o)return null;var l=\">\"==o.charAt(1)?1:-1;if(n&&n.strict&&0<l!=(i==e.ch))return null;var s=t.getTokenTypeAt(k(e.line,i+1)),h=f(t,k(e.line,i+(0<l?1:0)),l,s||null,n);return null==h?null:{from:k(e.line,i),to:h&&h.pos,match:h&&h.ch==o.charAt(0),forward:0<l}}function f(t,e,n,r,i){for(var c=i&&i.maxScanLineLength||1e4,a=i&&i.maxScanLines||1e3,o=[],l=v(i),s=0<n?Math.min(e.line+a,t.lastLine()+1):Math.max(t.firstLine()-1,e.line-a),h=e.line;h!=s;h+=n){var u=t.getLine(h);if(u){var f=0<n?0:u.length-1,m=0<n?u.length:-1;if(!(u.length>c))for(h==e.line&&(f=e.ch-(n<0?1:0));f!=m;f+=n){var g=u.charAt(f);if(l.test(g)&&(void 0===r||t.getTokenTypeAt(k(h,f+1))==r)){var d=p[g];if(d&&\">\"==d.charAt(1)==0<n)o.push(g);else{if(!o.length)return{pos:k(h,f),ch:g};o.pop()}}}}}return h-n!=(0<n?t.lastLine():t.firstLine())&&null}function e(t,e,n){for(var r=t.state.matchBrackets.maxHighlightLineLength||1e3,i=[],c=t.listSelections(),a=0;a<c.length;a++){var o,l=c[a].empty()&&u(t,c[a].head,n);l&&t.getLine(l.from.line).length<=r&&(o=l.match?\"CodeMirror-matchingbracket\":\"CodeMirror-nonmatchingbracket\",i.push(t.markText(l.from,k(l.from.line,l.from.ch+1),{className:o})),l.to&&t.getLine(l.to.line).length<=r&&i.push(t.markText(l.to,k(l.to.line,l.to.ch+1),{className:o})))}if(i.length){h&&t.state.focused&&t.focus();function s(){t.operation(function(){for(var t=0;t<i.length;t++)i[t].clear()})}if(!e)return s;setTimeout(s,800)}}function c(t){t.operation(function(){t.state.matchBrackets.currentlyHighlighted&&(t.state.matchBrackets.currentlyHighlighted(),t.state.matchBrackets.currentlyHighlighted=null),t.state.matchBrackets.currentlyHighlighted=e(t,!1,t.state.matchBrackets)})}i.defineOption(\"matchBrackets\",!1,function(t,e,n){function r(t){t.state.matchBrackets&&t.state.matchBrackets.currentlyHighlighted&&(t.state.matchBrackets.currentlyHighlighted(),t.state.matchBrackets.currentlyHighlighted=null)}n&&n!=i.Init&&(t.off(\"cursorActivity\",c),t.off(\"focus\",c),t.off(\"blur\",r),r(t)),e&&(t.state.matchBrackets=\"object\"==typeof e?e:{},t.on(\"cursorActivity\",c),t.on(\"focus\",c),t.on(\"blur\",r))}),i.defineExtension(\"matchBrackets\",function(){e(this,!0)}),i.defineExtension(\"findMatchingBracket\",function(t,e,n){return!n&&\"boolean\"!=typeof e||(e=n?(n.strict=e,n):e?{strict:!0}:null),u(this,t,e)}),i.defineExtension(\"scanForBracket\",function(t,e,n,r){return f(this,t,e,n,r)})});\n",
            "type": "application/javascript",
            "title": "$:/plugins/tiddlywiki/codemirror/addon/edit/matchbrackets.js",
            "module-type": "codemirror"
        },
        "$:/plugins/tiddlywiki/codemirror-closebrackets/readme": {
            "title": "$:/plugins/tiddlywiki/codemirror-closebrackets/readme",
            "text": "This plugin adds the ability to automatically insert the closing brackets when you type an opening bracket.\nAlso enables highlighting of matching brackets.\n\nIt needs the latest [[CodeMirror plugin|$:/plugins/tiddlywiki/codemirror]] to be installed\n\n"
        }
    }
}
{
    "tiddlers": {
        "$:/config/codemirror/autoCloseTags": {
            "title": "$:/config/codemirror/autoCloseTags",
            "type": "bool",
            "text": "true\n"
        },
        "$:/language/codemirror/autoCloseTags/hint": {
            "title": "$:/language/codemirror/autoCloseTags/hint",
            "text": "Auto-close tags"
        },
        "$:/language/codemirror/autoCloseTags/info": {
            "title": "$:/language/codemirror/autoCloseTags/info",
            "text": "Whether or not to automatically close tags"
        },
        "$:/plugins/tiddlywiki/codemirror/addon/fold/xml-fold.js": {
            "text": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n!function(e){\"object\"==typeof exports&&\"object\"==typeof module?e(require(\"../../lib/codemirror\")):\"function\"==typeof define&&define.amd?define([\"../../lib/codemirror\"],e):e(CodeMirror)}(function(e){\"use strict\";var l=e.Pos;function c(e,n){return e.line-n.line||e.ch-n.ch}var n=\"A-Z_a-z\\\\u00C0-\\\\u00D6\\\\u00D8-\\\\u00F6\\\\u00F8-\\\\u02FF\\\\u0370-\\\\u037D\\\\u037F-\\\\u1FFF\\\\u200C-\\\\u200D\\\\u2070-\\\\u218F\\\\u2C00-\\\\u2FEF\\\\u3001-\\\\uD7FF\\\\uF900-\\\\uFDCF\\\\uFDF0-\\\\uFFFD\",i=new RegExp(\"<(/?)([\"+n+\"][A-Z_a-z\\\\u00C0-\\\\u00D6\\\\u00D8-\\\\u00F6\\\\u00F8-\\\\u02FF\\\\u0370-\\\\u037D\\\\u037F-\\\\u1FFF\\\\u200C-\\\\u200D\\\\u2070-\\\\u218F\\\\u2C00-\\\\u2FEF\\\\u3001-\\\\uD7FF\\\\uF900-\\\\uFDCF\\\\uFDF0-\\\\uFFFD-:.0-9\\\\u00B7\\\\u0300-\\\\u036F\\\\u203F-\\\\u2040]*)\",\"g\");function a(e,n,t,i){this.line=n,this.ch=t,this.cm=e,this.text=e.getLine(n),this.min=i?Math.max(i.from,e.firstLine()):e.firstLine(),this.max=i?Math.min(i.to-1,e.lastLine()):e.lastLine()}function s(e,n){var t=e.cm.getTokenTypeAt(l(e.line,n));return t&&/\\btag\\b/.test(t)}function r(e){return!(e.line>=e.max)&&(e.ch=0,e.text=e.cm.getLine(++e.line),1)}function h(e){return!(e.line<=e.min)&&(e.text=e.cm.getLine(--e.line),e.ch=e.text.length,1)}function F(e){for(;;){var n=e.text.indexOf(\">\",e.ch);if(-1==n){if(r(e))continue;return}if(s(e,n+1)){var t=e.text.lastIndexOf(\"/\",n),i=-1<t&&!/\\S/.test(e.text.slice(t+1,n));return e.ch=n+1,i?\"selfClose\":\"regular\"}e.ch=n+1}}function x(e){for(;;){var n=e.ch?e.text.lastIndexOf(\"<\",e.ch-1):-1;if(-1==n){if(h(e))continue;return}if(s(e,n+1)){i.lastIndex=n,e.ch=n;var t=i.exec(e.text);if(t&&t.index==n)return t}else e.ch=n}}function g(e){for(;;){i.lastIndex=e.ch;var n=i.exec(e.text);if(!n){if(r(e))continue;return}if(s(e,n.index+1))return e.ch=n.index+n[0].length,n;e.ch=n.index+1}}function v(e,n){for(var t=[];;){var i,r=g(e),u=e.line,f=e.ch-(r?r[0].length:0);if(!r||!(i=F(e)))return;if(\"selfClose\"!=i)if(r[1]){for(var o=t.length-1;0<=o;--o)if(t[o]==r[2]){t.length=o;break}if(o<0&&(!n||n==r[2]))return{tag:r[2],from:l(u,f),to:l(e.line,e.ch)}}else t.push(r[2])}}function d(e,n){for(var t=[];;){var i=function(e){for(;;){var n=e.ch?e.text.lastIndexOf(\">\",e.ch-1):-1;if(-1==n){if(h(e))continue;return}if(s(e,n+1)){var t=e.text.lastIndexOf(\"/\",n),i=-1<t&&!/\\S/.test(e.text.slice(t+1,n));return e.ch=n+1,i?\"selfClose\":\"regular\"}e.ch=n}}(e);if(!i)return;if(\"selfClose\"!=i){var r=e.line,u=e.ch,f=x(e);if(!f)return;if(f[1])t.push(f[2]);else{for(var o=t.length-1;0<=o;--o)if(t[o]==f[2]){t.length=o;break}if(o<0&&(!n||n==f[2]))return{tag:f[2],from:l(e.line,e.ch),to:l(r,u)}}}else x(e)}}e.registerHelper(\"fold\",\"xml\",function(e,n){for(var t=new a(e,n.line,0);;){var i=g(t);if(!i||t.line!=n.line)return;var r=F(t);if(!r)return;if(!i[1]&&\"selfClose\"!=r){var u=l(t.line,t.ch),f=v(t,i[2]);return f&&0<c(f.from,u)?{from:u,to:f.from}:null}}}),e.findMatchingTag=function(e,n,t){var i=new a(e,n.line,n.ch,t);if(-1!=i.text.indexOf(\">\")||-1!=i.text.indexOf(\"<\")){var r=F(i),u=r&&l(i.line,i.ch),f=r&&x(i);if(r&&f&&!(0<c(i,n))){var o={from:l(i.line,i.ch),to:u,tag:f[2]};return\"selfClose\"==r?{open:o,close:null,at:\"open\"}:f[1]?{open:d(i,f[2]),close:o,at:\"close\"}:{open:o,close:v(i=new a(e,u.line,u.ch,t),f[2]),at:\"open\"}}}},e.findEnclosingTag=function(e,n,t,i){for(var r=new a(e,n.line,n.ch,t);;){var u=d(r,i);if(!u)break;var f=v(new a(e,n.line,n.ch,t),u.tag);if(f)return{open:u,close:f}}},e.scanForClosingTag=function(e,n,t,i){return v(new a(e,n.line,n.ch,i?{from:0,to:i}:null),t)}});\n",
            "type": "application/javascript",
            "title": "$:/plugins/tiddlywiki/codemirror/addon/fold/xml-fold.js",
            "module-type": "codemirror"
        },
        "$:/plugins/tiddlywiki/codemirror/addon/edit/closetag.js": {
            "text": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n!function(e){\"object\"==typeof exports&&\"object\"==typeof module?e(require(\"../../lib/codemirror\"),require(\"../fold/xml-fold\")):\"function\"==typeof define&&define.amd?define([\"../../lib/codemirror\",\"../fold/xml-fold\"],e):e(CodeMirror)}(function(y){y.defineOption(\"autoCloseTags\",!1,function(e,t,n){var o;n!=y.Init&&n&&e.removeKeyMap(\"autoCloseTags\"),t&&(o={name:\"autoCloseTags\"},\"object\"==typeof t&&!1===t.whenClosing||(o[\"'/'\"]=function(e){return(t=e).getOption(\"disableInput\")?y.Pass:r(t,!0);var t}),\"object\"==typeof t&&!1===t.whenOpening||(o[\"'>'\"]=function(e){if(e.getOption(\"disableInput\"))return y.Pass;for(var t=e.listSelections(),n=[],o=e.getOption(\"autoCloseTags\"),r=0;r<t.length;r++){if(!t[r].empty())return y.Pass;var a=t[r].head,i=e.getTokenAt(a),l=y.innerMode(e.getMode(),i.state),s=l.state,d=l.mode.xmlCurrentTag&&l.mode.xmlCurrentTag(s),c=d&&d.name;if(!c)return y.Pass;var f=\"html\"==l.mode.configuration,g=\"object\"==typeof o&&o.dontCloseTags||f&&x,u=\"object\"==typeof o&&o.indentTags||f&&P;i.end>a.ch&&(c=c.slice(0,c.length-i.end+a.ch));var m=c.toLowerCase();if(!c||\"string\"==i.type&&(i.end!=a.ch||!/[\\\"\\']/.test(i.string.charAt(i.string.length-1))||1==i.string.length)||\"tag\"==i.type&&d.close||i.string.indexOf(\"/\")==a.ch-i.start-1||g&&-1<T(g,m)||j(e,l.mode.xmlCurrentContext&&l.mode.xmlCurrentContext(s)||[],c,a,!0))return y.Pass;var h,p=\"object\"==typeof o&&o.emptyTags;p&&-1<T(p,c)?n[r]={text:\"/>\",newPos:y.Pos(a.line,a.ch+2)}:(h=u&&-1<T(u,m),n[r]={indent:h,text:\">\"+(h?\"\\n\\n\":\"\")+\"</\"+c+\">\",newPos:h?y.Pos(a.line+1,0):y.Pos(a.line,a.ch+1)})}for(var C=\"object\"==typeof o&&o.dontIndentOnAutoClose,r=t.length-1;0<=r;r--){var b=n[r];e.replaceRange(b.text,t[r].head,t[r].anchor,\"+insert\");var v=e.listSelections().slice(0);v[r]={head:b.newPos,anchor:b.newPos},e.setSelections(v),!C&&b.indent&&(e.indentLine(b.newPos.line,null,!0),e.indentLine(b.newPos.line+1,null,!0))}}),e.addKeyMap(o))});var x=[\"area\",\"base\",\"br\",\"col\",\"command\",\"embed\",\"hr\",\"img\",\"input\",\"keygen\",\"link\",\"meta\",\"param\",\"source\",\"track\",\"wbr\"],P=[\"applet\",\"blockquote\",\"body\",\"button\",\"div\",\"dl\",\"fieldset\",\"form\",\"frameset\",\"h1\",\"h2\",\"h3\",\"h4\",\"h5\",\"h6\",\"head\",\"html\",\"iframe\",\"layer\",\"legend\",\"object\",\"ol\",\"p\",\"select\",\"table\",\"ul\"];function r(e,t){for(var n=e.listSelections(),o=[],r=t?\"/\":\"</\",a=e.getOption(\"autoCloseTags\"),i=\"object\"==typeof a&&a.dontIndentOnSlash,l=0;l<n.length;l++){if(!n[l].empty())return y.Pass;var s=n[l].head,d=e.getTokenAt(s),c=y.innerMode(e.getMode(),d.state),f=c.state;if(t&&(\"string\"==d.type||\"<\"!=d.string.charAt(0)||d.start!=s.ch-1))return y.Pass;var g,u=\"xml\"!=c.mode.name&&\"htmlmixed\"==e.getMode().name;if(u&&\"javascript\"==c.mode.name)g=r+\"script\";else if(u&&\"css\"==c.mode.name)g=r+\"style\";else{var m=c.mode.xmlCurrentContext&&c.mode.xmlCurrentContext(f);if(!m||m.length&&j(e,m,m[m.length-1],s))return y.Pass;g=r+m[m.length-1]}\">\"!=e.getLine(s.line).charAt(d.end)&&(g+=\">\"),o[l]=g}if(e.replaceSelections(o),n=e.listSelections(),!i)for(l=0;l<n.length;l++)(l==n.length-1||n[l].head.line<n[l+1].head.line)&&e.indentLine(n[l].head.line)}function T(e,t){if(e.indexOf)return e.indexOf(t);for(var n=0,o=e.length;n<o;++n)if(e[n]==t)return n;return-1}function j(e,t,n,o,r){if(y.scanForClosingTag){var a=Math.min(e.lastLine()+1,o.line+500),i=y.scanForClosingTag(e,o,null,a);if(i&&i.tag==n){for(var l=r?1:0,s=t.length-1;0<=s&&t[s]==n;s--)++l;o=i.to;for(s=1;s<l;s++){var d=y.scanForClosingTag(e,o,null,a);if(!d||d.tag!=n)return;o=d.to}return 1}}}y.commands.closeTag=function(e){return r(e)}});\n",
            "type": "application/javascript",
            "title": "$:/plugins/tiddlywiki/codemirror/addon/edit/closetag.js",
            "module-type": "codemirror"
        },
        "$:/plugins/tiddlywiki/codemirror-closetag/readme": {
            "title": "$:/plugins/tiddlywiki/codemirror-closetag/readme",
            "text": "This plugin adds the ability to ''automatically close Tags''. It needs the latest [[CodeMirror plugin|$:/plugins/tiddlywiki/codemirror]] to be installed\n\n\n"
        },
        "$:/core/ui/ControlPanel/Settings/codemirror/autoCloseTags": {
            "title": "$:/core/ui/ControlPanel/Settings/codemirror/autoCloseTags",
            "tags": "$:/tags/ControlPanel/Settings/CodeMirror",
            "caption": "{{$:/language/codemirror/autoCloseTags/hint}}",
            "text": "\\define lingo-base() $:/language/codemirror/autoCloseTags/\n<<lingo hint>>\n\n<$checkbox tiddler=\"$:/config/codemirror/autoCloseTags\" field=\"text\" checked=\"true\" unchecked=\"false\" default=\"true\"> <$link to=\"$:/config/codemirror/autoCloseTags\"><<lingo info>></$link> </$checkbox>\n\n"
        }
    }
}
{
    "tiddlers": {
        "$:/config/codemirror/fullscreen": {
            "title": "$:/config/codemirror/fullscreen",
            "extend": "extraKeys",
            "type": "json",
            "text": "{\n\t\"F11\": \"togglefullscreen\"\n}"
        },
        "$:/plugins/tiddlywiki/codemirror/addon/fullscreen/fullscreen.js": {
            "text": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n!function(e){\"object\"==typeof exports&&\"object\"==typeof module?e(require(\"../../lib/codemirror\")):\"function\"==typeof define&&define.amd?define([\"../../lib/codemirror\"],e):e(CodeMirror)}(function(i){\"use strict\";i.defineOption(\"fullScreen\",!1,function(e,t,o){var r,l;o==i.Init&&(o=!1),!o!=!t&&(t?(l=(r=e).getWrapperElement(),r.state.fullScreenRestore={scrollTop:window.pageYOffset,scrollLeft:window.pageXOffset,width:l.style.width,height:l.style.height},l.style.width=\"\",l.style.height=\"auto\",l.className+=\" CodeMirror-fullscreen\",document.documentElement.style.overflow=\"hidden\",r.refresh()):function(e){var t=e.getWrapperElement();t.className=t.className.replace(/\\s*CodeMirror-fullscreen\\b/,\"\"),document.documentElement.style.overflow=\"\";var o=e.state.fullScreenRestore;t.style.width=o.width,t.style.height=o.height,window.scrollTo(o.scrollLeft,o.scrollTop),e.refresh()}(e))})});\n",
            "type": "application/javascript",
            "title": "$:/plugins/tiddlywiki/codemirror/addon/fullscreen/fullscreen.js",
            "module-type": "codemirror"
        },
        "$:/plugins/tiddlywiki/codemirror/addon/fullscreen/fullscreen.css": {
            "text": ".CodeMirror-fullscreen {\n  position: fixed;\n  top: 0; left: 0; right: 0; bottom: 0;\n  height: auto;\n  z-index: 9;\n}\n",
            "type": "text/css",
            "title": "$:/plugins/tiddlywiki/codemirror/addon/fullscreen/fullscreen.css",
            "tags": "[[$:/tags/Stylesheet]]"
        },
        "$:/plugins/tiddlywiki/codemirror-fullscreen/readme": {
            "title": "$:/plugins/tiddlywiki/codemirror-fullscreen/readme",
            "text": "This plugin adds a ''Fullscreen editing Mode'' to the [[CodeMirror|http://codemirror.net]] text editor. It needs the latest [[CodeMirror plugin|$:/plugins/tiddlywiki/codemirror]] to be installed\n\nPressing ''F11'' with the focus within the editor-textarea will make the editor go fullscreen, pressing ''F11'' again leaves fullscreen-mode\n\n"
        }
    }
}
{
    "tiddlers": {
        "$:/plugins/tiddlywiki/codemirror/keymaps/vim": {
            "title": "$:/plugins/tiddlywiki/codemirror/keymaps/vim",
            "module-type": "codemirror-keymap",
            "text": "vim\n"
        },
        "$:/plugins/tiddlywiki/codemirror/keymap/vim.js": {
            "text": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n!function(e){\"object\"==typeof exports&&\"object\"==typeof module?e(require(\"../lib/codemirror\"),require(\"../addon/search/searchcursor\"),require(\"../addon/dialog/dialog\"),require(\"../addon/edit/matchbrackets.js\")):\"function\"==typeof define&&define.amd?define([\"../lib/codemirror\",\"../addon/search/searchcursor\",\"../addon/dialog/dialog\",\"../addon/edit/matchbrackets\"],e):e(CodeMirror)}(function(Ze){\"use strict\";var Ge=[{keys:\"<Left>\",type:\"keyToKey\",toKeys:\"h\"},{keys:\"<Right>\",type:\"keyToKey\",toKeys:\"l\"},{keys:\"<Up>\",type:\"keyToKey\",toKeys:\"k\"},{keys:\"<Down>\",type:\"keyToKey\",toKeys:\"j\"},{keys:\"<Space>\",type:\"keyToKey\",toKeys:\"l\"},{keys:\"<BS>\",type:\"keyToKey\",toKeys:\"h\",context:\"normal\"},{keys:\"<Del>\",type:\"keyToKey\",toKeys:\"x\",context:\"normal\"},{keys:\"<C-Space>\",type:\"keyToKey\",toKeys:\"W\"},{keys:\"<C-BS>\",type:\"keyToKey\",toKeys:\"B\",context:\"normal\"},{keys:\"<S-Space>\",type:\"keyToKey\",toKeys:\"w\"},{keys:\"<S-BS>\",type:\"keyToKey\",toKeys:\"b\",context:\"normal\"},{keys:\"<C-n>\",type:\"keyToKey\",toKeys:\"j\"},{keys:\"<C-p>\",type:\"keyToKey\",toKeys:\"k\"},{keys:\"<C-[>\",type:\"keyToKey\",toKeys:\"<Esc>\"},{keys:\"<C-c>\",type:\"keyToKey\",toKeys:\"<Esc>\"},{keys:\"<C-[>\",type:\"keyToKey\",toKeys:\"<Esc>\",context:\"insert\"},{keys:\"<C-c>\",type:\"keyToKey\",toKeys:\"<Esc>\",context:\"insert\"},{keys:\"s\",type:\"keyToKey\",toKeys:\"cl\",context:\"normal\"},{keys:\"s\",type:\"keyToKey\",toKeys:\"c\",context:\"visual\"},{keys:\"S\",type:\"keyToKey\",toKeys:\"cc\",context:\"normal\"},{keys:\"S\",type:\"keyToKey\",toKeys:\"VdO\",context:\"visual\"},{keys:\"<Home>\",type:\"keyToKey\",toKeys:\"0\"},{keys:\"<End>\",type:\"keyToKey\",toKeys:\"$\"},{keys:\"<PageUp>\",type:\"keyToKey\",toKeys:\"<C-b>\"},{keys:\"<PageDown>\",type:\"keyToKey\",toKeys:\"<C-f>\"},{keys:\"<CR>\",type:\"keyToKey\",toKeys:\"j^\",context:\"normal\"},{keys:\"<Ins>\",type:\"action\",action:\"toggleOverwrite\",context:\"insert\"},{keys:\"H\",type:\"motion\",motion:\"moveToTopLine\",motionArgs:{linewise:!0,toJumplist:!0}},{keys:\"M\",type:\"motion\",motion:\"moveToMiddleLine\",motionArgs:{linewise:!0,toJumplist:!0}},{keys:\"L\",type:\"motion\",motion:\"moveToBottomLine\",motionArgs:{linewise:!0,toJumplist:!0}},{keys:\"h\",type:\"motion\",motion:\"moveByCharacters\",motionArgs:{forward:!1}},{keys:\"l\",type:\"motion\",motion:\"moveByCharacters\",motionArgs:{forward:!0}},{keys:\"j\",type:\"motion\",motion:\"moveByLines\",motionArgs:{forward:!0,linewise:!0}},{keys:\"k\",type:\"motion\",motion:\"moveByLines\",motionArgs:{forward:!1,linewise:!0}},{keys:\"gj\",type:\"motion\",motion:\"moveByDisplayLines\",motionArgs:{forward:!0}},{keys:\"gk\",type:\"motion\",motion:\"moveByDisplayLines\",motionArgs:{forward:!1}},{keys:\"w\",type:\"motion\",motion:\"moveByWords\",motionArgs:{forward:!0,wordEnd:!1}},{keys:\"W\",type:\"motion\",motion:\"moveByWords\",motionArgs:{forward:!0,wordEnd:!1,bigWord:!0}},{keys:\"e\",type:\"motion\",motion:\"moveByWords\",motionArgs:{forward:!0,wordEnd:!0,inclusive:!0}},{keys:\"E\",type:\"motion\",motion:\"moveByWords\",motionArgs:{forward:!0,wordEnd:!0,bigWord:!0,inclusive:!0}},{keys:\"b\",type:\"motion\",motion:\"moveByWords\",motionArgs:{forward:!1,wordEnd:!1}},{keys:\"B\",type:\"motion\",motion:\"moveByWords\",motionArgs:{forward:!1,wordEnd:!1,bigWord:!0}},{keys:\"ge\",type:\"motion\",motion:\"moveByWords\",motionArgs:{forward:!1,wordEnd:!0,inclusive:!0}},{keys:\"gE\",type:\"motion\",motion:\"moveByWords\",motionArgs:{forward:!1,wordEnd:!0,bigWord:!0,inclusive:!0}},{keys:\"{\",type:\"motion\",motion:\"moveByParagraph\",motionArgs:{forward:!1,toJumplist:!0}},{keys:\"}\",type:\"motion\",motion:\"moveByParagraph\",motionArgs:{forward:!0,toJumplist:!0}},{keys:\"(\",type:\"motion\",motion:\"moveBySentence\",motionArgs:{forward:!1}},{keys:\")\",type:\"motion\",motion:\"moveBySentence\",motionArgs:{forward:!0}},{keys:\"<C-f>\",type:\"motion\",motion:\"moveByPage\",motionArgs:{forward:!0}},{keys:\"<C-b>\",type:\"motion\",motion:\"moveByPage\",motionArgs:{forward:!1}},{keys:\"<C-d>\",type:\"motion\",motion:\"moveByScroll\",motionArgs:{forward:!0,explicitRepeat:!0}},{keys:\"<C-u>\",type:\"motion\",motion:\"moveByScroll\",motionArgs:{forward:!1,explicitRepeat:!0}},{keys:\"gg\",type:\"motion\",motion:\"moveToLineOrEdgeOfDocument\",motionArgs:{forward:!1,explicitRepeat:!0,linewise:!0,toJumplist:!0}},{keys:\"G\",type:\"motion\",motion:\"moveToLineOrEdgeOfDocument\",motionArgs:{forward:!0,explicitRepeat:!0,linewise:!0,toJumplist:!0}},{keys:\"0\",type:\"motion\",motion:\"moveToStartOfLine\"},{keys:\"^\",type:\"motion\",motion:\"moveToFirstNonWhiteSpaceCharacter\"},{keys:\"+\",type:\"motion\",motion:\"moveByLines\",motionArgs:{forward:!0,toFirstChar:!0}},{keys:\"-\",type:\"motion\",motion:\"moveByLines\",motionArgs:{forward:!1,toFirstChar:!0}},{keys:\"_\",type:\"motion\",motion:\"moveByLines\",motionArgs:{forward:!0,toFirstChar:!0,repeatOffset:-1}},{keys:\"$\",type:\"motion\",motion:\"moveToEol\",motionArgs:{inclusive:!0}},{keys:\"%\",type:\"motion\",motion:\"moveToMatchedSymbol\",motionArgs:{inclusive:!0,toJumplist:!0}},{keys:\"f<character>\",type:\"motion\",motion:\"moveToCharacter\",motionArgs:{forward:!0,inclusive:!0}},{keys:\"F<character>\",type:\"motion\",motion:\"moveToCharacter\",motionArgs:{forward:!1}},{keys:\"t<character>\",type:\"motion\",motion:\"moveTillCharacter\",motionArgs:{forward:!0,inclusive:!0}},{keys:\"T<character>\",type:\"motion\",motion:\"moveTillCharacter\",motionArgs:{forward:!1}},{keys:\";\",type:\"motion\",motion:\"repeatLastCharacterSearch\",motionArgs:{forward:!0}},{keys:\",\",type:\"motion\",motion:\"repeatLastCharacterSearch\",motionArgs:{forward:!1}},{keys:\"'<character>\",type:\"motion\",motion:\"goToMark\",motionArgs:{toJumplist:!0,linewise:!0}},{keys:\"`<character>\",type:\"motion\",motion:\"goToMark\",motionArgs:{toJumplist:!0}},{keys:\"]`\",type:\"motion\",motion:\"jumpToMark\",motionArgs:{forward:!0}},{keys:\"[`\",type:\"motion\",motion:\"jumpToMark\",motionArgs:{forward:!1}},{keys:\"]'\",type:\"motion\",motion:\"jumpToMark\",motionArgs:{forward:!0,linewise:!0}},{keys:\"['\",type:\"motion\",motion:\"jumpToMark\",motionArgs:{forward:!1,linewise:!0}},{keys:\"]p\",type:\"action\",action:\"paste\",isEdit:!0,actionArgs:{after:!0,isEdit:!0,matchIndent:!0}},{keys:\"[p\",type:\"action\",action:\"paste\",isEdit:!0,actionArgs:{after:!1,isEdit:!0,matchIndent:!0}},{keys:\"]<character>\",type:\"motion\",motion:\"moveToSymbol\",motionArgs:{forward:!0,toJumplist:!0}},{keys:\"[<character>\",type:\"motion\",motion:\"moveToSymbol\",motionArgs:{forward:!1,toJumplist:!0}},{keys:\"|\",type:\"motion\",motion:\"moveToColumn\"},{keys:\"o\",type:\"motion\",motion:\"moveToOtherHighlightedEnd\",context:\"visual\"},{keys:\"O\",type:\"motion\",motion:\"moveToOtherHighlightedEnd\",motionArgs:{sameLine:!0},context:\"visual\"},{keys:\"d\",type:\"operator\",operator:\"delete\"},{keys:\"y\",type:\"operator\",operator:\"yank\"},{keys:\"c\",type:\"operator\",operator:\"change\"},{keys:\"=\",type:\"operator\",operator:\"indentAuto\"},{keys:\">\",type:\"operator\",operator:\"indent\",operatorArgs:{indentRight:!0}},{keys:\"<\",type:\"operator\",operator:\"indent\",operatorArgs:{indentRight:!1}},{keys:\"g~\",type:\"operator\",operator:\"changeCase\"},{keys:\"gu\",type:\"operator\",operator:\"changeCase\",operatorArgs:{toLower:!0},isEdit:!0},{keys:\"gU\",type:\"operator\",operator:\"changeCase\",operatorArgs:{toLower:!1},isEdit:!0},{keys:\"n\",type:\"motion\",motion:\"findNext\",motionArgs:{forward:!0,toJumplist:!0}},{keys:\"N\",type:\"motion\",motion:\"findNext\",motionArgs:{forward:!1,toJumplist:!0}},{keys:\"gn\",type:\"motion\",motion:\"findAndSelectNextInclusive\",motionArgs:{forward:!0}},{keys:\"gN\",type:\"motion\",motion:\"findAndSelectNextInclusive\",motionArgs:{forward:!1}},{keys:\"x\",type:\"operatorMotion\",operator:\"delete\",motion:\"moveByCharacters\",motionArgs:{forward:!0},operatorMotionArgs:{visualLine:!1}},{keys:\"X\",type:\"operatorMotion\",operator:\"delete\",motion:\"moveByCharacters\",motionArgs:{forward:!1},operatorMotionArgs:{visualLine:!0}},{keys:\"D\",type:\"operatorMotion\",operator:\"delete\",motion:\"moveToEol\",motionArgs:{inclusive:!0},context:\"normal\"},{keys:\"D\",type:\"operator\",operator:\"delete\",operatorArgs:{linewise:!0},context:\"visual\"},{keys:\"Y\",type:\"operatorMotion\",operator:\"yank\",motion:\"expandToLine\",motionArgs:{linewise:!0},context:\"normal\"},{keys:\"Y\",type:\"operator\",operator:\"yank\",operatorArgs:{linewise:!0},context:\"visual\"},{keys:\"C\",type:\"operatorMotion\",operator:\"change\",motion:\"moveToEol\",motionArgs:{inclusive:!0},context:\"normal\"},{keys:\"C\",type:\"operator\",operator:\"change\",operatorArgs:{linewise:!0},context:\"visual\"},{keys:\"~\",type:\"operatorMotion\",operator:\"changeCase\",motion:\"moveByCharacters\",motionArgs:{forward:!0},operatorArgs:{shouldMoveCursor:!0},context:\"normal\"},{keys:\"~\",type:\"operator\",operator:\"changeCase\",context:\"visual\"},{keys:\"<C-w>\",type:\"operatorMotion\",operator:\"delete\",motion:\"moveByWords\",motionArgs:{forward:!1,wordEnd:!1},context:\"insert\"},{keys:\"<C-w>\",type:\"idle\",context:\"normal\"},{keys:\"<C-i>\",type:\"action\",action:\"jumpListWalk\",actionArgs:{forward:!0}},{keys:\"<C-o>\",type:\"action\",action:\"jumpListWalk\",actionArgs:{forward:!1}},{keys:\"<C-e>\",type:\"action\",action:\"scroll\",actionArgs:{forward:!0,linewise:!0}},{keys:\"<C-y>\",type:\"action\",action:\"scroll\",actionArgs:{forward:!1,linewise:!0}},{keys:\"a\",type:\"action\",action:\"enterInsertMode\",isEdit:!0,actionArgs:{insertAt:\"charAfter\"},context:\"normal\"},{keys:\"A\",type:\"action\",action:\"enterInsertMode\",isEdit:!0,actionArgs:{insertAt:\"eol\"},context:\"normal\"},{keys:\"A\",type:\"action\",action:\"enterInsertMode\",isEdit:!0,actionArgs:{insertAt:\"endOfSelectedArea\"},context:\"visual\"},{keys:\"i\",type:\"action\",action:\"enterInsertMode\",isEdit:!0,actionArgs:{insertAt:\"inplace\"},context:\"normal\"},{keys:\"gi\",type:\"action\",action:\"enterInsertMode\",isEdit:!0,actionArgs:{insertAt:\"lastEdit\"},context:\"normal\"},{keys:\"I\",type:\"action\",action:\"enterInsertMode\",isEdit:!0,actionArgs:{insertAt:\"firstNonBlank\"},context:\"normal\"},{keys:\"gI\",type:\"action\",action:\"enterInsertMode\",isEdit:!0,actionArgs:{insertAt:\"bol\"},context:\"normal\"},{keys:\"I\",type:\"action\",action:\"enterInsertMode\",isEdit:!0,actionArgs:{insertAt:\"startOfSelectedArea\"},context:\"visual\"},{keys:\"o\",type:\"action\",action:\"newLineAndEnterInsertMode\",isEdit:!0,interlaceInsertRepeat:!0,actionArgs:{after:!0},context:\"normal\"},{keys:\"O\",type:\"action\",action:\"newLineAndEnterInsertMode\",isEdit:!0,interlaceInsertRepeat:!0,actionArgs:{after:!1},context:\"normal\"},{keys:\"v\",type:\"action\",action:\"toggleVisualMode\"},{keys:\"V\",type:\"action\",action:\"toggleVisualMode\",actionArgs:{linewise:!0}},{keys:\"<C-v>\",type:\"action\",action:\"toggleVisualMode\",actionArgs:{blockwise:!0}},{keys:\"<C-q>\",type:\"action\",action:\"toggleVisualMode\",actionArgs:{blockwise:!0}},{keys:\"gv\",type:\"action\",action:\"reselectLastSelection\"},{keys:\"J\",type:\"action\",action:\"joinLines\",isEdit:!0},{keys:\"gJ\",type:\"action\",action:\"joinLines\",actionArgs:{keepSpaces:!0},isEdit:!0},{keys:\"p\",type:\"action\",action:\"paste\",isEdit:!0,actionArgs:{after:!0,isEdit:!0}},{keys:\"P\",type:\"action\",action:\"paste\",isEdit:!0,actionArgs:{after:!1,isEdit:!0}},{keys:\"r<character>\",type:\"action\",action:\"replace\",isEdit:!0},{keys:\"@<character>\",type:\"action\",action:\"replayMacro\"},{keys:\"q<character>\",type:\"action\",action:\"enterMacroRecordMode\"},{keys:\"R\",type:\"action\",action:\"enterInsertMode\",isEdit:!0,actionArgs:{replace:!0},context:\"normal\"},{keys:\"R\",type:\"operator\",operator:\"change\",operatorArgs:{linewise:!0,fullLine:!0},context:\"visual\",exitVisualBlock:!0},{keys:\"u\",type:\"action\",action:\"undo\",context:\"normal\"},{keys:\"u\",type:\"operator\",operator:\"changeCase\",operatorArgs:{toLower:!0},context:\"visual\",isEdit:!0},{keys:\"U\",type:\"operator\",operator:\"changeCase\",operatorArgs:{toLower:!1},context:\"visual\",isEdit:!0},{keys:\"<C-r>\",type:\"action\",action:\"redo\"},{keys:\"m<character>\",type:\"action\",action:\"setMark\"},{keys:'\"<character>',type:\"action\",action:\"setRegister\"},{keys:\"zz\",type:\"action\",action:\"scrollToCursor\",actionArgs:{position:\"center\"}},{keys:\"z.\",type:\"action\",action:\"scrollToCursor\",actionArgs:{position:\"center\"},motion:\"moveToFirstNonWhiteSpaceCharacter\"},{keys:\"zt\",type:\"action\",action:\"scrollToCursor\",actionArgs:{position:\"top\"}},{keys:\"z<CR>\",type:\"action\",action:\"scrollToCursor\",actionArgs:{position:\"top\"},motion:\"moveToFirstNonWhiteSpaceCharacter\"},{keys:\"z-\",type:\"action\",action:\"scrollToCursor\",actionArgs:{position:\"bottom\"}},{keys:\"zb\",type:\"action\",action:\"scrollToCursor\",actionArgs:{position:\"bottom\"},motion:\"moveToFirstNonWhiteSpaceCharacter\"},{keys:\".\",type:\"action\",action:\"repeatLastEdit\"},{keys:\"<C-a>\",type:\"action\",action:\"incrementNumberToken\",isEdit:!0,actionArgs:{increase:!0,backtrack:!1}},{keys:\"<C-x>\",type:\"action\",action:\"incrementNumberToken\",isEdit:!0,actionArgs:{increase:!1,backtrack:!1}},{keys:\"<C-t>\",type:\"action\",action:\"indent\",actionArgs:{indentRight:!0},context:\"insert\"},{keys:\"<C-d>\",type:\"action\",action:\"indent\",actionArgs:{indentRight:!1},context:\"insert\"},{keys:\"a<character>\",type:\"motion\",motion:\"textObjectManipulation\"},{keys:\"i<character>\",type:\"motion\",motion:\"textObjectManipulation\",motionArgs:{textObjectInner:!0}},{keys:\"/\",type:\"search\",searchArgs:{forward:!0,querySrc:\"prompt\",toJumplist:!0}},{keys:\"?\",type:\"search\",searchArgs:{forward:!1,querySrc:\"prompt\",toJumplist:!0}},{keys:\"*\",type:\"search\",searchArgs:{forward:!0,querySrc:\"wordUnderCursor\",wholeWordOnly:!0,toJumplist:!0}},{keys:\"#\",type:\"search\",searchArgs:{forward:!1,querySrc:\"wordUnderCursor\",wholeWordOnly:!0,toJumplist:!0}},{keys:\"g*\",type:\"search\",searchArgs:{forward:!0,querySrc:\"wordUnderCursor\",toJumplist:!0}},{keys:\"g#\",type:\"search\",searchArgs:{forward:!1,querySrc:\"wordUnderCursor\",toJumplist:!0}},{keys:\":\",type:\"ex\"}],Ye=Ge.length,et=[{name:\"colorscheme\",shortName:\"colo\"},{name:\"map\"},{name:\"imap\",shortName:\"im\"},{name:\"nmap\",shortName:\"nm\"},{name:\"vmap\",shortName:\"vm\"},{name:\"unmap\"},{name:\"write\",shortName:\"w\"},{name:\"undo\",shortName:\"u\"},{name:\"redo\",shortName:\"red\"},{name:\"set\",shortName:\"se\"},{name:\"setlocal\",shortName:\"setl\"},{name:\"setglobal\",shortName:\"setg\"},{name:\"sort\",shortName:\"sor\"},{name:\"substitute\",shortName:\"s\",possiblyAsync:!0},{name:\"nohlsearch\",shortName:\"noh\"},{name:\"yank\",shortName:\"y\"},{name:\"delmarks\",shortName:\"delm\"},{name:\"registers\",shortName:\"reg\",excludeFromCommandHistory:!0},{name:\"global\",shortName:\"g\"}],tt=Ze.Pos;Ze.Vim=function(){function e(e,t){var r,n;this==Ze.keyMap.vim&&(Ze.rmClass(e.getWrapperElement(),\"cm-fat-cursor\"),\"contenteditable\"==e.getOption(\"inputStyle\")&&null!=document.body.style.caretColor&&(a(r=e),r.off(\"cursorActivity\",i),r.state.fatCursorMarks=null,e.getInputField().style.caretColor=\"\")),t&&t.attach==o||((n=e).setOption(\"disableInput\",!1),n.off(\"cursorActivity\",Ue),Ze.off(n.getInputField(),\"paste\",c(n)),n.state.vim=null)}function o(e,t){var r,n;this==Ze.keyMap.vim&&(Ze.addClass(e.getWrapperElement(),\"cm-fat-cursor\"),\"contenteditable\"==e.getOption(\"inputStyle\")&&null!=document.body.style.caretColor&&((r=e).state.fatCursorMarks=[],i(r),r.on(\"cursorActivity\",i),e.getInputField().style.caretColor=\"transparent\")),t&&t.attach==o||((n=e).setOption(\"disableInput\",!0),n.setOption(\"showCursorWhenSelecting\",!1),Ze.signal(n,\"vim-mode-change\",{mode:\"normal\"}),n.on(\"cursorActivity\",Ue),E(n),Ze.on(n.getInputField(),\"paste\",c(n)))}function i(e){if(e.state.fatCursorMarks){a(e);for(var t=e.listSelections(),r=[],n=0;n<t.length;n++){var o,i=t[n];i.empty()&&(o=e.getLine(i.anchor.line).length,i.anchor.ch<o?r.push(e.markText(i.anchor,tt(i.anchor.line,i.anchor.ch+1),{className:\"cm-fat-cursor-mark\"})):r.push(e.markText(tt(i.anchor.line,o-1),tt(i.anchor.line,o),{className:\"cm-fat-cursor-mark\"})))}e.state.fatCursorMarks=r}}function a(e){var t=e.state.fatCursorMarks;if(t)for(var r=0;r<t.length;r++)t[r].clear()}function t(e,t){if(t){if(this[e])return this[e];var r=function(e){if(\"'\"==e.charAt(0))return e.charAt(1);var t=e.split(/-(?!$)/),r=t[t.length-1];{if(1==t.length&&1==t[0].length)return!1;if(2==t.length&&\"Shift\"==t[0]&&1==r.length)return!1}for(var n=!1,o=0;o<t.length;o++){var i=t[o];i in s?t[o]=s[i]:n=!0,i in l&&(t[o]=l[i])}if(!n)return!1;k(r)&&(t[t.length-1]=r.toLowerCase());return\"<\"+t.join(\"-\")+\">\"}(e);if(!r)return!1;var n=Ze.Vim.findKey(t,r);return\"function\"==typeof n&&Ze.signal(t,\"vim-keypress\",r),n}}Ze.defineOption(\"vimMode\",!1,function(e,t,r){t&&\"vim\"!=e.getOption(\"keyMap\")?e.setOption(\"keyMap\",\"vim\"):!t&&r!=Ze.Init&&/^vim/.test(e.getOption(\"keyMap\"))&&e.setOption(\"keyMap\",\"default\")});var s={Shift:\"S\",Ctrl:\"C\",Alt:\"A\",Cmd:\"D\",Mod:\"A\"},l={Enter:\"CR\",Backspace:\"BS\",Delete:\"Del\",Insert:\"Ins\"};function c(e){var t=e.state.vim;return t.onPasteFn||(t.onPasteFn=function(){t.insertMode||(e.setCursor(q(e.getCursor(),0,1)),U.enterInsertMode(e,{},t))}),t.onPasteFn}var u=/[\\d]/,m=[Ze.isWordChar,function(e){return e&&!Ze.isWordChar(e)&&!/\\s/.test(e)}],g=[function(e){return/\\S/.test(e)}];function r(e,t){for(var r=[],n=e;n<e+t;n++)r.push(String.fromCharCode(n));return r}var n=r(65,26),h=r(97,26),p=r(48,10),f=[].concat(n,h,p,[\"<\",\">\"]),d=[].concat(n,h,p,[\"-\",'\"',\".\",\":\",\"_\",\"/\"]);function v(e,t){return t>=e.firstLine()&&t<=e.lastLine()}function y(e){return/^[a-z]$/.test(e)}function k(e){return/^[A-Z]$/.test(e)}function B(e){return/^\\s*$/.test(e)}function C(e){return-1!=\".?!\".indexOf(e)}function w(e,t){for(var r=0;r<t.length;r++)if(t[r]==e)return!0;return!1}var x={};function M(e,t,r,n,o){if(void 0===t&&!o)throw Error(\"defaultValue is required unless callback is provided\");if(r=r||\"string\",x[e]={type:r,defaultValue:t,callback:o},n)for(var i=0;i<n.length;i++)x[n[i]]=x[e];t&&S(e,t)}function S(e,t,r,n){var o=x[e],i=(n=n||{}).scope;if(!o)return new Error(\"Unknown option: \"+e);if(\"boolean\"==o.type){if(t&&!0!==t)return new Error(\"Invalid argument: \"+e+\"=\"+t);!1!==t&&(t=!0)}o.callback?(\"local\"!==i&&o.callback(t,void 0),\"global\"!==i&&r&&o.callback(t,r)):(\"local\"!==i&&(o.value=\"boolean\"==o.type?!!t:t),\"global\"!==i&&r&&(r.state.vim.options[e]={value:t}))}function A(e,t,r){var n=x[e],o=(r=r||{}).scope;if(!n)return new Error(\"Unknown option: \"+e);if(n.callback){var i=t&&n.callback(void 0,t);return\"global\"!==o&&void 0!==i?i:\"local\"!==o?n.callback():void 0}return((i=\"global\"!==o&&t&&t.state.vim.options[e])||\"local\"!==o&&n||{}).value}M(\"filetype\",void 0,\"string\",[\"ft\"],function(e,t){if(void 0!==t){if(void 0===e)return\"null\"==(r=t.getOption(\"mode\"))?\"\":r;var r=\"\"==e?\"null\":e;t.setOption(\"mode\",r)}});function b(){var a=100,s=-1,l=0,c=0,u=new Array(a);function o(e,t){l<(s+=t)?s=l:s<c&&(s=c);var r=u[(a+s)%a];if(r&&!r.find()){var n,o=0<t?1:-1,i=e.getCursor();do{if((r=u[(a+(s+=o))%a])&&(n=r.find())&&!X(i,n))break}while(s<l&&c<s)}return r}return{cachedCursor:void 0,add:function(n,e,t){var r,o=u[s%a];function i(e){var t=++s%a,r=u[t];r&&r.clear(),u[t]=n.setBookmark(e)}o&&(!(r=o.find())||X(r,e))||i(e),i(t),(c=(l=s)-a+1)<0&&(c=0)},find:function(e,t){var r=s,n=o(e,t);return s=r,n&&n.find()},move:o}}var K,L,T=function(e){return e?{changes:e.changes,expectCursorActivityForChange:e.expectCursorActivityForChange}:{changes:[],expectCursorActivityForChange:!1}};function R(){this.latestRegister=void 0,this.isPlaying=!1,this.isRecording=!1,this.replaySearchQueries=[],this.onRecordingDone=void 0,this.lastInsertModeChanges=T()}function E(e){return e.state.vim||(e.state.vim={inputState:new N,lastEditInputState:void 0,lastEditActionCommand:void 0,lastHPos:-1,lastHSPos:-1,lastMotion:null,marks:{},fakeCursor:null,insertMode:!1,insertModeRepeat:void 0,visualMode:!1,visualLine:!1,visualBlock:!1,lastSelection:null,lastPastedText:null,sel:{},options:{}}),e.state.vim}function O(){for(var e in K={searchQuery:null,searchIsReversed:!1,lastSubstituteReplacePart:void 0,jumpList:b(),macroModeState:new R,lastCharacterSearch:{increment:0,forward:!0,selectedCharacter:\"\"},registerController:new j({}),searchHistoryController:new H,exCommandHistoryController:new H},x){var t=x[e];t.value=t.defaultValue}}var I={buildKeyMap:function(){},getRegisterController:function(){return K.registerController},resetVimGlobalState_:O,getVimGlobalState_:function(){return K},maybeInitVimState_:E,suppressErrorLogging:!(R.prototype={exitMacroRecordMode:function(){var e=K.macroModeState;e.onRecordingDone&&e.onRecordingDone(),e.onRecordingDone=void 0,e.isRecording=!1},enterMacroRecordMode:function(e,t){var r=K.registerController.getRegister(t);r&&(r.clear(),this.latestRegister=t,e.openDialog&&(this.onRecordingDone=e.openDialog(\"(recording)[\"+t+\"]\",null,{bottom:!0})),this.isRecording=!0)}}),InsertModeKey:qe,map:function(e,t,r){Fe.map(e,t,r)},unmap:function(e,t){Fe.unmap(e,t)},noremap:function(e,t,r){function n(e){return e?[e]:[\"normal\",\"insert\",\"visual\"]}for(var o=n(r),i=Ge.length,a=i-Ye;a<i&&o.length;a++){var s=Ge[a];if(!(s.keys!=t||r&&s.context&&s.context!==r||\"ex\"===s.type.substr(0,2)||\"key\"===s.type.substr(0,3))){var l={};for(var c in s)l[c]=s[c];l.keys=e,r&&!l.context&&(l.context=r),this._mapCommand(l);var u=n(s.context),o=o.filter(function(e){return-1===u.indexOf(e)})}}},mapclear:function(e){var t=Ge.length,r=Ye,n=Ge.slice(0,t-r);if(Ge=Ge.slice(t-r),e)for(var o=n.length-1;0<=o;o--){var i=n[o];if(e!==i.context)if(i.context)this._mapCommand(i);else{var a=[\"normal\",\"insert\",\"visual\"];for(var s in a)if(a[s]!==e){var l={};for(var c in i)l[c]=i[c];l.context=a[s],this._mapCommand(l)}}}},setOption:S,getOption:A,defineOption:M,defineEx:function(e,t,r){if(t){if(0!==e.indexOf(t))throw new Error('(Vim.defineEx) \"'+t+'\" is not a prefix of \"'+e+'\", command not registered')}else t=e;He[e]=r,Fe.commandMap_[t]={name:e,shortName:t,type:\"api\"}},handleKey:function(e,t,r){var n=this.findKey(e,t,r);if(\"function\"==typeof n)return n()},findKey:function(s,l,t){var e,c=E(s);function o(){var e=K.macroModeState;if(e.isRecording){if(\"q\"==l)return e.exitMacroRecordMode(),P(s),1;\"mapping\"!=t&&function(e,t){if(e.isPlaying)return;var r=e.latestRegister,n=K.registerController.getRegister(r);n&&n.pushText(t)}(e,l)}}function u(){return\"<Esc>\"==l&&(P(s),c.visualMode?le(s):c.insertMode&&We(s),1)}return!1===(e=(c.insertMode?function(){if(u())return!0;for(var e=c.inputState.keyBuffer=c.inputState.keyBuffer+l,t=1==l.length,r=F.matchCommand(e,Ge,c.inputState,\"insert\");1<e.length&&\"full\"!=r.type;){var e=c.inputState.keyBuffer=e.slice(1),n=F.matchCommand(e,Ge,c.inputState,\"insert\");\"none\"!=n.type&&(r=n)}if(\"none\"==r.type)return P(s),!1;if(\"partial\"==r.type)return L&&window.clearTimeout(L),L=window.setTimeout(function(){c.insertMode&&c.inputState.keyBuffer&&P(s)},A(\"insertModeEscKeysTimeout\")),!t;if(L&&window.clearTimeout(L),t){for(var o=s.listSelections(),i=0;i<o.length;i++){var a=o[i].head;s.replaceRange(\"\",q(a,0,-(e.length-1)),a,\"+input\")}K.macroModeState.lastInsertModeChanges.changes.pop()}return P(s),r.command}:function(){if(o()||u())return!0;var e=c.inputState.keyBuffer=c.inputState.keyBuffer+l;if(/^[1-9]\\d*$/.test(e))return!0;var t=/^(\\d*)(.*)$/.exec(e);if(!t)return P(s),!1;var r=c.visualMode?\"visual\":\"normal\",n=F.matchCommand(t[2]||t[1],Ge,c.inputState,r);return\"none\"==n.type?(P(s),!1):\"partial\"==n.type||(c.inputState.keyBuffer=\"\",(t=/^(\\d*)(.*)$/.exec(e))[1]&&\"0\"!=t[1]&&c.inputState.pushRepeatDigit(t[1]),n.command)})())?c.insertMode||1!==l.length?void 0:function(){return!0}:!0===e?function(){return!0}:function(){return s.operation(function(){s.curOp.isVimOp=!0;try{\"keyToKey\"==e.type?function(e){for(var t;e;)t=/<\\w+-.+?>|<\\w+>|./.exec(e),l=t[0],e=e.substring(t.index+l.length),Ze.Vim.handleKey(s,l,\"mapping\")}(e.toKeys):F.processCommand(s,c,e)}catch(e){throw s.state.vim=void 0,E(s),Ze.Vim.suppressErrorLogging||console.log(e),e}return!0})}},handleEx:function(e,t){Fe.processCommand(e,t)},defineMotion:function(e,t){W[e]=t},defineAction:function(e,t){U[e]=t},defineOperator:function(e,t){D[e]=t},mapCommand:function(e,t,r,n,o){var i={keys:e,type:t};for(var a in i[t]=r,i[t+\"Args\"]=n,o)i[a]=o[a];Ve(i)},_mapCommand:Ve,defineRegister:function(e,t){var r=K.registerController.registers;if(!e||1!=e.length)throw Error(\"Register name must be 1 character\");if(r[e])throw Error(\"Register already defined \"+e);r[e]=t,d.push(e)},exitVisualMode:le,exitInsertMode:We};function N(){this.prefixRepeat=[],this.motionRepeat=[],this.operator=null,this.operatorArgs=null,this.motion=null,this.motionArgs=null,this.keyBuffer=[],this.registerName=null}function P(e,t){e.state.vim.inputState=new N,Ze.signal(e,\"vim-command-done\",t)}function _(e,t,r){this.clear(),this.keyBuffer=[e||\"\"],this.insertModeChanges=[],this.searchQueries=[],this.linewise=!!t,this.blockwise=!!r}function j(e){this.registers=e,this.unnamedRegister=e['\"']=new _,e[\".\"]=new _,e[\":\"]=new _,e[\"/\"]=new _}function H(){this.historyBuffer=[],this.iterator=0,this.initialPrefix=null}N.prototype.pushRepeatDigit=function(e){this.operator?this.motionRepeat=this.motionRepeat.concat(e):this.prefixRepeat=this.prefixRepeat.concat(e)},N.prototype.getRepeat=function(){var e=0;return(0<this.prefixRepeat.length||0<this.motionRepeat.length)&&(e=1,0<this.prefixRepeat.length&&(e*=parseInt(this.prefixRepeat.join(\"\"),10)),0<this.motionRepeat.length&&(e*=parseInt(this.motionRepeat.join(\"\"),10))),e},_.prototype={setText:function(e,t,r){this.keyBuffer=[e||\"\"],this.linewise=!!t,this.blockwise=!!r},pushText:function(e,t){t&&(this.linewise||this.keyBuffer.push(\"\\n\"),this.linewise=!0),this.keyBuffer.push(e)},pushInsertModeChanges:function(e){this.insertModeChanges.push(T(e))},pushSearchQuery:function(e){this.searchQueries.push(e)},clear:function(){this.keyBuffer=[],this.insertModeChanges=[],this.searchQueries=[],this.linewise=!1},toString:function(){return this.keyBuffer.join(\"\")}},j.prototype={pushText:function(e,t,r,n,o){if(\"_\"!==e){n&&\"\\n\"!==r.charAt(r.length-1)&&(r+=\"\\n\");var i=this.isValidRegister(e)?this.getRegister(e):null;if(i){k(e)?i.pushText(r,n):i.setText(r,n,o),this.unnamedRegister.setText(i.toString(),n)}else{switch(t){case\"yank\":this.registers[0]=new _(r,n,o);break;case\"delete\":case\"change\":-1==r.indexOf(\"\\n\")?this.registers[\"-\"]=new _(r,n):(this.shiftNumericRegisters_(),this.registers[1]=new _(r,n))}this.unnamedRegister.setText(r,n,o)}}},getRegister:function(e){return this.isValidRegister(e)?(e=e.toLowerCase(),this.registers[e]||(this.registers[e]=new _),this.registers[e]):this.unnamedRegister},isValidRegister:function(e){return e&&w(e,d)},shiftNumericRegisters_:function(){for(var e=9;2<=e;e--)this.registers[e]=this.getRegister(\"\"+(e-1))}},H.prototype={nextMatch:function(e,t){var r=this.historyBuffer,n=t?-1:1;null===this.initialPrefix&&(this.initialPrefix=e);for(var o=this.iterator+n;t?0<=o:o<r.length;o+=n)for(var i=r[o],a=0;a<=i.length;a++)if(this.initialPrefix==i.substring(0,a))return this.iterator=o,i;return o>=r.length?(this.iterator=r.length,this.initialPrefix):o<0?e:void 0},pushInput:function(e){var t=this.historyBuffer.indexOf(e);-1<t&&this.historyBuffer.splice(t,1),e.length&&this.historyBuffer.push(e)},reset:function(){this.initialPrefix=null,this.iterator=this.historyBuffer.length}};var F={matchCommand:function(e,t,r,n){var o=function(e,t,r,n){for(var o,i=[],a=[],s=0;s<t.length;s++){var l=t[s];\"insert\"==r&&\"insert\"!=l.context||l.context&&l.context!=r||n.operator&&\"action\"==l.type||!(o=function(e,t){{if(\"<character>\"!=t.slice(-11))return e==t?\"full\":0==t.indexOf(e)&&\"partial\";var r=t.length-11,n=e.slice(0,r),o=t.slice(0,r);return n==o&&e.length>r?\"full\":0==o.indexOf(n)&&\"partial\"}}(e,l.keys))||(\"partial\"==o&&i.push(l),\"full\"==o&&a.push(l))}return{partial:i.length&&i,full:a.length&&a}}(e,t,n,r);if(!o.full&&!o.partial)return{type:\"none\"};if(!o.full&&o.partial)return{type:\"partial\"};for(var i=0;i<o.full.length;i++)var a=o.full[i],s=s||a;if(\"<character>\"==s.keys.slice(-11)){var l=function(e){var t=/^.*(<[^>]+>)$/.exec(e),r=t?t[1]:e.slice(-1);if(1<r.length)switch(r){case\"<CR>\":r=\"\\n\";break;case\"<Space>\":r=\" \";break;default:r=\"\"}return r}(e);if(!l)return{type:\"none\"};r.selectedCharacter=l}return{type:\"full\",command:s}},processCommand:function(e,t,r){switch(t.inputState.repeatOverride=r.repeatOverride,r.type){case\"motion\":this.processMotion(e,t,r);break;case\"operator\":this.processOperator(e,t,r);break;case\"operatorMotion\":this.processOperatorMotion(e,t,r);break;case\"action\":this.processAction(e,t,r);break;case\"search\":this.processSearch(e,t,r);break;case\"ex\":case\"keyToEx\":this.processEx(e,t,r)}},processMotion:function(e,t,r){t.inputState.motion=r.motion,t.inputState.motionArgs=$(r.motionArgs),this.evalInput(e,t)},processOperator:function(e,t,r){var n=t.inputState;if(n.operator){if(n.operator==r.operator)return n.motion=\"expandToLine\",n.motionArgs={linewise:!0},void this.evalInput(e,t);P(e)}n.operator=r.operator,n.operatorArgs=$(r.operatorArgs),r.exitVisualBlock&&(t.visualBlock=!1,ae(e)),t.visualMode&&this.evalInput(e,t)},processOperatorMotion:function(e,t,r){var n=t.visualMode,o=$(r.operatorMotionArgs);o&&n&&o.visualLine&&(t.visualLine=!0),this.processOperator(e,t,r),n||this.processMotion(e,t,r)},processAction:function(e,t,r){var n=t.inputState,o=n.getRepeat(),i=!!o,a=$(r.actionArgs)||{};n.selectedCharacter&&(a.selectedCharacter=n.selectedCharacter),r.operator&&this.processOperator(e,t,r),r.motion&&this.processMotion(e,t,r),(r.motion||r.operator)&&this.evalInput(e,t),a.repeat=o||1,a.repeatIsExplicit=i,a.registerName=n.registerName,P(e),t.lastMotion=null,r.isEdit&&this.recordLastEdit(t,n,r),U[r.action](e,a,t)},processSearch:function(s,n,o){if(s.getSearchCursor){var l=o.searchArgs.forward,e=o.searchArgs.wholeWordOnly;Ce(s).setReversed(!l);var t=l?\"/\":\"?\",i=Ce(s).getQuery(),c=s.getScrollInfo();switch(o.searchArgs.querySrc){case\"prompt\":var r=K.macroModeState;r.isPlaying?p(h=r.replaySearchQueries.shift(),!0,!1):Re(s,{onClose:function(e){s.scrollTo(c.left,c.top),p(e,!0,!0);var t=K.macroModeState;t.isRecording&&function(e,t){if(e.isPlaying)return;var r=e.latestRegister,n=K.registerController.getRegister(r);n&&n.pushSearchQuery&&n.pushSearchQuery(t)}(t,e)},prefix:t,desc:Te,onKeyUp:function(e,t,r){var n,o,i,a=Ze.keyName(e);\"Up\"==a||\"Down\"==a?(n=\"Up\"==a,o=e.target?e.target.selectionEnd:0,r(t=K.searchHistoryController.nextMatch(t,n)||\"\"),o&&e.target&&(e.target.selectionEnd=e.target.selectionStart=Math.min(o,e.target.value.length))):\"Left\"!=a&&\"Right\"!=a&&\"Ctrl\"!=a&&\"Alt\"!=a&&\"Shift\"!=a&&K.searchHistoryController.reset();try{i=Ee(s,t,!0,!0)}catch(e){}i?s.scrollIntoView(Ie(s,!l,i),30):(Ke(s),s.scrollTo(c.left,c.top))},onKeyDown:function(e,t,r){var n=Ze.keyName(e);\"Esc\"==n||\"Ctrl-C\"==n||\"Ctrl-[\"==n||\"Backspace\"==n&&\"\"==t?(K.searchHistoryController.pushInput(t),K.searchHistoryController.reset(),Ee(s,i),Ke(s),s.scrollTo(c.left,c.top),Ze.e_stop(e),P(s),r(),s.focus()):\"Up\"==n||\"Down\"==n?Ze.e_stop(e):\"Ctrl-U\"==n&&(Ze.e_stop(e),r(\"\"))}});break;case\"wordUnderCursor\":var a=ue(s,!1,0,!1,!0),u=!0;if(a||(a=ue(s,!1,0,!1,!1),u=!1),!a)return;var h=s.getLine(a.start.line).substring(a.start.ch,a.end.ch);h=u&&e?\"\\\\b\"+h+\"\\\\b\":h.replace(/([.?*+$\\[\\]\\/\\\\(){}|\\-])/g,\"\\\\$1\"),K.jumpList.cachedCursor=s.getCursor(),s.setCursor(a.start),p(h,!0,!1)}}function p(t,e,r){K.searchHistoryController.pushInput(t),K.searchHistoryController.reset();try{Ee(s,t,e,r)}catch(e){return Le(s,\"Invalid regex: \"+t),void P(s)}F.processMotion(s,n,{type:\"motion\",motion:\"findNext\",motionArgs:{forward:!0,toJumplist:o.searchArgs.toJumplist}})}},processEx:function(a,e,t){function r(e){K.exCommandHistoryController.pushInput(e),K.exCommandHistoryController.reset(),Fe.processCommand(a,e)}function n(e,t,r){var n,o,i=Ze.keyName(e);(\"Esc\"==i||\"Ctrl-C\"==i||\"Ctrl-[\"==i||\"Backspace\"==i&&\"\"==t)&&(K.exCommandHistoryController.pushInput(t),K.exCommandHistoryController.reset(),Ze.e_stop(e),P(a),r(),a.focus()),\"Up\"==i||\"Down\"==i?(Ze.e_stop(e),n=\"Up\"==i,o=e.target?e.target.selectionEnd:0,r(t=K.exCommandHistoryController.nextMatch(t,n)||\"\"),o&&e.target&&(e.target.selectionEnd=e.target.selectionStart=Math.min(o,e.target.value.length))):\"Ctrl-U\"==i?(Ze.e_stop(e),r(\"\")):\"Left\"!=i&&\"Right\"!=i&&\"Ctrl\"!=i&&\"Alt\"!=i&&\"Shift\"!=i&&K.exCommandHistoryController.reset()}\"keyToEx\"==t.type?Fe.processCommand(a,t.exArgs.input):e.visualMode?Re(a,{onClose:r,prefix:\":\",value:\"'<,'>\",onKeyDown:n,selectValueOnOpen:!1}):Re(a,{onClose:r,prefix:\":\",onKeyDown:n})},evalInput:function(e,t){var r,n,o,i,a,s,l,c,u,h,p,f,d=t.inputState,m=d.motion,g=d.motionArgs||{},v=d.operator,y=d.operatorArgs||{},k=d.registerName,C=t.sel,w=z(t.visualMode?J(e,C.head):e.getCursor(\"head\")),x=z(t.visualMode?J(e,C.anchor):e.getCursor(\"anchor\")),M=z(w),S=z(x);if(v&&this.recordLastEdit(t,d),0<(n=void 0!==d.repeatOverride?d.repeatOverride:d.getRepeat())&&g.explicitRepeat?g.repeatIsExplicit=!0:(g.noRepeat||!g.explicitRepeat&&0===n)&&(n=1,g.repeatIsExplicit=!1),d.selectedCharacter&&(g.selectedCharacter=y.selectedCharacter=d.selectedCharacter),g.repeat=n,P(e),m){var A,b,L=W[m](e,w,g,t,d);if(t.lastMotion=W[m],!L)return;g.toJumplist&&((b=(A=K.jumpList).cachedCursor)?(he(e,b,L),delete A.cachedCursor):he(e,w,L)),s=(s=L instanceof Array?(r=L[0],L[1]):L)||z(w),t.visualMode?(t.visualBlock&&s.ch===1/0||(s=J(e,s)),r=(r=r&&J(e,r))||S,C.anchor=r,C.head=s,ae(e),ve(e,t,\"<\",Z(r,s)?r:s),ve(e,t,\">\",Z(r,s)?s:r)):v||(s=J(e,s),e.setCursor(s.line,s.ch))}if(v){if(y.lastSel?(r=S,o=y.lastSel,i=Math.abs(o.head.line-o.anchor.line),a=Math.abs(o.head.ch-o.anchor.ch),s=o.visualLine?tt(S.line+i,S.ch):o.visualBlock?tt(S.line+i,S.ch+a):o.head.line==o.anchor.line?tt(S.line,S.ch+a):tt(S.line+i,S.ch),t.visualMode=!0,t.visualLine=o.visualLine,t.visualBlock=o.visualBlock,C=t.sel={anchor:r,head:s},ae(e)):t.visualMode&&(y.lastSel={anchor:z(C.anchor),head:z(C.head),visualBlock:t.visualBlock,visualLine:t.visualLine}),t.visualMode){if(h=G(C.head,C.anchor),p=Y(C.head,C.anchor),l=t.visualLine||y.linewise,E=se(e,{anchor:h,head:p},c=t.visualBlock?\"block\":l?\"line\":\"char\"),l){var T=E.ranges;if(\"block\"==c)for(var R=0;R<T.length;R++)T[R].head.ch=te(e,T[R].head.line);else\"line\"==c&&(T[0].head=tt(T[0].head.line+1,0))}}else{h=z(r||S),Z(p=z(s||M),h)&&(u=h,h=p,p=u),(l=g.linewise||y.linewise)?(f=p,h.ch=0,f.ch=0,f.line++):g.forward&&function(e,t,r){var n=e.getRange(t,r);if(/\\n\\s*$/.test(n)){var o=n.split(\"\\n\");o.pop();for(var i=o.pop();0<o.length&&i&&B(i);i=o.pop())r.line--,r.ch=0;i?(r.line--,r.ch=te(e,r.line)):r.ch=0}}(e,h,p);var E=se(e,{anchor:h,head:p},c=\"char\",!g.inclusive||l)}e.setSelections(E.ranges,E.primary),t.lastMotion=null,y.repeat=n,y.registerName=k,y.linewise=l;var O=D[v](e,y,E.ranges,S,s);t.visualMode&&le(e,null!=O),O&&e.setCursor(O)}},recordLastEdit:function(e,t,r){var n=K.macroModeState;n.isPlaying||(e.lastEditInputState=t,e.lastEditActionCommand=r,n.lastInsertModeChanges.changes=[],n.lastInsertModeChanges.expectCursorActivityForChange=!1,n.lastInsertModeChanges.visualBlock=e.visualBlock?e.sel.head.line-e.sel.anchor.line:0)}},W={moveToTopLine:function(e,t,r){var n=Ne(e).top+r.repeat-1;return tt(n,ce(e.getLine(n)))},moveToMiddleLine:function(e){var t=Ne(e),r=Math.floor(.5*(t.top+t.bottom));return tt(r,ce(e.getLine(r)))},moveToBottomLine:function(e,t,r){var n=Ne(e).bottom-r.repeat+1;return tt(n,ce(e.getLine(n)))},expandToLine:function(e,t,r){return tt(t.line+r.repeat-1,1/0)},findNext:function(e,t,r){var n=Ce(e),o=n.getQuery();if(o){var i=!r.forward,i=n.isReversed()?!i:i;return Be(e,o),Ie(e,i,o,r.repeat)}},findAndSelectNextInclusive:function(e,t,r,n,o){var i=Ce(e),a=i.getQuery();if(a){var s=!r.forward,l=function(o,i,a,s,l){void 0===s&&(s=1);return o.operation(function(){var e=o.getCursor(),t=o.getSearchCursor(a,e),r=t.find(!i);!l.visualMode&&r&&X(t.from(),e)&&t.find(!i);for(var n=0;n<s;n++)if(!(r=t.find(i))&&!(t=o.getSearchCursor(a,i?tt(o.lastLine()):tt(o.firstLine(),0))).find(i))return;return[t.from(),t.to()]})}(e,s=i.isReversed()?!s:s,a,r.repeat,n);if(l){if(o.operator)return l;var c=l[0],u=tt(l[1].line,l[1].ch-1);if(n.visualMode){(n.visualLine||n.visualBlock)&&(n.visualLine=!1,n.visualBlock=!1,Ze.signal(e,\"vim-mode-change\",{mode:\"visual\",subMode:\"\"}));var h=n.sel.anchor;if(h)return i.isReversed()?r.forward?[h,c]:[h,u]:r.forward?[h,u]:[h,c]}else n.visualMode=!0,n.visualLine=!1,n.visualBlock=!1,Ze.signal(e,\"vim-mode-change\",{mode:\"visual\",subMode:\"\"});return s?[u,c]:[c,u]}}},goToMark:function(e,t,r,n){var o=Pe(e,n,r.selectedCharacter);return o?r.linewise?{line:o.line,ch:ce(e.getLine(o.line))}:o:null},moveToOtherHighlightedEnd:function(e,t,r,n){if(n.visualBlock&&r.sameLine){var o=n.sel;return[J(e,tt(o.anchor.line,o.head.ch)),J(e,tt(o.head.line,o.anchor.ch))]}return[n.sel.head,n.sel.anchor]},jumpToMark:function(e,t,r,n){for(var o=t,i=0;i<r.repeat;i++){var a,s,l,c=o;for(var u in n.marks){y(u)&&(a=n.marks[u].find(),(r.forward?Z(a,c):Z(c,a))||r.linewise&&a.line==c.line||(s=X(c,o),l=r.forward?ee(c,a,o):ee(o,a,c),(s||l)&&(o=a)))}}return r.linewise&&(o=tt(o.line,ce(e.getLine(o.line)))),o},moveByCharacters:function(e,t,r){var n=r.repeat,o=r.forward?t.ch+n:t.ch-n;return tt(t.line,o)},moveByLines:function(e,t,r,n){var o=t,i=o.ch;switch(n.lastMotion){case this.moveByLines:case this.moveByDisplayLines:case this.moveByScroll:case this.moveToColumn:case this.moveToEol:i=n.lastHPos;break;default:n.lastHPos=i}var a=r.repeat+(r.repeatOffset||0),s=r.forward?o.line+a:o.line-a,l=e.firstLine(),c=e.lastLine(),u=e.findPosV(o,r.forward?a:-a,\"line\",n.lastHSPos);return(r.forward?u.line>s:u.line<s)&&(s=u.line,i=u.ch),s<l&&o.line==l?this.moveToStartOfLine(e,t,r,n):c<s&&o.line==c?me(e,t,r,n,!0):(r.toFirstChar&&(i=ce(e.getLine(s)),n.lastHPos=i),n.lastHSPos=e.charCoords(tt(s,i),\"div\").left,tt(s,i))},moveByDisplayLines:function(e,t,r,n){var o=t;switch(n.lastMotion){case this.moveByDisplayLines:case this.moveByScroll:case this.moveByLines:case this.moveToColumn:case this.moveToEol:break;default:n.lastHSPos=e.charCoords(o,\"div\").left}var i,a,s=r.repeat,l=e.findPosV(o,r.forward?s:-s,\"line\",n.lastHSPos);return l.hitSide&&(l=r.forward?(i={top:e.charCoords(l,\"div\").top+8,left:n.lastHSPos},e.coordsChar(i,\"div\")):((a=e.charCoords(tt(e.firstLine(),0),\"div\")).left=n.lastHSPos,e.coordsChar(a,\"div\"))),n.lastHPos=l.ch,l},moveByPage:function(e,t,r){var n=r.repeat;return e.findPosV(t,r.forward?n:-n,\"page\")},moveByParagraph:function(e,t,r){var n=r.forward?1:-1;return ye(e,t,r.repeat,n)},moveBySentence:function(e,t,r){var n=r.forward?1:-1;return function(e,t,r,n){function u(e,t){if(t.pos+t.dir<0||t.pos+t.dir>=t.line.length){if(t.ln+=t.dir,!v(e,t.ln))return t.line=null,t.ln=null,void(t.pos=null);t.line=e.getLine(t.ln),t.pos=0<t.dir?0:t.line.length-1}else t.pos+=t.dir}var o={ln:t.line,pos:t.ch};for(;0<r;)o=(n<0?function(e,t,r,n){var o={line:s=e.getLine(t),ln:t,pos:r,dir:n},i={ln:o.ln,pos:null},a=\"\"===o.line;for(u(e,o);null!==o.line;){if(\"\"===o.line&&!a)return null!==i.pos?i:{ln:o.ln,pos:o.pos};if(C(o.line[o.pos])&&null!==i.pos&&(o.ln!==i.ln||o.pos+1!==i.pos))return i;\"\"===o.line||B(o.line[o.pos])||(a=!1,i={ln:o.ln,pos:o.pos}),u(e,o)}for(var s=e.getLine(i.ln),l=i.pos=0;l<s.length;++l)if(!B(s[l])){i.pos=l;break}return i}:function(e,t,r,n){var o=\"\"===(l=e.getLine(t)),i={line:l,ln:t,pos:r,dir:n},a={ln:i.ln,pos:i.pos},s=\"\"===i.line;for(u(e,i);null!==i.line;){if(a.ln=i.ln,a.pos=i.pos,\"\"===i.line&&!s)return{ln:i.ln,pos:i.pos};if(o&&\"\"!==i.line&&!B(i.line[i.pos]))return{ln:i.ln,pos:i.pos};!C(i.line[i.pos])||o||i.pos!==i.line.length-1&&!B(i.line[i.pos+1])||(o=!0),u(e,i)}var l=e.getLine(a.ln);a.pos=0;for(var c=l.length-1;0<=c;--c)if(!B(l[c])){a.pos=c;break}return a})(e,o.ln,o.pos,n),r--;return tt(o.ln,o.pos)}(e,t,r.repeat,n)},moveByScroll:function(e,t,r,n){var o=e.getScrollInfo(),i=null,a=(a=r.repeat)||o.clientHeight/(2*e.defaultTextHeight()),s=e.charCoords(t,\"local\");if(r.repeat=a,!(i=W.moveByDisplayLines(e,t,r,n)))return null;var l=e.charCoords(i,\"local\");return e.scrollTo(null,o.top+l.top-s.top),i},moveByWords:function(e,t,r){return function(e,t,r,n,o,i){var a=z(t),s=[];(n&&!o||!n&&o)&&r++;for(var l=!(n&&o),c=0;c<r;c++){var u=function(e,t,r,n,o){var i=t.line,a=t.ch,s=e.getLine(i),l=r?1:-1,c=n?g:m;if(o&&\"\"==s){if(i+=l,s=e.getLine(i),!v(e,i))return null;a=r?0:s.length}for(;;){if(o&&\"\"==s)return{from:0,to:0,line:i};for(var u=0<l?s.length:-1,h=u,p=u;a!=u;){for(var f=!1,d=0;d<c.length&&!f;++d)if(c[d](s.charAt(a))){for(h=a;a!=u&&c[d](s.charAt(a));)a+=l;if(f=h!=(p=a),h==t.ch&&i==t.line&&p==h+l)continue;return{from:Math.min(h,p+1),to:Math.max(h,p),line:i}}f||(a+=l)}if(!v(e,i+=l))return null;s=e.getLine(i),a=0<l?0:s.length}}(e,t,n,i,l);if(!u){var h=te(e,e.lastLine());s.push(n?{line:e.lastLine(),from:h,to:h}:{line:0,from:0,to:0});break}s.push(u),t=tt(u.line,n?u.to-1:u.from)}var p=s.length!=r,f=s[0],d=s.pop();return n&&!o?(p||f.from==a.ch&&f.line==a.line||(d=s.pop()),tt(d.line,d.from)):n&&o?tt(d.line,d.to-1):!n&&o?(p||f.to==a.ch&&f.line==a.line||(d=s.pop()),tt(d.line,d.to)):tt(d.line,d.from)}(e,t,r.repeat,!!r.forward,!!r.wordEnd,!!r.bigWord)},moveTillCharacter:function(e,t,r){var n=ge(e,r.repeat,r.forward,r.selectedCharacter),o=r.forward?-1:1;return pe(o,r),n?(n.ch+=o,n):null},moveToCharacter:function(e,t,r){var n=r.repeat;return pe(0,r),ge(e,n,r.forward,r.selectedCharacter)||t},moveToSymbol:function(e,t,r){return function(e,t,r,n){var o=z(e.getCursor()),i=r?1:-1,a=r?e.lineCount():-1,s=o.ch,l=o.line,c=e.getLine(l),u={lineText:c,nextCh:c.charAt(s),lastCh:null,index:s,symb:n,reverseSymb:(r?{\")\":\"(\",\"}\":\"{\"}:{\"(\":\")\",\"{\":\"}\"})[n],forward:r,depth:0,curMoveThrough:!1},h=fe[n];if(!h)return o;var p=de[h].init,f=de[h].isComplete;p&&p(u);for(;l!==a&&t;){var d;u.index+=i,u.nextCh=u.lineText.charAt(u.index),u.nextCh||(l+=i,u.lineText=e.getLine(l)||\"\",0<i?u.index=0:(d=u.lineText.length,u.index=0<d?d-1:0),u.nextCh=u.lineText.charAt(u.index)),f(u)&&(o.line=l,o.ch=u.index,t--)}if(u.nextCh||u.curMoveThrough)return tt(l,u.index);return o}(e,r.repeat,r.forward,r.selectedCharacter)||t},moveToColumn:function(e,t,r,n){var o,i,a,s=r.repeat;return n.lastHPos=s-1,n.lastHSPos=e.charCoords(t,\"div\").left,i=s,a=(o=e).getCursor().line,J(o,tt(a,i-1))},moveToEol:function(e,t,r,n){return me(e,t,r,n,!1)},moveToFirstNonWhiteSpaceCharacter:function(e,t){return tt(t.line,ce(e.getLine(t.line)))},moveToMatchedSymbol:function(e,t){for(var r,n=t,o=n.line,i=n.ch,a=e.getLine(o);i<a.length;i++)if((r=a.charAt(i))&&-1!=\"()[]{}\".indexOf(r)){var s=e.getTokenTypeAt(tt(o,i+1));if(\"string\"!==s&&\"comment\"!==s)break}if(i<a.length){var l=\"<\"===i||\">\"===i?/[(){}[\\]<>]/:/[(){}[\\]]/;return e.findMatchingBracket(tt(o,i),{bracketRegex:l}).to}return n},moveToStartOfLine:function(e,t){return tt(t.line,0)},moveToLineOrEdgeOfDocument:function(e,t,r){var n=r.forward?e.lastLine():e.firstLine();return r.repeatIsExplicit&&(n=r.repeat-e.getOption(\"firstLineNumber\")),tt(n,ce(e.getLine(n)))},textObjectManipulation:function(e,t,r,n){var o=r.selectedCharacter;\"b\"==o?o=\"(\":\"B\"==o&&(o=\"{\");var i=!r.textObjectInner;if({\"(\":\")\",\")\":\"(\",\"{\":\"}\",\"}\":\"{\",\"[\":\"]\",\"]\":\"[\",\"<\":\">\",\">\":\"<\"}[o])s=function(e,t,r,n){var o,i,a=t,s={\"(\":/[()]/,\")\":/[()]/,\"[\":/[[\\]]/,\"]\":/[[\\]]/,\"{\":/[{}]/,\"}\":/[{}]/,\"<\":/[<>]/,\">\":/[<>]/}[r],l={\"(\":\"(\",\")\":\"(\",\"[\":\"[\",\"]\":\"[\",\"{\":\"{\",\"}\":\"{\",\"<\":\"<\",\">\":\"<\"}[r],c=e.getLine(a.line).charAt(a.ch)===l?1:0;if(o=e.scanForBracket(tt(a.line,a.ch+c),-1,void 0,{bracketRegex:s}),i=e.scanForBracket(tt(a.line,a.ch+c),1,void 0,{bracketRegex:s}),!o||!i)return{start:a,end:a};{var u;o=o.pos,i=i.pos,(o.line==i.line&&o.ch>i.ch||o.line>i.line)&&(u=o,o=i,i=u)}n?i.ch+=1:o.ch+=1;return{start:o,end:i}}(e,t,o,i);else if({\"'\":!0,'\"':!0,\"`\":!0}[o])s=function(e,t,r,n){var o,i,a,s,l=z(t),c=e.getLine(l.line).split(\"\"),u=c.indexOf(r);l.ch<u?l.ch=u:u<l.ch&&c[l.ch]==r&&(i=l.ch,--l.ch);if(c[l.ch]!=r||i)for(a=l.ch;-1<a&&!o;a--)c[a]==r&&(o=a+1);else o=l.ch+1;if(o&&!i)for(a=o,s=c.length;a<s&&!i;a++)c[a]==r&&(i=a);if(!o||!i)return{start:l,end:l};n&&(--o,++i);return{start:tt(l.line,o),end:tt(l.line,i)}}(e,t,o,i);else if(\"W\"===o)s=ue(e,i,0,!0);else if(\"w\"===o)s=ue(e,i,0,!1);else if(\"p\"===o){var a,s=ye(e,t,r.repeat,0,i);r.linewise=!0,n.visualMode?n.visualLine||(n.visualLine=!0):((a=n.inputState.operatorArgs)&&(a.linewise=!0),s.end.line--)}else{if(\"t\"!==o)return null;s=function(e,t,r){var n=t;if(!Ze.findMatchingTag||!Ze.findEnclosingTag)return{start:n,end:n};var o=Ze.findMatchingTag(e,t)||Ze.findEnclosingTag(e,t);if(!o||!o.open||!o.close)return{start:n,end:n};if(r)return{start:o.open.from,end:o.close.to};return{start:o.open.to,end:o.close.from}}(e,t,i)}return e.state.vim.visualMode?function(e,t,r){var n,o=e.state.vim.sel,i=o.head,a=o.anchor;Z(r,t)&&(n=r,r=t,t=n);Z(i,a)?(i=G(t,i),a=Y(a,r)):(a=G(t,a),-1==(i=q(i=Y(i,r),0,-1)).ch&&i.line!=e.firstLine()&&(i=tt(i.line-1,te(e,i.line-1))));return[a,i]}(e,s.start,s.end):[s.start,s.end]},repeatLastCharacterSearch:function(e,t,r){var n=K.lastCharacterSearch,o=r.repeat,i=r.forward===n.forward,a=(n.increment?1:0)*(i?-1:1);e.moveH(-a,\"char\");var s=ge(e,o,r.inclusive=i,n.selectedCharacter);return s?(s.ch+=a,s):(e.moveH(a,\"char\"),t)}};function V(e,t){for(var r=[],n=0;n<t;n++)r.push(e);return r}var D={change:function(e,t,r){var n,o,i,a,s,l,c=e.state.vim,u=r[0].anchor,h=r[0].head,p=c.visualMode?t.fullLine?(h.ch=Number.MAX_VALUE,h.line--,e.setSelection(u,h),n=e.getSelection(),e.replaceSelection(\"\"),u):(n=e.getSelection(),o=V(\"\",r.length),e.replaceSelections(o),G(r[0].head,r[0].anchor)):(n=e.getRange(u,h),\"moveByWords\"!=(i=c.lastEditInputState||{}).motion||B(n)||(a=/\\s+$/.exec(n))&&i.motionArgs&&i.motionArgs.forward&&(h=q(h,0,-a[0].length),n=n.slice(0,-a[0].length)),s=new tt(u.line-1,Number.MAX_VALUE),l=e.firstLine()==e.lastLine(),h.line>e.lastLine()&&t.linewise&&!l?e.replaceRange(\"\",s,h):e.replaceRange(\"\",u,h),t.linewise&&(l||(e.setCursor(s),Ze.commands.newlineAndIndent(e)),u.ch=Number.MAX_VALUE),u);K.registerController.pushText(t.registerName,\"change\",n,t.linewise,1<r.length),U.enterInsertMode(e,{head:p},e.state.vim)},delete:function(e,t,r){var n,o,i,a,s,l=e.state.vim;return l.visualBlock?(o=e.getSelection(),i=V(\"\",r.length),e.replaceSelections(i),n=r[0].anchor):(a=r[0].anchor,s=r[0].head,t.linewise&&s.line!=e.firstLine()&&a.line==e.lastLine()&&a.line==s.line-1&&(a.line==e.firstLine()?a.ch=0:a=tt(a.line-1,te(e,a.line-1))),o=e.getRange(a,s),e.replaceRange(\"\",a,s),n=a,t.linewise&&(n=W.moveToFirstNonWhiteSpaceCharacter(e,a))),K.registerController.pushText(t.registerName,\"delete\",o,t.linewise,l.visualBlock),J(e,n)},indent:function(e,t,r){var n=e.state.vim,o=r[0].anchor.line,i=n.visualBlock?r[r.length-1].anchor.line:r[0].head.line,a=n.visualMode?t.repeat:1;t.linewise&&i--;for(var s=o;s<=i;s++)for(var l=0;l<a;l++)e.indentLine(s,t.indentRight);return W.moveToFirstNonWhiteSpaceCharacter(e,r[0].anchor)},indentAuto:function(e,t,r){return e.execCommand(\"indentAuto\"),W.moveToFirstNonWhiteSpaceCharacter(e,r[0].anchor)},changeCase:function(e,t,r,n,o){for(var i=e.getSelections(),a=[],s=t.toLower,l=0;l<i.length;l++){var c=i[l],u=\"\";if(!0===s)u=c.toLowerCase();else if(!1===s)u=c.toUpperCase();else for(var h=0;h<c.length;h++){var p=c.charAt(h);u+=k(p)?p.toLowerCase():p.toUpperCase()}a.push(u)}return e.replaceSelections(a),t.shouldMoveCursor?o:!e.state.vim.visualMode&&t.linewise&&r[0].anchor.line+1==r[0].head.line?W.moveToFirstNonWhiteSpaceCharacter(e,n):t.linewise?n:G(r[0].anchor,r[0].head)},yank:function(e,t,r,n){var o=e.state.vim,i=e.getSelection(),a=o.visualMode?G(o.sel.anchor,o.sel.head,r[0].head,r[0].anchor):n;return K.registerController.pushText(t.registerName,\"yank\",i,t.linewise,o.visualBlock),a}};var U={jumpListWalk:function(e,t,r){var n,o,i,a;r.visualMode||(n=t.repeat,o=t.forward,a=(a=(i=K.jumpList.move(e,o?n:-n))?i.find():void 0)||e.getCursor(),e.setCursor(a))},scroll:function(e,t,r){var n,o,i,a,s,l,c,u;r.visualMode||(n=t.repeat||1,o=e.defaultTextHeight(),i=e.getScrollInfo().top,a=o*n,s=t.forward?i+a:i-a,l=z(e.getCursor()),c=e.charCoords(l,\"local\"),t.forward?s>c.top?(l.line+=(s-c.top)/o,l.line=Math.ceil(l.line),e.setCursor(l),c=e.charCoords(l,\"local\"),e.scrollTo(null,c.top)):e.scrollTo(null,s):(u=s+e.getScrollInfo().clientHeight)<c.bottom?(l.line-=(c.bottom-u)/o,l.line=Math.floor(l.line),e.setCursor(l),c=e.charCoords(l,\"local\"),e.scrollTo(null,c.bottom-e.getScrollInfo().clientHeight)):e.scrollTo(null,s))},scrollToCursor:function(e,t){var r=e.getCursor().line,n=e.charCoords(tt(r,0),\"local\"),o=e.getScrollInfo().clientHeight,i=n.top,a=n.bottom-i;switch(t.position){case\"center\":i=i-o/2+a;break;case\"bottom\":i=i-o+a}e.scrollTo(null,i)},replayMacro:function(e,t,r){var n=t.selectedCharacter,o=t.repeat,i=K.macroModeState;for(\"@\"==n?n=i.latestRegister:i.latestRegister=n;o--;)!function(e,t,r,n){var o=K.registerController.getRegister(n);if(\":\"==n)return o.keyBuffer[0]&&Fe.processCommand(e,o.keyBuffer[0]),r.isPlaying=!1;var i=o.keyBuffer,a=0;r.isPlaying=!0,r.replaySearchQueries=o.searchQueries.slice(0);for(var s,l,c=0;c<i.length;c++)for(var u,h=i[c];h;){s=/<\\w+-.+?>|<\\w+>|./.exec(h),l=s[0],h=h.substring(s.index+l.length),Ze.Vim.handleKey(e,l,\"macro\"),t.insertMode&&(u=o.insertModeChanges[a++].changes,K.macroModeState.lastInsertModeChanges.changes=u,Xe(e,u,1),We(e))}r.isPlaying=!1}(e,r,i,n)},enterMacroRecordMode:function(e,t){var r=K.macroModeState,n=t.selectedCharacter;K.registerController.isValidRegister(n)&&r.enterMacroRecordMode(e,n)},toggleOverwrite:function(e){e.state.overwrite?(e.toggleOverwrite(!1),e.setOption(\"keyMap\",\"vim-insert\"),Ze.signal(e,\"vim-mode-change\",{mode:\"insert\"})):(e.toggleOverwrite(!0),e.setOption(\"keyMap\",\"vim-replace\"),Ze.signal(e,\"vim-mode-change\",{mode:\"replace\"}))},enterInsertMode:function(e,t,r){if(!e.getOption(\"readOnly\")){r.insertMode=!0,r.insertModeRepeat=t&&t.repeat||1;var n=t?t.insertAt:null,o=r.sel,i=t.head||e.getCursor(\"head\"),a=e.listSelections().length;if(\"eol\"==n)i=tt(i.line,te(e,i.line));else if(\"bol\"==n)i=tt(i.line,0);else if(\"charAfter\"==n)i=q(i,0,1);else if(\"firstNonBlank\"==n)i=W.moveToFirstNonWhiteSpaceCharacter(e,i);else if(\"startOfSelectedArea\"==n){if(!r.visualMode)return;r.visualBlock?(i=tt(Math.min(o.head.line,o.anchor.line),Math.min(o.head.ch,o.anchor.ch)),a=Math.abs(o.head.line-o.anchor.line)+1):i=o.head.line<o.anchor.line?o.head:tt(o.anchor.line,0)}else if(\"endOfSelectedArea\"==n){if(!r.visualMode)return;r.visualBlock?(i=tt(Math.min(o.head.line,o.anchor.line),Math.max(o.head.ch+1,o.anchor.ch)),a=Math.abs(o.head.line-o.anchor.line)+1):i=o.head.line>=o.anchor.line?q(o.head,0,1):tt(o.anchor.line,0)}else if(\"inplace\"==n){if(r.visualMode)return}else\"lastEdit\"==n&&(i=_e(e)||i);e.setOption(\"disableInput\",!1),t&&t.replace?(e.toggleOverwrite(!0),e.setOption(\"keyMap\",\"vim-replace\"),Ze.signal(e,\"vim-mode-change\",{mode:\"replace\"})):(e.toggleOverwrite(!1),e.setOption(\"keyMap\",\"vim-insert\"),Ze.signal(e,\"vim-mode-change\",{mode:\"insert\"})),K.macroModeState.isPlaying||(e.on(\"change\",De),Ze.on(e.getInputField(),\"keydown\",Qe)),r.visualMode&&le(e),oe(e,i,a)}},toggleVisualMode:function(e,t,r){var n,o=t.repeat,i=e.getCursor();r.visualMode?r.visualLine^t.linewise||r.visualBlock^t.blockwise?(r.visualLine=!!t.linewise,r.visualBlock=!!t.blockwise,Ze.signal(e,\"vim-mode-change\",{mode:\"visual\",subMode:r.visualLine?\"linewise\":r.visualBlock?\"blockwise\":\"\"}),ae(e)):le(e):(r.visualMode=!0,r.visualLine=!!t.linewise,r.visualBlock=!!t.blockwise,n=J(e,tt(i.line,i.ch+o-1)),r.sel={anchor:i,head:n},Ze.signal(e,\"vim-mode-change\",{mode:\"visual\",subMode:r.visualLine?\"linewise\":r.visualBlock?\"blockwise\":\"\"}),ae(e),ve(e,r,\"<\",G(i,n)),ve(e,r,\">\",Y(i,n)))},reselectLastSelection:function(e,t,r){var n=r.lastSelection;if(r.visualMode&&ie(e,r),n){var o=n.anchorMark.find(),i=n.headMark.find();if(!o||!i)return;r.sel={anchor:o,head:i},r.visualMode=!0,r.visualLine=n.visualLine,r.visualBlock=n.visualBlock,ae(e),ve(e,r,\"<\",G(o,i)),ve(e,r,\">\",Y(o,i)),Ze.signal(e,\"vim-mode-change\",{mode:\"visual\",subMode:r.visualLine?\"linewise\":r.visualBlock?\"blockwise\":\"\"})}},joinLines:function(e,t,r){var n,o,i;r.visualMode?(o=e.getCursor(\"anchor\"),Z(n=e.getCursor(\"head\"),o)&&(l=n,n=o,o=l),n.ch=te(e,n.line)-1):(i=Math.max(t.repeat,2),o=e.getCursor(),n=J(e,tt(o.line+i-1,1/0)));for(var a=0,s=o.line;s<n.line;s++){a=te(e,o.line);var l=tt(o.line+1,te(e,o.line+1)),c=e.getRange(o,l),c=t.keepSpaces?c.replace(/\\n\\r?/g,\"\"):c.replace(/\\n\\s*/g,\" \");e.replaceRange(c,o,l)}var u=tt(o.line,a);r.visualMode&&le(e,!1),e.setCursor(u)},newLineAndEnterInsertMode:function(e,t,r){r.insertMode=!0;var n=z(e.getCursor());n.line!==e.firstLine()||t.after?(n.line=t.after?n.line:n.line-1,n.ch=te(e,n.line),e.setCursor(n),(Ze.commands.newlineAndIndentContinueComment||Ze.commands.newlineAndIndent)(e)):(e.replaceRange(\"\\n\",tt(e.firstLine(),0)),e.setCursor(e.firstLine(),0)),this.enterInsertMode(e,{repeat:t.repeat},r)},paste:function(n,e,t){var o,i,r,a,s,l,c,u=z(n.getCursor()),h=K.registerController.getRegister(e.registerName),p=h.toString();if(p){e.matchIndent&&(o=n.getOption(\"tabSize\"),i=function(e){var t=e.split(\"\\t\").length-1,r=e.split(\" \").length-1;return t*o+r},r=n.getLine(n.getCursor().line),a=i(r.match(/^\\s*/)[0]),s=p.replace(/\\n$/,\"\"),l=p!==s,c=i(p.match(/^\\s*/)[0]),p=s.replace(/^\\s*/gm,function(e){var t=a+(i(e)-c);if(t<0)return\"\";if(n.getOption(\"indentWithTabs\")){var r=Math.floor(t/o);return Array(r+1).join(\"\\t\")}return Array(t+1).join(\" \")}),p+=l?\"\\n\":\"\"),1<e.repeat&&(p=Array(e.repeat+1).join(p));var f,d,m,g,v,y,k,C,w,x,M,S=h.linewise,A=h.blockwise;if(A){p=p.split(\"\\n\"),S&&p.pop();for(var b=0;b<p.length;b++)p[b]=\"\"==p[b]?\" \":p[b];u.ch+=e.after?1:0,u.ch=Math.min(te(n,u.line),u.ch)}else S?t.visualMode?p=t.visualLine?p.slice(0,-1):\"\\n\"+p.slice(0,p.length-1)+\"\\n\":e.after?(p=\"\\n\"+p.slice(0,p.length-1),u.ch=te(n,u.line)):u.ch=0:u.ch+=e.after?1:0;if(t.visualMode){t.lastPastedText=p;var L=(w=n,M=(x=t).lastSelection,(x.visualMode?function(){var e=w.listSelections(),t=e[0],r=e[e.length-1];return[Z(t.anchor,t.head)?t.anchor:t.head,Z(r.anchor,r.head)?r.head:r.anchor]}:function(){var e=w.getCursor(),t=w.getCursor(),r=M.visualBlock;if(r){for(var n=r.width,o=r.height,t=tt(e.line+o,e.ch+n),i=[],a=e.line;a<t.line;a++){var s={anchor:tt(a,e.ch),head:tt(a,t.ch)};i.push(s)}w.setSelections(i)}else{var l=M.anchorMark.find(),c=M.headMark.find(),u=c.line-l.line,h=c.ch-l.ch;t={line:t.line+u,ch:u?t.ch:h+t.ch},M.visualLine&&(e=tt(e.line,0),t=tt(t.line,te(w,t.line))),w.setSelection(e,t)}return[e,t]})()),T=L[0],R=L[1],E=n.getSelection(),O=n.listSelections(),B=new Array(O.length).join(\"1\").split(\"1\");t.lastSelection&&(m=t.lastSelection.headMark.find()),K.registerController.unnamedRegister.setText(E),f=A?(n.replaceSelections(B),R=tt(T.line+p.length-1,T.ch),n.setCursor(T),ne(n,R),n.replaceSelections(p),T):t.visualBlock?(n.replaceSelections(B),n.setCursor(T),n.replaceRange(p,T,T),T):(n.replaceRange(p,T,R),n.posFromIndex(n.indexFromPos(T)+p.length-1)),m&&(t.lastSelection.headMark=n.setBookmark(m)),S&&(f.ch=0)}else if(A){n.setCursor(u);for(b=0;b<p.length;b++){var I=u.line+b;I>n.lastLine()&&n.replaceRange(\"\\n\",tt(I,0)),te(n,I)<u.ch&&(g=n,v=I,y=u.ch,0,k=te(g,v),C=new Array(y-k+1).join(\" \"),g.setCursor(tt(v,k)),g.replaceRange(C,g.getCursor()))}n.setCursor(u),ne(n,tt(u.line+p.length-1,u.ch)),n.replaceSelections(p),f=u}else n.replaceRange(p,u),f=S&&e.after?tt(u.line+1,ce(n.getLine(u.line+1))):S&&!e.after?tt(u.line,ce(n.getLine(u.line))):!S&&e.after?(d=n.indexFromPos(u),n.posFromIndex(d+p.length-1)):(d=n.indexFromPos(u),n.posFromIndex(d+p.length));t.visualMode&&le(n,!1),n.setCursor(f)}},undo:function(e,t){e.operation(function(){Q(e,Ze.commands.undo,t.repeat)(),e.setCursor(e.getCursor(\"anchor\"))})},redo:function(e,t){Q(e,Ze.commands.redo,t.repeat)()},setRegister:function(e,t,r){r.inputState.registerName=t.selectedCharacter},setMark:function(e,t,r){ve(e,r,t.selectedCharacter,e.getCursor())},replace:function(e,t,r){var n,o,i,a,s=t.selectedCharacter,l=e.getCursor(),c=e.listSelections(),u=r.visualMode?(l=e.getCursor(\"start\"),e.getCursor(\"end\")):(n=e.getLine(l.line),(o=l.ch+t.repeat)>n.length&&(o=n.length),tt(l.line,o));\"\\n\"==s?(r.visualMode||e.replaceRange(\"\",l,u),(Ze.commands.newlineAndIndentContinueComment||Ze.commands.newlineAndIndent)(e)):(a=(a=e.getRange(l,u)).replace(/[^\\n]/g,s),r.visualBlock?(i=new Array(e.getOption(\"tabSize\")+1).join(\" \"),a=(a=e.getSelection()).replace(/\\t/g,i).replace(/[^\\n]/g,s).split(\"\\n\"),e.replaceSelections(a)):e.replaceRange(a,l,u),r.visualMode?(l=Z(c[0].anchor,c[0].head)?c[0].anchor:c[0].head,e.setCursor(l),le(e,!1)):e.setCursor(q(u,0,-1)))},incrementNumberToken:function(e,t){for(var r,n,o,i,a,s,l,c,u,h,p,f=e.getCursor(),d=e.getLine(f.line),m=/(-?)(?:(0x)([\\da-f]+)|(0b|0|)(\\d+))/gi;null!==(r=m.exec(d))&&(o=(n=r.index)+r[0].length,!(f.ch<o)););!t.backtrack&&o<=f.ch||r&&(i=r[2]||r[4],a=r[3]||r[5],s=t.increase?1:-1,l={\"0b\":2,0:8,\"\":10,\"0x\":16}[i.toLowerCase()],c=(parseInt(r[1]+a,l)+s*t.repeat).toString(l),u=i?new Array(a.length-c.length+1+r[1].length).join(\"0\"):\"\",c=\"-\"===c.charAt(0)?\"-\"+i+u+c.substr(1):i+u+c,h=tt(f.line,n),p=tt(f.line,o),e.replaceRange(c,h,p),e.setCursor(tt(f.line,n+c.length-1)))},repeatLastEdit:function(e,t,r){var n;r.lastEditInputState&&((n=t.repeat)&&t.repeatIsExplicit?r.lastEditInputState.repeatOverride=n:n=r.lastEditInputState.repeatOverride||n,ze(e,r,n,!1))},indent:function(e,t){e.indentLine(e.getCursor().line,t.indentRight)},exitInsertMode:We};function J(e,t){var r=e.state.vim,n=r.insertMode||r.visualMode,o=Math.min(Math.max(e.firstLine(),t.line),e.lastLine()),i=te(e,o)-1+!!n,a=Math.min(Math.max(0,t.ch),i);return tt(o,a)}function $(e){var t={};for(var r in e)e.hasOwnProperty(r)&&(t[r]=e[r]);return t}function q(e,t,r){return\"object\"==typeof t&&(r=t.ch,t=t.line),tt(e.line+t,e.ch+r)}function Q(t,r,n){return function(){for(var e=0;e<n;e++)r(t)}}function z(e){return tt(e.line,e.ch)}function X(e,t){return e.ch==t.ch&&e.line==t.line}function Z(e,t){return e.line<t.line||e.line==t.line&&e.ch<t.ch}function G(e,t){return 2<arguments.length&&(t=G.apply(void 0,Array.prototype.slice.call(arguments,1))),Z(e,t)?e:t}function Y(e,t){return 2<arguments.length&&(t=Y.apply(void 0,Array.prototype.slice.call(arguments,1))),Z(e,t)?t:e}function ee(e,t,r){var n=Z(e,t),o=Z(t,r);return n&&o}function te(e,t){return e.getLine(t).length}function re(e){return e.trim?e.trim():e.replace(/^\\s+|\\s+$/g,\"\")}function ne(e,t){var r=[],n=e.listSelections(),o=z(e.clipPos(t)),i=!X(t,o),a=function(e,t,r){for(var n=0;n<e.length;n++){var o=\"head\"!=r&&X(e[n].anchor,t),i=\"anchor\"!=r&&X(e[n].head,t);if(o||i)return n}return-1}(n,e.getCursor(\"head\")),s=X(n[a].head,n[a].anchor),l=n.length-1,c=a<l-a?l:0,u=n[c].anchor,h=Math.min(u.line,o.line),p=Math.max(u.line,o.line),f=u.ch,d=o.ch,m=n[c].head.ch-f,g=d-f;0<m&&g<=0?(f++,i||d--):m<0&&0<=g?(f--,s||d++):m<0&&-1==g&&(f--,d++);for(var v=h;v<=p;v++){var y={anchor:new tt(v,f),head:new tt(v,d)};r.push(y)}return e.setSelections(r),t.ch=d,u.ch=f,u}function oe(e,t,r){for(var n=[],o=0;o<r;o++){var i=q(t,o,0);n.push({anchor:i,head:i})}e.setSelections(n,0)}function ie(e,t){var r=t.sel.anchor,n=t.sel.head;t.lastPastedText&&(n=e.posFromIndex(e.indexFromPos(r)+t.lastPastedText.length),t.lastPastedText=null),t.lastSelection={anchorMark:e.setBookmark(r),headMark:e.setBookmark(n),anchor:z(r),head:z(n),visualMode:t.visualMode,visualLine:t.visualLine,visualBlock:t.visualBlock}}function ae(e,t,r){var n=e.state.vim,o=se(e,t=t||n.sel,r=r||n.visualLine?\"line\":n.visualBlock?\"block\":\"char\");e.setSelections(o.ranges,o.primary),Je(e)}function se(e,t,r,n){var o,i=z(t.head),a=z(t.anchor);if(\"char\"==r){var s=n||Z(t.head,t.anchor)?0:1,l=Z(t.head,t.anchor)?1:0,i=q(t.head,0,s);return{ranges:[{anchor:a=q(t.anchor,0,l),head:i}],primary:0}}if(\"line\"==r)return Z(t.head,t.anchor)?(i.ch=0,a.ch=te(e,a.line)):(a.ch=0,o=e.lastLine(),i.line>o&&(i.line=o),i.ch=te(e,i.line)),{ranges:[{anchor:a,head:i}],primary:0};if(\"block\"==r){for(var c=Math.min(a.line,i.line),u=Math.min(a.ch,i.ch),h=Math.max(a.line,i.line),p=Math.max(a.ch,i.ch)+1,f=h-c+1,d=i.line==c?0:f-1,m=[],g=0;g<f;g++)m.push({anchor:tt(c+g,u),head:tt(c+g,p)});return{ranges:m,primary:d}}}function le(e,t){var r=e.state.vim;!1!==t&&e.setCursor(J(e,r.sel.head)),ie(e,r),r.visualMode=!1,r.visualLine=!1,r.visualBlock=!1,r.insertMode||Ze.signal(e,\"vim-mode-change\",{mode:\"normal\"}),$e(r)}function ce(e){if(!e)return 0;var t=e.search(/\\S/);return-1==t?e.length:t}function ue(e,t,r,n,o){for(var i,a,s=(a=(i=e).getCursor(\"head\"),1==i.getSelection().length&&(a=G(a,i.getCursor(\"anchor\"))),a),l=e.getLine(s.line),c=s.ch,u=o?m[0]:g[0];!u(l.charAt(c));)if(++c>=l.length)return null;n?u=g[0]:(u=m[0])(l.charAt(c))||(u=m[1]);for(var h=c,p=c;u(l.charAt(h))&&h<l.length;)h++;for(;u(l.charAt(p))&&0<=p;)p--;if(p++,t){for(var f=h;/\\s/.test(l.charAt(h))&&h<l.length;)h++;if(f==h){for(var d=p;/\\s/.test(l.charAt(p-1))&&0<p;)p--;p=p||d}}return{start:tt(s.line,p),end:tt(s.line,h)}}function he(e,t,r){X(t,r)||K.jumpList.add(e,t,r)}function pe(e,t){K.lastCharacterSearch.increment=e,K.lastCharacterSearch.forward=t.forward,K.lastCharacterSearch.selectedCharacter=t.selectedCharacter}var fe={\"(\":\"bracket\",\")\":\"bracket\",\"{\":\"bracket\",\"}\":\"bracket\",\"[\":\"section\",\"]\":\"section\",\"*\":\"comment\",\"/\":\"comment\",m:\"method\",M:\"method\",\"#\":\"preprocess\"},de={bracket:{isComplete:function(e){if(e.nextCh===e.symb){if(e.depth++,1<=e.depth)return!0}else e.nextCh===e.reverseSymb&&e.depth--;return!1}},section:{init:function(e){e.curMoveThrough=!0,e.symb=(e.forward?\"]\":\"[\")===e.symb?\"{\":\"}\"},isComplete:function(e){return 0===e.index&&e.nextCh===e.symb}},comment:{isComplete:function(e){var t=\"*\"===e.lastCh&&\"/\"===e.nextCh;return e.lastCh=e.nextCh,t}},method:{init:function(e){e.symb=\"m\"===e.symb?\"{\":\"}\",e.reverseSymb=\"{\"===e.symb?\"}\":\"{\"},isComplete:function(e){return e.nextCh===e.symb}},preprocess:{init:function(e){e.index=0},isComplete:function(e){if(\"#\"===e.nextCh){var t=e.lineText.match(/#(\\w+)/)[1];if(\"endif\"===t){if(e.forward&&0===e.depth)return!0;e.depth++}else if(\"if\"===t){if(!e.forward&&0===e.depth)return!0;e.depth--}if(\"else\"===t&&0===e.depth)return!0}return!1}}};function me(e,t,r,n,o){var i=tt(t.line+r.repeat-1,1/0),a=e.clipPos(i);return a.ch--,o||(n.lastHPos=1/0,n.lastHSPos=e.charCoords(a,\"div\").left),i}function ge(e,t,r,n){for(var o,i=e.getCursor(),a=i.ch,s=0;s<t;s++){if(-1==(o=function(e,t,r,n,o){var i;n?-1==(i=t.indexOf(r,e+1))||o||--i:-1==(i=t.lastIndexOf(r,e-1))||o||(i+=1);return i}(a,e.getLine(i.line),n,r,!0)))return null;a=o}return tt(e.getCursor().line,o)}function ve(e,t,r,n){w(r,f)&&(t.marks[r]&&t.marks[r].clear(),t.marks[r]=e.setBookmark(n))}function ye(t,e,r,n,o){var i,a=e.line,s=t.firstLine(),l=t.lastLine(),c=a;function u(e){return!t.getLine(e)}function h(e,t,r){return r?u(e)!=u(e+t):!u(e)&&u(e+t)}if(n){for(;s<=c&&c<=l&&0<r;)h(c,n)&&r--,c+=n;return new tt(c,0)}var p,f=t.state.vim;f.visualLine&&h(a,1,!0)&&(h((p=f.sel.anchor).line,-1,!0)&&(o&&p.line==a||(a+=1)));for(var d=u(a),c=a;c<=l&&r;c++)h(c,1,!0)&&(o&&u(c)==d||r--);for(i=new tt(c,0),l<c&&!d?d=!0:o=!1,c=a;s<c&&(o&&u(c)!=d&&c!=a||!h(c,-1,!0));c--);return{start:new tt(c,0),end:i}}function ke(){}function Ce(e){var t=e.state.vim;return t.searchState_||(t.searchState_=new ke)}function we(e,t){var r=xe(e,t)||[];if(!r.length)return[];var n=[];if(0===r[0]){for(var o=0;o<r.length;o++)\"number\"==typeof r[o]&&n.push(e.substring(r[o]+1,r[o+1]));return n}}function xe(e,t){t=t||\"/\";for(var r=!1,n=[],o=0;o<e.length;o++){var i=e.charAt(o);r||i!=t||n.push(o),r=!r&&\"\\\\\"==i}return n}M(\"pcre\",!0,\"boolean\"),ke.prototype={getQuery:function(){return K.query},setQuery:function(e){K.query=e},getOverlay:function(){return this.searchOverlay},setOverlay:function(e){this.searchOverlay=e},isReversed:function(){return K.isReversed},setReversed:function(e){K.isReversed=e},getScrollbarAnnotate:function(){return this.annotate},setScrollbarAnnotate:function(e){this.annotate=e}};var Me={\"\\\\n\":\"\\n\",\"\\\\r\":\"\\r\",\"\\\\t\":\"\\t\"};function Se(e){for(var t,r=!1,n=[],o=-1;o<e.length;o++){var i=e.charAt(o)||\"\",a=e.charAt(o+1)||\"\";Me[i+a]?(n.push(Me[i+a]),o++):r?(n.push(i),r=!1):\"\\\\\"===i?(r=!0,t=a,u.test(t)||\"$\"===a?n.push(\"$\"):\"/\"!==a&&\"\\\\\"!==a&&n.push(\"\\\\\")):(\"$\"===i&&n.push(\"$\"),n.push(i),\"/\"===a&&n.push(\"\\\\\"))}return n.join(\"\")}var Ae={\"\\\\/\":\"/\",\"\\\\\\\\\":\"\\\\\",\"\\\\n\":\"\\n\",\"\\\\r\":\"\\r\",\"\\\\t\":\"\\t\",\"\\\\&\":\"&\"};function be(e,t,r){if(K.registerController.getRegister(\"/\").setText(e),e instanceof RegExp)return e;var n,o,i=xe(e,\"/\");return i.length?(n=e.substring(0,i[0]),o=-1!=e.substring(i[0]).indexOf(\"i\")):n=e,n?(A(\"pcre\")||(n=function(e){for(var t=!1,r=[],n=-1;n<e.length;n++){var o=e.charAt(n)||\"\",i=e.charAt(n+1)||\"\",a=i&&-1!=\"|(){\".indexOf(i);t?(\"\\\\\"===o&&a||r.push(o),t=!1):\"\\\\\"===o?(t=!0,i&&-1!=\"}\".indexOf(i)&&(a=!0),a&&\"\\\\\"!==i||r.push(o)):(r.push(o),a&&\"\\\\\"!==i&&r.push(\"\\\\\"))}return r.join(\"\")}(n)),r&&(t=/^[^A-Z]*$/.test(n)),new RegExp(n,t||o?\"i\":void 0)):null}function Le(e,t){e.openNotification?e.openNotification('<span style=\"color: red\">'+t+\"</span>\",{bottom:!0,duration:5e3}):alert(t)}var Te=\"(Javascript regexp)\";function Re(e,t){var r,n,o,i,a,s,l,c,u=(t.prefix||\"\")+\" \"+(t.desc||\"\"),h=(r=t.prefix,n=t.desc,o='<span style=\"font-family: monospace; white-space: pre\">'+(r||\"\")+'<input type=\"text\" autocorrect=\"off\" autocapitalize=\"off\" spellcheck=\"false\"></span>',n&&(o+=' <span style=\"color: #888\">'+n+\"</span>\"),o);i=e,a=h,s=u,l=t.onClose,c=t,i.openDialog?i.openDialog(a,l,{bottom:!0,value:c.value,onKeyDown:c.onKeyDown,onKeyUp:c.onKeyUp,selectValueOnOpen:!1}):l(prompt(s,\"\"))}function Ee(e,t,r,n){if(t){var o=Ce(e),i=be(t,!!r,!!n);if(i)return Be(e,i),function(e,t){if(e instanceof RegExp&&t instanceof RegExp){for(var r=[\"global\",\"multiline\",\"ignoreCase\",\"source\"],n=0;n<r.length;n++){var o=r[n];if(e[o]!==t[o])return}return 1}}(i,o.getQuery())||o.setQuery(i),i}}var Oe=0;function Be(o,i){clearTimeout(Oe),Oe=setTimeout(function(){var r,n,e=Ce(o),t=e.getOverlay();t&&i==t.query||(t&&o.removeOverlay(t),\"^\"==(r=i).source.charAt(0)&&(n=!0),t={token:function(e){if(!n||e.sol()){var t=e.match(r,!1);if(t)return 0==t[0].length?(e.next(),\"searching\"):e.sol()||(e.backUp(1),r.exec(e.next()+t[0]))?(e.match(r),\"searching\"):(e.next(),null);for(;!e.eol()&&(e.next(),!e.match(r,!1)););}else e.skipToEnd()},query:r},o.addOverlay(t),o.showMatchesOnScrollbar&&(e.getScrollbarAnnotate()&&e.getScrollbarAnnotate().clear(),e.setScrollbarAnnotate(o.showMatchesOnScrollbar(i))),e.setOverlay(t))},50)}function Ie(o,i,a,s){return void 0===s&&(s=1),o.operation(function(){for(var e=o.getCursor(),t=o.getSearchCursor(a,e),r=0;r<s;r++){var n=t.find(i);if(0==r&&n&&X(t.from(),e)&&(n=t.find(i)),!n&&!(t=o.getSearchCursor(a,i?tt(o.lastLine()):tt(o.firstLine(),0))).find(i))return}return t.from()})}function Ke(e){var t=Ce(e);e.removeOverlay(Ce(e).getOverlay()),t.setOverlay(null),t.getScrollbarAnnotate()&&(t.getScrollbarAnnotate().clear(),t.setScrollbarAnnotate(null))}function Ne(e){var t=e.getScrollInfo(),r=e.coordsChar({left:0,top:6+t.top},\"local\"),n=t.clientHeight-10+t.top,o=e.coordsChar({left:0,top:n},\"local\");return{top:r.line,bottom:o.line}}function Pe(e,t,r){if(\"'\"==r||\"`\"==r)return K.jumpList.find(e,-1)||tt(0,0);if(\".\"==r)return _e(e);var n=t.marks[r];return n&&n.find()}function _e(e){for(var t=e.doc.history.done,r=t.length;r--;)if(t[r].changes)return z(t[r].changes[0].to)}function je(){this.buildCommandMap_()}je.prototype={processCommand:function(e,t,r){var n=this;e.operation(function(){e.curOp.isVimOp=!0,n._processCommand(e,t,r)})},_processCommand:function(t,e,r){var n=t.state.vim,o=K.registerController.getRegister(\":\"),i=o.toString();n.visualMode&&le(t);var a=new Ze.StringStream(e);o.setText(e);var s,l,c=r||{};c.input=e;try{this.parseInput_(t,a,c)}catch(e){throw Le(t,e),e}if(c.commandName){if(s=this.matchCommand_(c.commandName)){if(l=s.name,s.excludeFromCommandHistory&&o.setText(i),this.parseCommandArgs_(a,c,s),\"exToKey\"==s.type){for(var u=0;u<s.toKeys.length;u++)Ze.Vim.handleKey(t,s.toKeys[u],\"mapping\");return}if(\"exToEx\"==s.type)return void this.processCommand(t,s.toInput)}}else void 0!==c.line&&(l=\"move\");if(l)try{He[l](t,c),s&&s.possiblyAsync||!c.callback||c.callback()}catch(e){throw Le(t,e),e}else Le(t,'Not an editor command \":'+e+'\"')},parseInput_:function(e,t,r){t.eatWhile(\":\"),t.eat(\"%\")?(r.line=e.firstLine(),r.lineEnd=e.lastLine()):(r.line=this.parseLineSpec_(e,t),void 0!==r.line&&t.eat(\",\")&&(r.lineEnd=this.parseLineSpec_(e,t)));var n=t.match(/^(\\w+|!!|@@|[!#&*<=>@~])/);return r.commandName=n?n[1]:t.match(/.*/)[0],r},parseLineSpec_:function(e,t){var r=t.match(/^(\\d+)/);if(r)return parseInt(r[1],10)-1;switch(t.next()){case\".\":return this.parseLineSpecOffset_(t,e.getCursor().line);case\"$\":return this.parseLineSpecOffset_(t,e.lastLine());case\"'\":var n=t.next(),o=Pe(e,e.state.vim,n);if(!o)throw new Error(\"Mark not set\");return this.parseLineSpecOffset_(t,o.line);case\"-\":case\"+\":return t.backUp(1),this.parseLineSpecOffset_(t,e.getCursor().line);default:return void t.backUp(1)}},parseLineSpecOffset_:function(e,t){var r,n=e.match(/^([+-])?(\\d+)/);return n&&(r=parseInt(n[2],10),\"-\"==n[1]?t-=r:t+=r),t},parseCommandArgs_:function(e,t,r){var n,o;e.eol()||(t.argString=e.match(/.*/)[0],n=r.argDelimiter||/\\s+/,(o=re(t.argString).split(n)).length&&o[0]&&(t.args=o))},matchCommand_:function(e){for(var t=e.length;0<t;t--){var r=e.substring(0,t);if(this.commandMap_[r]){var n=this.commandMap_[r];if(0===n.name.indexOf(e))return n}}return null},buildCommandMap_:function(){this.commandMap_={};for(var e=0;e<et.length;e++){var t=et[e],r=t.shortName||t.name;this.commandMap_[r]=t}},map:function(e,t,r){if(\":\"!=e&&\":\"==e.charAt(0)){if(r)throw Error(\"Mode not supported for ex mappings\");var n=e.substring(1);\":\"!=t&&\":\"==t.charAt(0)?this.commandMap_[n]={name:n,type:\"exToEx\",toInput:t.substring(1),user:!0}:this.commandMap_[n]={name:n,type:\"exToKey\",toKeys:t,user:!0}}else{var o;o=\":\"!=t&&\":\"==t.charAt(0)?{keys:e,type:\"keyToEx\",exArgs:{input:t.substring(1)}}:{keys:e,type:\"keyToKey\",toKeys:t},r&&(o.context=r),Ge.unshift(o)}},unmap:function(e,t){if(\":\"!=e&&\":\"==e.charAt(0)){if(t)throw Error(\"Mode not supported for ex mappings\");var r=e.substring(1);if(this.commandMap_[r]&&this.commandMap_[r].user)return void delete this.commandMap_[r]}else for(var n=e,o=0;o<Ge.length;o++)if(n==Ge[o].keys&&Ge[o].context===t)return void Ge.splice(o,1);throw Error(\"No such mapping.\")}};var He={colorscheme:function(e,t){!t.args||t.args.length<1?Le(e,e.getOption(\"theme\")):e.setOption(\"theme\",t.args[0])},map:function(e,t,r){var n=t.args;!n||n.length<2?e&&Le(e,\"Invalid mapping: \"+t.input):Fe.map(n[0],n[1],r)},imap:function(e,t){this.map(e,t,\"insert\")},nmap:function(e,t){this.map(e,t,\"normal\")},vmap:function(e,t){this.map(e,t,\"visual\")},unmap:function(e,t,r){var n=t.args;!n||n.length<1?e&&Le(e,\"No such mapping: \"+t.input):Fe.unmap(n[0],r)},move:function(e,t){F.processCommand(e,e.state.vim,{type:\"motion\",motion:\"moveToLineOrEdgeOfDocument\",motionArgs:{forward:!1,explicitRepeat:!0,linewise:!0},repeatOverride:t.line+1})},set:function(e,t){var r=t.args,n=t.setCfg||{};if(!r||r.length<1)e&&Le(e,\"Invalid mapping: \"+t.input);else{var o=r[0].split(\"=\"),i=o[0],a=o[1],s=!1;if(\"?\"==i.charAt(i.length-1)){if(a)throw Error(\"Trailing characters: \"+t.argString);i=i.substring(0,i.length-1),s=!0}void 0===a&&\"no\"==i.substring(0,2)&&(i=i.substring(2),a=!1);var l,c,u=x[i]&&\"boolean\"==x[i].type;u&&null==a&&(a=!0),!u&&void 0===a||s?(l=A(i,e,n))instanceof Error?Le(e,l.message):Le(e,!0===l||!1===l?\" \"+(l?\"\":\"no\")+i:\"  \"+i+\"=\"+l):(c=S(i,a,e,n))instanceof Error&&Le(e,c.message)}},setlocal:function(e,t){t.setCfg={scope:\"local\"},this.set(e,t)},setglobal:function(e,t){t.setCfg={scope:\"global\"},this.set(e,t)},registers:function(e,t){var r=t.args,n=K.registerController.registers,o=\"----------Registers----------<br><br>\";if(r)for(var r=r.join(\"\"),i=0;i<r.length;i++){a=r.charAt(i),K.registerController.isValidRegister(a)&&(o+='\"'+a+\"    \"+(n[a]||new _).toString()+\"<br>\")}else for(var a in n){var s=n[a].toString();s.length&&(o+='\"'+a+\"    \"+s+\"<br>\")}Le(e,o)},sort:function(e,i){var a,s,l,c,u;var t=function(){if(i.argString){var e=new Ze.StringStream(i.argString);if(e.eat(\"!\")&&(a=!0),e.eol())return;if(!e.eatSpace())return\"Invalid arguments\";var t=e.match(/([dinuox]+)?\\s*(\\/.+\\/)?\\s*/);if(!t&&!e.eol())return\"Invalid arguments\";if(t[1]){s=-1!=t[1].indexOf(\"i\"),l=-1!=t[1].indexOf(\"u\");var r=-1!=t[1].indexOf(\"d\")||-1!=t[1].indexOf(\"n\")&&1,n=-1!=t[1].indexOf(\"x\")&&1,o=-1!=t[1].indexOf(\"o\")&&1;if(1<r+n+o)return\"Invalid arguments\";c=(r?\"decimal\":n&&\"hex\")||o&&\"octal\"}t[2]&&(u=new RegExp(t[2].substr(1,t[2].length-2),s?\"i\":\"\"))}}();if(t)Le(e,t+\": \"+i.argString);else{var r=i.line||e.firstLine(),n=i.lineEnd||i.line||e.lastLine();if(r!=n){var o=tt(r,0),h=tt(n,te(e,n)),p=e.getRange(o,h).split(\"\\n\"),f=u||(\"decimal\"==c?/(-?)([\\d]+)/:\"hex\"==c?/(-?)(?:0x)?([0-9a-f]+)/i:\"octal\"==c?/([0-7]+)/:null),d=\"decimal\"==c?10:\"hex\"==c?16:\"octal\"==c?8:null,m=[],g=[];if(c||u)for(var v=0;v<p.length;v++){var y=u?p[v].match(u):null;y&&\"\"!=y[0]?m.push(y):!u&&f.exec(p[v])?m.push(p[v]):g.push(p[v])}else g=p;if(m.sort(u?function(e,t){var r;return a&&(r=e,e=t,t=r),s&&(e[0]=e[0].toLowerCase(),t[0]=t[0].toLowerCase()),e[0]<t[0]?-1:1}:w),u)for(v=0;v<m.length;v++)m[v]=m[v].input;else c||g.sort(w);if(p=a?m.concat(g):g.concat(m),l)for(var k,C=p,p=[],v=0;v<C.length;v++)C[v]!=k&&p.push(C[v]),k=C[v];e.replaceRange(p.join(\"\\n\"),o,h)}}function w(e,t){var r;a&&(r=e,e=t,t=r),s&&(e=e.toLowerCase(),t=t.toLowerCase());var n=c&&f.exec(e),o=c&&f.exec(t);return n?(n=parseInt((n[1]+n[2]).toLowerCase(),d))-(o=parseInt((o[1]+o[2]).toLowerCase(),d)):e<t?-1:1}},global:function(t,e){var r=e.argString;if(r){var n,o=void 0!==e.line?e.line:t.firstLine(),i=e.lineEnd||e.line||t.lastLine(),a=we(r,\"/\"),s=r;if(a.length&&(s=a[0],n=a.slice(1,a.length).join(\"/\")),s)try{Ee(t,s,!0,!0)}catch(e){return void Le(t,\"Invalid regex: \"+s)}for(var l,c,u=Ce(t).getQuery(),h=[],p=\"\",f=o;f<=i;f++){u.test(t.getLine(f))&&(h.push(f+1),p+=t.getLine(f)+\"<br>\")}n?(l=0,(c=function(){var e;l<h.length&&(e=h[l]+n,Fe.processCommand(t,e,{callback:c})),l++})()):Le(t,p)}else Le(t,\"Regular Expression missing from global\")},substitute:function(t,e){if(!t.getSearchCursor)throw new Error(\"Search feature not available. Requires searchcursor.js or any other getSearchCursor implementation.\");var r,n,o,i,a,s,l,c,u,h=e.argString,p=h?we(h,h[0]):[],f=\"\",d=!1,m=!1;if(p.length)r=p[0],A(\"pcre\")&&\"\"!==r&&(r=new RegExp(r).source),f=p[1],r&&\"$\"===r[r.length-1]&&(r=r.slice(0,r.length-1)+\"\\\\n\",f=f?f+\"\\n\":\"\\n\"),void 0!==f&&(f=A(\"pcre\")?function(e){for(var t=new Ze.StringStream(e),r=[];!t.eol();){for(;t.peek()&&\"\\\\\"!=t.peek();)r.push(t.next());var n=!1;for(var o in Ae)if(t.match(o,!0)){n=!0,r.push(Ae[o]);break}n||r.push(t.next())}return r.join(\"\")}(f.replace(/([^\\\\])&/g,\"$1$$&\")):Se(f),K.lastSubstituteReplacePart=f),n=p[2]?p[2].split(\" \"):[];else if(h&&h.length)return void Le(t,\"Substitutions should be of the form :s/pattern/replace/\");if(n&&(o=n[0],i=parseInt(n[1]),o&&(-1!=o.indexOf(\"c\")&&(d=!0,o.replace(\"c\",\"\")),-1!=o.indexOf(\"g\")&&(m=!0,o.replace(\"g\",\"\")),r=A(\"pcre\")?r+\"/\"+o:r.replace(/\\//g,\"\\\\/\")+\"/\"+o)),r)try{Ee(t,r,!0,!0)}catch(e){return void Le(t,\"Invalid regex: \"+r)}void 0!==(f=f||K.lastSubstituteReplacePart)?(a=Ce(t).getQuery(),s=void 0!==e.line?e.line:t.getCursor().line,l=e.lineEnd||s,s==t.firstLine()&&l==t.lastLine()&&(l=1/0),i&&(l=(s=l)+i-1),c=J(t,tt(s,0)),u=t.getSearchCursor(a,c),function(o,e,n,i,a,s,t,r,l){o.state.vim.exMode=!0;var c=!1,u=s.from();function h(){o.operation(function(){for(;!c;)p(),f();d()})}function p(){var e=o.getRange(s.from(),s.to()).replace(t,r);s.replace(e)}function f(){for(;s.findNext()&&(e=s.from(),t=i,r=a,\"number\"!=typeof e&&(e=e.line),t instanceof Array?w(e,t):r?t<=e&&e<=r:e==t);)if(n||!u||s.from().line!=u.line)return o.scrollIntoView(s.from(),30),o.setSelection(s.from(),s.to()),u=s.from(),void(c=!1);var e,t,r;c=!0}function d(e){var t;e&&e(),o.focus(),u&&(o.setCursor(u),(t=o.state.vim).exMode=!1,t.lastHPos=t.lastHSPos=u.ch),l&&l()}if(f(),c)return Le(o,\"No matches for \"+t.source);if(!e)return h(),l&&l();Re(o,{prefix:\"replace with <strong>\"+r+\"</strong> (y/n/a/q/l)\",onKeyDown:function(e,t,r){switch(Ze.e_stop(e),Ze.keyName(e)){case\"Y\":p(),f();break;case\"N\":f();break;case\"A\":var n=l;l=void 0,o.operation(h),l=n;break;case\"L\":p();case\"Q\":case\"Esc\":case\"Ctrl-C\":case\"Ctrl-[\":d(r)}return c&&d(r),!0}})}(t,d,m,s,l,u,a,f,e.callback)):Le(t,\"No previous substitute regular expression\")},redo:Ze.commands.redo,undo:Ze.commands.undo,write:function(e){Ze.commands.save?Ze.commands.save(e):e.save&&e.save()},nohlsearch:function(e){Ke(e)},yank:function(e){var t=z(e.getCursor()).line,r=e.getLine(t);K.registerController.pushText(\"0\",\"yank\",r,!0,!0)},delmarks:function(e,t){if(t.argString&&re(t.argString))for(var r=e.state.vim,n=new Ze.StringStream(re(t.argString));!n.eol();){n.eatSpace();var o=n.pos;if(!n.match(/[a-zA-Z]/,!1))return void Le(e,\"Invalid argument: \"+t.argString.substring(o));var i=n.next();if(n.match(\"-\",!0)){if(!n.match(/[a-zA-Z]/,!1))return void Le(e,\"Invalid argument: \"+t.argString.substring(o));var a=i,s=n.next();if(!(y(a)&&y(s)||k(a)&&k(s)))return void Le(e,\"Invalid argument: \"+a+\"-\");var l=a.charCodeAt(0),c=s.charCodeAt(0);if(c<=l)return void Le(e,\"Invalid argument: \"+t.argString.substring(o));for(var u=0;u<=c-l;u++){var h=String.fromCharCode(l+u);delete r.marks[h]}}else delete r.marks[i]}else Le(e,\"Argument required\")}},Fe=new je;function We(e){var t=e.state.vim,r=K.macroModeState,n=K.registerController.getRegister(\".\"),o=r.isPlaying,i=r.lastInsertModeChanges;o||(e.off(\"change\",De),Ze.off(e.getInputField(),\"keydown\",Qe)),!o&&1<t.insertModeRepeat&&(ze(e,t,t.insertModeRepeat-1,!0),t.lastEditInputState.repeatOverride=t.insertModeRepeat),delete t.insertModeRepeat,t.insertMode=!1,e.setCursor(e.getCursor().line,e.getCursor().ch-1),e.setOption(\"keyMap\",\"vim\"),e.setOption(\"disableInput\",!0),e.toggleOverwrite(!1),n.setText(i.changes.join(\"\")),Ze.signal(e,\"vim-mode-change\",{mode:\"normal\"}),r.isRecording&&function(e){if(e.isPlaying)return;var t=e.latestRegister,r=K.registerController.getRegister(t);r&&r.pushInsertModeChanges&&r.pushInsertModeChanges(e.lastInsertModeChanges)}(r)}function Ve(e){Ge.unshift(e)}function De(e,t){var r,n,o=K.macroModeState,i=o.lastInsertModeChanges;if(!o.isPlaying)for(;t;){i.expectCursorActivityForChange=!0,1<i.ignoreCount?i.ignoreCount--:\"+input\"!=t.origin&&\"paste\"!=t.origin&&void 0!==t.origin||(1<(r=e.listSelections().length)&&(i.ignoreCount=r),n=t.text.join(\"\\n\"),i.maybeReset&&(i.changes=[],i.maybeReset=!1),n&&(e.state.overwrite&&!/\\n/.test(n)?i.changes.push([n]):i.changes.push(n))),t=t.next}}function Ue(e){var t=e.state.vim;if(t.insertMode){var r=K.macroModeState;if(r.isPlaying)return;var n=r.lastInsertModeChanges;n.expectCursorActivityForChange?n.expectCursorActivityForChange=!1:n.maybeReset=!0}else e.curOp.isVimOp||function(e,t){var r=e.getCursor(\"anchor\"),n=e.getCursor(\"head\");t.visualMode&&!e.somethingSelected()?le(e,!1):t.visualMode||t.insertMode||!e.somethingSelected()||(t.visualMode=!0,t.visualLine=!1,Ze.signal(e,\"vim-mode-change\",{mode:\"visual\"}));{var o,i;t.visualMode?(o=Z(n,r)?0:-1,i=Z(n,r)?-1:0,n=q(n,0,o),r=q(r,0,i),t.sel={anchor:r,head:n},ve(e,t,\"<\",G(n,r)),ve(e,t,\">\",Y(n,r))):t.insertMode||(t.lastHPos=e.getCursor().ch)}}(e,t);t.visualMode&&Je(e)}function Je(e){var t,r=\"cm-animate-fat-cursor\",n=e.state.vim,o=J(e,z(n.sel.head)),i=q(o,0,1);$e(n),o.ch==e.getLine(o.line).length?((t=document.createElement(\"span\")).textContent=\" \",t.className=r,n.fakeCursorBookmark=e.setBookmark(o,{widget:t})):n.fakeCursor=e.markText(o,i,{className:r})}function $e(e){e.fakeCursor&&(e.fakeCursor.clear(),e.fakeCursor=null),e.fakeCursorBookmark&&(e.fakeCursorBookmark.clear(),e.fakeCursorBookmark=null)}function qe(e){this.keyName=e}function Qe(e){var t=K.macroModeState.lastInsertModeChanges,r=Ze.keyName(e);r&&(-1==r.indexOf(\"Delete\")&&-1==r.indexOf(\"Backspace\")||Ze.lookupKey(r,\"vim-insert\",function(){return t.maybeReset&&(t.changes=[],t.maybeReset=!1),t.changes.push(new qe(r)),!0}))}function ze(r,n,e,t){var o=K.macroModeState;o.isPlaying=!0;var i=!!n.lastEditActionCommand,a=n.inputState;function s(){i?F.processAction(r,n,n.lastEditActionCommand):F.evalInput(r,n)}function l(e){var t;0<o.lastInsertModeChanges.changes.length&&(e=n.lastEditActionCommand?e:1,t=o.lastInsertModeChanges,Xe(r,t.changes,e))}if(n.inputState=n.lastEditInputState,i&&n.lastEditActionCommand.interlaceInsertRepeat)for(var c=0;c<e;c++)s(),l(1);else t||s(),l(e);n.inputState=a,n.insertMode&&!t&&We(r),o.isPlaying=!1}function Xe(t,e,r){function n(e){return\"string\"==typeof e?Ze.commands[e](t):e(t),!0}var o=t.getCursor(\"head\"),i=K.macroModeState.lastInsertModeChanges.visualBlock;i&&(oe(t,o,i+1),r=t.listSelections().length,t.setCursor(o));for(var a=0;a<r;a++){i&&t.setCursor(q(o,a,0));for(var s=0;s<e.length;s++){var l,c,u,h=e[s];h instanceof qe?Ze.lookupKey(h.keyName,\"vim-insert\",n):\"string\"==typeof h?(l=t.getCursor(),t.replaceRange(h,l,l)):(u=q(c=t.getCursor(),0,h[0].length),t.replaceRange(h[0],c,u))}}i&&t.setCursor(q(o,0,1))}return Ze.keyMap.vim={attach:o,detach:e,call:t},M(\"insertModeEscKeysTimeout\",200,\"number\"),Ze.keyMap[\"vim-insert\"]={fallthrough:[\"default\"],attach:o,detach:e,call:t},Ze.keyMap[\"vim-replace\"]={Backspace:\"goCharLeft\",fallthrough:[\"vim-insert\"],attach:o,detach:e,call:t},O(),I}()});\n",
            "type": "application/javascript",
            "title": "$:/plugins/tiddlywiki/codemirror/keymap/vim.js",
            "module-type": "codemirror"
        },
        "$:/plugins/tiddlywiki/codemirror-keymap-vim/readme": {
            "title": "$:/plugins/tiddlywiki/codemirror-keymap-vim/readme",
            "text": "This plugin adds a ''Keymap'' with some of the most important ''Vim'' keyboard shortcuts\n\nFor information about available ''keyboard shortcuts'' see the [ext[CodeMirror vim demo|https://codemirror.net/demo/vim.html]]\n"
        }
    }
}
{
    "tiddlers": {
        "$:/plugins/tiddlywiki/codemirror/mode/css/css.js": {
            "text": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n!function(e){\"object\"==typeof exports&&\"object\"==typeof module?e(require(\"../../lib/codemirror\")):\"function\"==typeof define&&define.amd?define([\"../../lib/codemirror\"],e):e(CodeMirror)}(function(T){\"use strict\";function e(e){for(var t={},r=0;r<e.length;++r)t[e[r].toLowerCase()]=!0;return t}T.defineMode(\"css\",function(e,t){var r=t.inline;t.propertyKeywords||(t=T.resolveMode(\"text/css\"));var a,i,n=e.indentUnit,l=t.tokenHooks,o=t.documentTypes||{},s=t.mediaTypes||{},d=t.mediaFeatures||{},c=t.mediaValueKeywords||{},p=t.propertyKeywords||{},u=t.nonStandardPropertyKeywords||{},m=t.fontProperties||{},b=t.counterDescriptors||{},g=t.colorKeywords||{},h=t.valueKeywords||{},f=t.allowNested,k=t.lineComment,y=!0===t.supportsAtComponent,w=!1!==e.highlightNonStandardPropertyKeywords;function v(e,t){return a=t,e}function x(i){return function(e,t){for(var r,o=!1;null!=(r=e.next());){if(r==i&&!o){\")\"==i&&e.backUp(1);break}o=!o&&\"\\\\\"==r}return r!=i&&(o||\")\"==i)||(t.tokenize=null),a=\"string\"}}function z(e,t){return e.next(),e.match(/\\s*[\\\"\\')]/,!1)?t.tokenize=null:t.tokenize=x(\")\"),a=\"(\",null}function j(e,t,r){this.type=e,this.indent=t,this.prev=r}function P(e,t,r,o){return e.context=new j(r,t.indentation()+(!1===o?0:n),e.context),r}function K(e){return e.context.prev&&(e.context=e.context.prev),e.context.type}function q(e,t,r){return _[r.context.type](e,t,r)}function C(e,t,r,o){for(var i=o||1;0<i;i--)r.context=r.context.prev;return q(e,t,r)}function B(e){var t=e.current().toLowerCase();i=h.hasOwnProperty(t)?\"atom\":g.hasOwnProperty(t)?\"keyword\":\"variable\"}var _={top:function(e,t,r){if(\"{\"==e)return P(r,t,\"block\");if(\"}\"==e&&r.context.prev)return K(r);if(y&&/@component/i.test(e))return P(r,t,\"atComponentBlock\");if(/^@(-moz-)?document$/i.test(e))return P(r,t,\"documentTypes\");if(/^@(media|supports|(-moz-)?document|import)$/i.test(e))return P(r,t,\"atBlock\");if(/^@(font-face|counter-style)/i.test(e))return r.stateArg=e,\"restricted_atBlock_before\";if(/^@(-(moz|ms|o|webkit)-)?keyframes$/i.test(e))return\"keyframes\";if(e&&\"@\"==e.charAt(0))return P(r,t,\"at\");if(\"hash\"==e)i=\"builtin\";else if(\"word\"==e)i=\"tag\";else{if(\"variable-definition\"==e)return\"maybeprop\";if(\"interpolation\"==e)return P(r,t,\"interpolation\");if(\":\"==e)return\"pseudo\";if(f&&\"(\"==e)return P(r,t,\"parens\")}return r.context.type},block:function(e,t,r){if(\"word\"!=e)return\"meta\"==e?\"block\":f||\"hash\"!=e&&\"qualifier\"!=e?_.top(e,t,r):(i=\"error\",\"block\");var o=t.current().toLowerCase();return p.hasOwnProperty(o)?(i=\"property\",\"maybeprop\"):u.hasOwnProperty(o)?(i=w?\"string-2\":\"property\",\"maybeprop\"):f?(i=t.match(/^\\s*:(?:\\s|$)/,!1)?\"property\":\"tag\",\"block\"):(i+=\" error\",\"maybeprop\")},maybeprop:function(e,t,r){return\":\"==e?P(r,t,\"prop\"):q(e,t,r)},prop:function(e,t,r){if(\";\"==e)return K(r);if(\"{\"==e&&f)return P(r,t,\"propBlock\");if(\"}\"==e||\"{\"==e)return C(e,t,r);if(\"(\"==e)return P(r,t,\"parens\");if(\"hash\"!=e||/^#([0-9a-fA-f]{3,4}|[0-9a-fA-f]{6}|[0-9a-fA-f]{8})$/.test(t.current())){if(\"word\"==e)B(t);else if(\"interpolation\"==e)return P(r,t,\"interpolation\")}else i+=\" error\";return\"prop\"},propBlock:function(e,t,r){return\"}\"==e?K(r):\"word\"==e?(i=\"property\",\"maybeprop\"):r.context.type},parens:function(e,t,r){return\"{\"==e||\"}\"==e?C(e,t,r):\")\"==e?K(r):\"(\"==e?P(r,t,\"parens\"):\"interpolation\"==e?P(r,t,\"interpolation\"):(\"word\"==e&&B(t),\"parens\")},pseudo:function(e,t,r){return\"meta\"==e?\"pseudo\":\"word\"==e?(i=\"variable-3\",r.context.type):q(e,t,r)},documentTypes:function(e,t,r){return\"word\"==e&&o.hasOwnProperty(t.current())?(i=\"tag\",r.context.type):_.atBlock(e,t,r)},atBlock:function(e,t,r){return\"(\"==e?P(r,t,\"atBlock_parens\"):\"}\"==e||\";\"==e?C(e,t,r):\"{\"==e?K(r)&&P(r,t,f?\"block\":\"top\"):\"interpolation\"==e?P(r,t,\"interpolation\"):(\"word\"==e&&(o=t.current().toLowerCase(),i=\"only\"==o||\"not\"==o||\"and\"==o||\"or\"==o?\"keyword\":s.hasOwnProperty(o)?\"attribute\":d.hasOwnProperty(o)?\"property\":c.hasOwnProperty(o)?\"keyword\":p.hasOwnProperty(o)?\"property\":u.hasOwnProperty(o)?w?\"string-2\":\"property\":h.hasOwnProperty(o)?\"atom\":g.hasOwnProperty(o)?\"keyword\":\"error\"),r.context.type);var o},atComponentBlock:function(e,t,r){return\"}\"==e?C(e,t,r):\"{\"==e?K(r)&&P(r,t,f?\"block\":\"top\",!1):(\"word\"==e&&(i=\"error\"),r.context.type)},atBlock_parens:function(e,t,r){return\")\"==e?K(r):\"{\"==e||\"}\"==e?C(e,t,r,2):_.atBlock(e,t,r)},restricted_atBlock_before:function(e,t,r){return\"{\"==e?P(r,t,\"restricted_atBlock\"):\"word\"==e&&\"@counter-style\"==r.stateArg?(i=\"variable\",\"restricted_atBlock_before\"):q(e,t,r)},restricted_atBlock:function(e,t,r){return\"}\"==e?(r.stateArg=null,K(r)):\"word\"==e?(i=\"@font-face\"==r.stateArg&&!m.hasOwnProperty(t.current().toLowerCase())||\"@counter-style\"==r.stateArg&&!b.hasOwnProperty(t.current().toLowerCase())?\"error\":\"property\",\"maybeprop\"):\"restricted_atBlock\"},keyframes:function(e,t,r){return\"word\"==e?(i=\"variable\",\"keyframes\"):\"{\"==e?P(r,t,\"top\"):q(e,t,r)},at:function(e,t,r){return\";\"==e?K(r):\"{\"==e||\"}\"==e?C(e,t,r):(\"word\"==e?i=\"tag\":\"hash\"==e&&(i=\"builtin\"),\"at\")},interpolation:function(e,t,r){return\"}\"==e?K(r):\"{\"==e||\";\"==e?C(e,t,r):(\"word\"==e?i=\"variable\":\"variable\"!=e&&\"(\"!=e&&\")\"!=e&&(i=\"error\"),\"interpolation\")}};return{startState:function(e){return{tokenize:null,state:r?\"block\":\"top\",stateArg:null,context:new j(r?\"block\":\"top\",e||0,null)}},token:function(e,t){if(!t.tokenize&&e.eatSpace())return null;var r=(t.tokenize||function(e,t){var r=e.next();if(l[r]){var o=l[r](e,t);if(!1!==o)return o}return\"@\"==r?(e.eatWhile(/[\\w\\\\\\-]/),v(\"def\",e.current())):\"=\"==r||(\"~\"==r||\"|\"==r)&&e.eat(\"=\")?(a=\"compare\",null):'\"'==r||\"'\"==r?(t.tokenize=x(r),t.tokenize(e,t)):\"#\"==r?(e.eatWhile(/[\\w\\\\\\-]/),a=\"hash\",\"atom\"):\"!\"==r?(e.match(/^\\s*\\w*/),a=\"important\",\"keyword\"):/\\d/.test(r)||\".\"==r&&e.eat(/\\d/)?(e.eatWhile(/[\\w.%]/),a=\"unit\",\"number\"):\"-\"!==r?/[,+>*\\/]/.test(r)?(a=\"select-op\",null):\".\"==r&&e.match(/^-?[_a-z][_a-z0-9-]*/i)?a=\"qualifier\":/[:;{}\\[\\]\\(\\)]/.test(r)?v(null,r):e.match(/[\\w-.]+(?=\\()/)?(/^(url(-prefix)?|domain|regexp)$/.test(e.current().toLowerCase())&&(t.tokenize=z),a=\"variable\",\"variable callee\"):/[\\w\\\\\\-]/.test(r)?(e.eatWhile(/[\\w\\\\\\-]/),a=\"word\",\"property\"):a=null:/[\\d.]/.test(e.peek())?(e.eatWhile(/[\\w.%]/),a=\"unit\",\"number\"):e.match(/^-[\\w\\\\\\-]*/)?(e.eatWhile(/[\\w\\\\\\-]/),a=e.match(/^\\s*:/,!1)?\"variable-definition\":\"variable\",\"variable-2\"):e.match(/^\\w+-/)?a=\"meta\":void 0})(e,t);return r&&\"object\"==typeof r&&(a=r[1],r=r[0]),i=r,\"comment\"!=a&&(t.state=_[t.state](a,e,t)),i},indent:function(e,t){var r=e.context,o=t&&t.charAt(0),i=r.indent;return\"prop\"!=r.type||\"}\"!=o&&\")\"!=o||(r=r.prev),r.prev&&(\"}\"!=o||\"block\"!=r.type&&\"top\"!=r.type&&\"interpolation\"!=r.type&&\"restricted_atBlock\"!=r.type?(\")\"!=o||\"parens\"!=r.type&&\"atBlock_parens\"!=r.type)&&(\"{\"!=o||\"at\"!=r.type&&\"atBlock\"!=r.type)||(i=Math.max(0,r.indent-n)):i=(r=r.prev).indent),i},electricChars:\"}\",blockCommentStart:\"/*\",blockCommentEnd:\"*/\",blockCommentContinue:\" * \",lineComment:k,fold:\"brace\"}});var t=[\"domain\",\"regexp\",\"url\",\"url-prefix\"],r=e(t),o=[\"all\",\"aural\",\"braille\",\"handheld\",\"print\",\"projection\",\"screen\",\"tty\",\"tv\",\"embossed\"],i=e(o),a=[\"width\",\"min-width\",\"max-width\",\"height\",\"min-height\",\"max-height\",\"device-width\",\"min-device-width\",\"max-device-width\",\"device-height\",\"min-device-height\",\"max-device-height\",\"aspect-ratio\",\"min-aspect-ratio\",\"max-aspect-ratio\",\"device-aspect-ratio\",\"min-device-aspect-ratio\",\"max-device-aspect-ratio\",\"color\",\"min-color\",\"max-color\",\"color-index\",\"min-color-index\",\"max-color-index\",\"monochrome\",\"min-monochrome\",\"max-monochrome\",\"resolution\",\"min-resolution\",\"max-resolution\",\"scan\",\"grid\",\"orientation\",\"device-pixel-ratio\",\"min-device-pixel-ratio\",\"max-device-pixel-ratio\",\"pointer\",\"any-pointer\",\"hover\",\"any-hover\",\"prefers-color-scheme\"],n=e(a),l=[\"landscape\",\"portrait\",\"none\",\"coarse\",\"fine\",\"on-demand\",\"hover\",\"interlace\",\"progressive\",\"dark\",\"light\"],s=e(l),d=[\"align-content\",\"align-items\",\"align-self\",\"alignment-adjust\",\"alignment-baseline\",\"all\",\"anchor-point\",\"animation\",\"animation-delay\",\"animation-direction\",\"animation-duration\",\"animation-fill-mode\",\"animation-iteration-count\",\"animation-name\",\"animation-play-state\",\"animation-timing-function\",\"appearance\",\"azimuth\",\"backdrop-filter\",\"backface-visibility\",\"background\",\"background-attachment\",\"background-blend-mode\",\"background-clip\",\"background-color\",\"background-image\",\"background-origin\",\"background-position\",\"background-position-x\",\"background-position-y\",\"background-repeat\",\"background-size\",\"baseline-shift\",\"binding\",\"bleed\",\"block-size\",\"bookmark-label\",\"bookmark-level\",\"bookmark-state\",\"bookmark-target\",\"border\",\"border-bottom\",\"border-bottom-color\",\"border-bottom-left-radius\",\"border-bottom-right-radius\",\"border-bottom-style\",\"border-bottom-width\",\"border-collapse\",\"border-color\",\"border-image\",\"border-image-outset\",\"border-image-repeat\",\"border-image-slice\",\"border-image-source\",\"border-image-width\",\"border-left\",\"border-left-color\",\"border-left-style\",\"border-left-width\",\"border-radius\",\"border-right\",\"border-right-color\",\"border-right-style\",\"border-right-width\",\"border-spacing\",\"border-style\",\"border-top\",\"border-top-color\",\"border-top-left-radius\",\"border-top-right-radius\",\"border-top-style\",\"border-top-width\",\"border-width\",\"bottom\",\"box-decoration-break\",\"box-shadow\",\"box-sizing\",\"break-after\",\"break-before\",\"break-inside\",\"caption-side\",\"caret-color\",\"clear\",\"clip\",\"color\",\"color-profile\",\"column-count\",\"column-fill\",\"column-gap\",\"column-rule\",\"column-rule-color\",\"column-rule-style\",\"column-rule-width\",\"column-span\",\"column-width\",\"columns\",\"contain\",\"content\",\"counter-increment\",\"counter-reset\",\"crop\",\"cue\",\"cue-after\",\"cue-before\",\"cursor\",\"direction\",\"display\",\"dominant-baseline\",\"drop-initial-after-adjust\",\"drop-initial-after-align\",\"drop-initial-before-adjust\",\"drop-initial-before-align\",\"drop-initial-size\",\"drop-initial-value\",\"elevation\",\"empty-cells\",\"fit\",\"fit-position\",\"flex\",\"flex-basis\",\"flex-direction\",\"flex-flow\",\"flex-grow\",\"flex-shrink\",\"flex-wrap\",\"float\",\"float-offset\",\"flow-from\",\"flow-into\",\"font\",\"font-family\",\"font-feature-settings\",\"font-kerning\",\"font-language-override\",\"font-optical-sizing\",\"font-size\",\"font-size-adjust\",\"font-stretch\",\"font-style\",\"font-synthesis\",\"font-variant\",\"font-variant-alternates\",\"font-variant-caps\",\"font-variant-east-asian\",\"font-variant-ligatures\",\"font-variant-numeric\",\"font-variant-position\",\"font-variation-settings\",\"font-weight\",\"gap\",\"grid\",\"grid-area\",\"grid-auto-columns\",\"grid-auto-flow\",\"grid-auto-rows\",\"grid-column\",\"grid-column-end\",\"grid-column-gap\",\"grid-column-start\",\"grid-gap\",\"grid-row\",\"grid-row-end\",\"grid-row-gap\",\"grid-row-start\",\"grid-template\",\"grid-template-areas\",\"grid-template-columns\",\"grid-template-rows\",\"hanging-punctuation\",\"height\",\"hyphens\",\"icon\",\"image-orientation\",\"image-rendering\",\"image-resolution\",\"inline-box-align\",\"inset\",\"inset-block\",\"inset-block-end\",\"inset-block-start\",\"inset-inline\",\"inset-inline-end\",\"inset-inline-start\",\"isolation\",\"justify-content\",\"justify-items\",\"justify-self\",\"left\",\"letter-spacing\",\"line-break\",\"line-height\",\"line-height-step\",\"line-stacking\",\"line-stacking-ruby\",\"line-stacking-shift\",\"line-stacking-strategy\",\"list-style\",\"list-style-image\",\"list-style-position\",\"list-style-type\",\"margin\",\"margin-bottom\",\"margin-left\",\"margin-right\",\"margin-top\",\"marks\",\"marquee-direction\",\"marquee-loop\",\"marquee-play-count\",\"marquee-speed\",\"marquee-style\",\"mask-clip\",\"mask-composite\",\"mask-image\",\"mask-mode\",\"mask-origin\",\"mask-position\",\"mask-repeat\",\"mask-size\",\"mask-type\",\"max-block-size\",\"max-height\",\"max-inline-size\",\"max-width\",\"min-block-size\",\"min-height\",\"min-inline-size\",\"min-width\",\"mix-blend-mode\",\"move-to\",\"nav-down\",\"nav-index\",\"nav-left\",\"nav-right\",\"nav-up\",\"object-fit\",\"object-position\",\"offset\",\"offset-anchor\",\"offset-distance\",\"offset-path\",\"offset-position\",\"offset-rotate\",\"opacity\",\"order\",\"orphans\",\"outline\",\"outline-color\",\"outline-offset\",\"outline-style\",\"outline-width\",\"overflow\",\"overflow-style\",\"overflow-wrap\",\"overflow-x\",\"overflow-y\",\"padding\",\"padding-bottom\",\"padding-left\",\"padding-right\",\"padding-top\",\"page\",\"page-break-after\",\"page-break-before\",\"page-break-inside\",\"page-policy\",\"pause\",\"pause-after\",\"pause-before\",\"perspective\",\"perspective-origin\",\"pitch\",\"pitch-range\",\"place-content\",\"place-items\",\"place-self\",\"play-during\",\"position\",\"presentation-level\",\"punctuation-trim\",\"quotes\",\"region-break-after\",\"region-break-before\",\"region-break-inside\",\"region-fragment\",\"rendering-intent\",\"resize\",\"rest\",\"rest-after\",\"rest-before\",\"richness\",\"right\",\"rotate\",\"rotation\",\"rotation-point\",\"row-gap\",\"ruby-align\",\"ruby-overhang\",\"ruby-position\",\"ruby-span\",\"scale\",\"scroll-behavior\",\"scroll-margin\",\"scroll-margin-block\",\"scroll-margin-block-end\",\"scroll-margin-block-start\",\"scroll-margin-bottom\",\"scroll-margin-inline\",\"scroll-margin-inline-end\",\"scroll-margin-inline-start\",\"scroll-margin-left\",\"scroll-margin-right\",\"scroll-margin-top\",\"scroll-padding\",\"scroll-padding-block\",\"scroll-padding-block-end\",\"scroll-padding-block-start\",\"scroll-padding-bottom\",\"scroll-padding-inline\",\"scroll-padding-inline-end\",\"scroll-padding-inline-start\",\"scroll-padding-left\",\"scroll-padding-right\",\"scroll-padding-top\",\"scroll-snap-align\",\"scroll-snap-type\",\"shape-image-threshold\",\"shape-inside\",\"shape-margin\",\"shape-outside\",\"size\",\"speak\",\"speak-as\",\"speak-header\",\"speak-numeral\",\"speak-punctuation\",\"speech-rate\",\"stress\",\"string-set\",\"tab-size\",\"table-layout\",\"target\",\"target-name\",\"target-new\",\"target-position\",\"text-align\",\"text-align-last\",\"text-combine-upright\",\"text-decoration\",\"text-decoration-color\",\"text-decoration-line\",\"text-decoration-skip\",\"text-decoration-skip-ink\",\"text-decoration-style\",\"text-emphasis\",\"text-emphasis-color\",\"text-emphasis-position\",\"text-emphasis-style\",\"text-height\",\"text-indent\",\"text-justify\",\"text-orientation\",\"text-outline\",\"text-overflow\",\"text-rendering\",\"text-shadow\",\"text-size-adjust\",\"text-space-collapse\",\"text-transform\",\"text-underline-position\",\"text-wrap\",\"top\",\"touch-action\",\"transform\",\"transform-origin\",\"transform-style\",\"transition\",\"transition-delay\",\"transition-duration\",\"transition-property\",\"transition-timing-function\",\"translate\",\"unicode-bidi\",\"user-select\",\"vertical-align\",\"visibility\",\"voice-balance\",\"voice-duration\",\"voice-family\",\"voice-pitch\",\"voice-range\",\"voice-rate\",\"voice-stress\",\"voice-volume\",\"volume\",\"white-space\",\"widows\",\"width\",\"will-change\",\"word-break\",\"word-spacing\",\"word-wrap\",\"writing-mode\",\"z-index\",\"clip-path\",\"clip-rule\",\"mask\",\"enable-background\",\"filter\",\"flood-color\",\"flood-opacity\",\"lighting-color\",\"stop-color\",\"stop-opacity\",\"pointer-events\",\"color-interpolation\",\"color-interpolation-filters\",\"color-rendering\",\"fill\",\"fill-opacity\",\"fill-rule\",\"image-rendering\",\"marker\",\"marker-end\",\"marker-mid\",\"marker-start\",\"paint-order\",\"shape-rendering\",\"stroke\",\"stroke-dasharray\",\"stroke-dashoffset\",\"stroke-linecap\",\"stroke-linejoin\",\"stroke-miterlimit\",\"stroke-opacity\",\"stroke-width\",\"text-rendering\",\"baseline-shift\",\"dominant-baseline\",\"glyph-orientation-horizontal\",\"glyph-orientation-vertical\",\"text-anchor\",\"writing-mode\"],c=e(d),p=[\"border-block\",\"border-block-color\",\"border-block-end\",\"border-block-end-color\",\"border-block-end-style\",\"border-block-end-width\",\"border-block-start\",\"border-block-start-color\",\"border-block-start-style\",\"border-block-start-width\",\"border-block-style\",\"border-block-width\",\"border-inline\",\"border-inline-color\",\"border-inline-end\",\"border-inline-end-color\",\"border-inline-end-style\",\"border-inline-end-width\",\"border-inline-start\",\"border-inline-start-color\",\"border-inline-start-style\",\"border-inline-start-width\",\"border-inline-style\",\"border-inline-width\",\"margin-block\",\"margin-block-end\",\"margin-block-start\",\"margin-inline\",\"margin-inline-end\",\"margin-inline-start\",\"padding-block\",\"padding-block-end\",\"padding-block-start\",\"padding-inline\",\"padding-inline-end\",\"padding-inline-start\",\"scroll-snap-stop\",\"scrollbar-3d-light-color\",\"scrollbar-arrow-color\",\"scrollbar-base-color\",\"scrollbar-dark-shadow-color\",\"scrollbar-face-color\",\"scrollbar-highlight-color\",\"scrollbar-shadow-color\",\"scrollbar-track-color\",\"searchfield-cancel-button\",\"searchfield-decoration\",\"searchfield-results-button\",\"searchfield-results-decoration\",\"shape-inside\",\"zoom\"],u=e(p),m=e([\"font-display\",\"font-family\",\"src\",\"unicode-range\",\"font-variant\",\"font-feature-settings\",\"font-stretch\",\"font-weight\",\"font-style\"]),b=e([\"additive-symbols\",\"fallback\",\"negative\",\"pad\",\"prefix\",\"range\",\"speak-as\",\"suffix\",\"symbols\",\"system\"]),g=[\"aliceblue\",\"antiquewhite\",\"aqua\",\"aquamarine\",\"azure\",\"beige\",\"bisque\",\"black\",\"blanchedalmond\",\"blue\",\"blueviolet\",\"brown\",\"burlywood\",\"cadetblue\",\"chartreuse\",\"chocolate\",\"coral\",\"cornflowerblue\",\"cornsilk\",\"crimson\",\"cyan\",\"darkblue\",\"darkcyan\",\"darkgoldenrod\",\"darkgray\",\"darkgreen\",\"darkkhaki\",\"darkmagenta\",\"darkolivegreen\",\"darkorange\",\"darkorchid\",\"darkred\",\"darksalmon\",\"darkseagreen\",\"darkslateblue\",\"darkslategray\",\"darkturquoise\",\"darkviolet\",\"deeppink\",\"deepskyblue\",\"dimgray\",\"dodgerblue\",\"firebrick\",\"floralwhite\",\"forestgreen\",\"fuchsia\",\"gainsboro\",\"ghostwhite\",\"gold\",\"goldenrod\",\"gray\",\"grey\",\"green\",\"greenyellow\",\"honeydew\",\"hotpink\",\"indianred\",\"indigo\",\"ivory\",\"khaki\",\"lavender\",\"lavenderblush\",\"lawngreen\",\"lemonchiffon\",\"lightblue\",\"lightcoral\",\"lightcyan\",\"lightgoldenrodyellow\",\"lightgray\",\"lightgreen\",\"lightpink\",\"lightsalmon\",\"lightseagreen\",\"lightskyblue\",\"lightslategray\",\"lightsteelblue\",\"lightyellow\",\"lime\",\"limegreen\",\"linen\",\"magenta\",\"maroon\",\"mediumaquamarine\",\"mediumblue\",\"mediumorchid\",\"mediumpurple\",\"mediumseagreen\",\"mediumslateblue\",\"mediumspringgreen\",\"mediumturquoise\",\"mediumvioletred\",\"midnightblue\",\"mintcream\",\"mistyrose\",\"moccasin\",\"navajowhite\",\"navy\",\"oldlace\",\"olive\",\"olivedrab\",\"orange\",\"orangered\",\"orchid\",\"palegoldenrod\",\"palegreen\",\"paleturquoise\",\"palevioletred\",\"papayawhip\",\"peachpuff\",\"peru\",\"pink\",\"plum\",\"powderblue\",\"purple\",\"rebeccapurple\",\"red\",\"rosybrown\",\"royalblue\",\"saddlebrown\",\"salmon\",\"sandybrown\",\"seagreen\",\"seashell\",\"sienna\",\"silver\",\"skyblue\",\"slateblue\",\"slategray\",\"snow\",\"springgreen\",\"steelblue\",\"tan\",\"teal\",\"thistle\",\"tomato\",\"turquoise\",\"violet\",\"wheat\",\"white\",\"whitesmoke\",\"yellow\",\"yellowgreen\"],h=e(g),f=[\"above\",\"absolute\",\"activeborder\",\"additive\",\"activecaption\",\"afar\",\"after-white-space\",\"ahead\",\"alias\",\"all\",\"all-scroll\",\"alphabetic\",\"alternate\",\"always\",\"amharic\",\"amharic-abegede\",\"antialiased\",\"appworkspace\",\"arabic-indic\",\"armenian\",\"asterisks\",\"attr\",\"auto\",\"auto-flow\",\"avoid\",\"avoid-column\",\"avoid-page\",\"avoid-region\",\"axis-pan\",\"background\",\"backwards\",\"baseline\",\"below\",\"bidi-override\",\"binary\",\"bengali\",\"blink\",\"block\",\"block-axis\",\"bold\",\"bolder\",\"border\",\"border-box\",\"both\",\"bottom\",\"break\",\"break-all\",\"break-word\",\"bullets\",\"button\",\"button-bevel\",\"buttonface\",\"buttonhighlight\",\"buttonshadow\",\"buttontext\",\"calc\",\"cambodian\",\"capitalize\",\"caps-lock-indicator\",\"caption\",\"captiontext\",\"caret\",\"cell\",\"center\",\"checkbox\",\"circle\",\"cjk-decimal\",\"cjk-earthly-branch\",\"cjk-heavenly-stem\",\"cjk-ideographic\",\"clear\",\"clip\",\"close-quote\",\"col-resize\",\"collapse\",\"color\",\"color-burn\",\"color-dodge\",\"column\",\"column-reverse\",\"compact\",\"condensed\",\"contain\",\"content\",\"contents\",\"content-box\",\"context-menu\",\"continuous\",\"copy\",\"counter\",\"counters\",\"cover\",\"crop\",\"cross\",\"crosshair\",\"currentcolor\",\"cursive\",\"cyclic\",\"darken\",\"dashed\",\"decimal\",\"decimal-leading-zero\",\"default\",\"default-button\",\"dense\",\"destination-atop\",\"destination-in\",\"destination-out\",\"destination-over\",\"devanagari\",\"difference\",\"disc\",\"discard\",\"disclosure-closed\",\"disclosure-open\",\"document\",\"dot-dash\",\"dot-dot-dash\",\"dotted\",\"double\",\"down\",\"e-resize\",\"ease\",\"ease-in\",\"ease-in-out\",\"ease-out\",\"element\",\"ellipse\",\"ellipsis\",\"embed\",\"end\",\"ethiopic\",\"ethiopic-abegede\",\"ethiopic-abegede-am-et\",\"ethiopic-abegede-gez\",\"ethiopic-abegede-ti-er\",\"ethiopic-abegede-ti-et\",\"ethiopic-halehame-aa-er\",\"ethiopic-halehame-aa-et\",\"ethiopic-halehame-am-et\",\"ethiopic-halehame-gez\",\"ethiopic-halehame-om-et\",\"ethiopic-halehame-sid-et\",\"ethiopic-halehame-so-et\",\"ethiopic-halehame-ti-er\",\"ethiopic-halehame-ti-et\",\"ethiopic-halehame-tig\",\"ethiopic-numeric\",\"ew-resize\",\"exclusion\",\"expanded\",\"extends\",\"extra-condensed\",\"extra-expanded\",\"fantasy\",\"fast\",\"fill\",\"fill-box\",\"fixed\",\"flat\",\"flex\",\"flex-end\",\"flex-start\",\"footnotes\",\"forwards\",\"from\",\"geometricPrecision\",\"georgian\",\"graytext\",\"grid\",\"groove\",\"gujarati\",\"gurmukhi\",\"hand\",\"hangul\",\"hangul-consonant\",\"hard-light\",\"hebrew\",\"help\",\"hidden\",\"hide\",\"higher\",\"highlight\",\"highlighttext\",\"hiragana\",\"hiragana-iroha\",\"horizontal\",\"hsl\",\"hsla\",\"hue\",\"icon\",\"ignore\",\"inactiveborder\",\"inactivecaption\",\"inactivecaptiontext\",\"infinite\",\"infobackground\",\"infotext\",\"inherit\",\"initial\",\"inline\",\"inline-axis\",\"inline-block\",\"inline-flex\",\"inline-grid\",\"inline-table\",\"inset\",\"inside\",\"intrinsic\",\"invert\",\"italic\",\"japanese-formal\",\"japanese-informal\",\"justify\",\"kannada\",\"katakana\",\"katakana-iroha\",\"keep-all\",\"khmer\",\"korean-hangul-formal\",\"korean-hanja-formal\",\"korean-hanja-informal\",\"landscape\",\"lao\",\"large\",\"larger\",\"left\",\"level\",\"lighter\",\"lighten\",\"line-through\",\"linear\",\"linear-gradient\",\"lines\",\"list-item\",\"listbox\",\"listitem\",\"local\",\"logical\",\"loud\",\"lower\",\"lower-alpha\",\"lower-armenian\",\"lower-greek\",\"lower-hexadecimal\",\"lower-latin\",\"lower-norwegian\",\"lower-roman\",\"lowercase\",\"ltr\",\"luminosity\",\"malayalam\",\"manipulation\",\"match\",\"matrix\",\"matrix3d\",\"media-controls-background\",\"media-current-time-display\",\"media-fullscreen-button\",\"media-mute-button\",\"media-play-button\",\"media-return-to-realtime-button\",\"media-rewind-button\",\"media-seek-back-button\",\"media-seek-forward-button\",\"media-slider\",\"media-sliderthumb\",\"media-time-remaining-display\",\"media-volume-slider\",\"media-volume-slider-container\",\"media-volume-sliderthumb\",\"medium\",\"menu\",\"menulist\",\"menulist-button\",\"menulist-text\",\"menulist-textfield\",\"menutext\",\"message-box\",\"middle\",\"min-intrinsic\",\"mix\",\"mongolian\",\"monospace\",\"move\",\"multiple\",\"multiple_mask_images\",\"multiply\",\"myanmar\",\"n-resize\",\"narrower\",\"ne-resize\",\"nesw-resize\",\"no-close-quote\",\"no-drop\",\"no-open-quote\",\"no-repeat\",\"none\",\"normal\",\"not-allowed\",\"nowrap\",\"ns-resize\",\"numbers\",\"numeric\",\"nw-resize\",\"nwse-resize\",\"oblique\",\"octal\",\"opacity\",\"open-quote\",\"optimizeLegibility\",\"optimizeSpeed\",\"oriya\",\"oromo\",\"outset\",\"outside\",\"outside-shape\",\"overlay\",\"overline\",\"padding\",\"padding-box\",\"painted\",\"page\",\"paused\",\"persian\",\"perspective\",\"pinch-zoom\",\"plus-darker\",\"plus-lighter\",\"pointer\",\"polygon\",\"portrait\",\"pre\",\"pre-line\",\"pre-wrap\",\"preserve-3d\",\"progress\",\"push-button\",\"radial-gradient\",\"radio\",\"read-only\",\"read-write\",\"read-write-plaintext-only\",\"rectangle\",\"region\",\"relative\",\"repeat\",\"repeating-linear-gradient\",\"repeating-radial-gradient\",\"repeat-x\",\"repeat-y\",\"reset\",\"reverse\",\"rgb\",\"rgba\",\"ridge\",\"right\",\"rotate\",\"rotate3d\",\"rotateX\",\"rotateY\",\"rotateZ\",\"round\",\"row\",\"row-resize\",\"row-reverse\",\"rtl\",\"run-in\",\"running\",\"s-resize\",\"sans-serif\",\"saturation\",\"scale\",\"scale3d\",\"scaleX\",\"scaleY\",\"scaleZ\",\"screen\",\"scroll\",\"scrollbar\",\"scroll-position\",\"se-resize\",\"searchfield\",\"searchfield-cancel-button\",\"searchfield-decoration\",\"searchfield-results-button\",\"searchfield-results-decoration\",\"self-start\",\"self-end\",\"semi-condensed\",\"semi-expanded\",\"separate\",\"serif\",\"show\",\"sidama\",\"simp-chinese-formal\",\"simp-chinese-informal\",\"single\",\"skew\",\"skewX\",\"skewY\",\"skip-white-space\",\"slide\",\"slider-horizontal\",\"slider-vertical\",\"sliderthumb-horizontal\",\"sliderthumb-vertical\",\"slow\",\"small\",\"small-caps\",\"small-caption\",\"smaller\",\"soft-light\",\"solid\",\"somali\",\"source-atop\",\"source-in\",\"source-out\",\"source-over\",\"space\",\"space-around\",\"space-between\",\"space-evenly\",\"spell-out\",\"square\",\"square-button\",\"start\",\"static\",\"status-bar\",\"stretch\",\"stroke\",\"stroke-box\",\"sub\",\"subpixel-antialiased\",\"svg_masks\",\"super\",\"sw-resize\",\"symbolic\",\"symbols\",\"system-ui\",\"table\",\"table-caption\",\"table-cell\",\"table-column\",\"table-column-group\",\"table-footer-group\",\"table-header-group\",\"table-row\",\"table-row-group\",\"tamil\",\"telugu\",\"text\",\"text-bottom\",\"text-top\",\"textarea\",\"textfield\",\"thai\",\"thick\",\"thin\",\"threeddarkshadow\",\"threedface\",\"threedhighlight\",\"threedlightshadow\",\"threedshadow\",\"tibetan\",\"tigre\",\"tigrinya-er\",\"tigrinya-er-abegede\",\"tigrinya-et\",\"tigrinya-et-abegede\",\"to\",\"top\",\"trad-chinese-formal\",\"trad-chinese-informal\",\"transform\",\"translate\",\"translate3d\",\"translateX\",\"translateY\",\"translateZ\",\"transparent\",\"ultra-condensed\",\"ultra-expanded\",\"underline\",\"unidirectional-pan\",\"unset\",\"up\",\"upper-alpha\",\"upper-armenian\",\"upper-greek\",\"upper-hexadecimal\",\"upper-latin\",\"upper-norwegian\",\"upper-roman\",\"uppercase\",\"urdu\",\"url\",\"var\",\"vertical\",\"vertical-text\",\"view-box\",\"visible\",\"visibleFill\",\"visiblePainted\",\"visibleStroke\",\"visual\",\"w-resize\",\"wait\",\"wave\",\"wider\",\"window\",\"windowframe\",\"windowtext\",\"words\",\"wrap\",\"wrap-reverse\",\"x-large\",\"x-small\",\"xor\",\"xx-large\",\"xx-small\"],k=e(f),y=t.concat(o).concat(a).concat(l).concat(d).concat(p).concat(g).concat(f);function w(e,t){for(var r,o=!1;null!=(r=e.next());){if(o&&\"/\"==r){t.tokenize=null;break}o=\"*\"==r}return[\"comment\",\"comment\"]}T.registerHelper(\"hintWords\",\"css\",y),T.defineMIME(\"text/css\",{documentTypes:r,mediaTypes:i,mediaFeatures:n,mediaValueKeywords:s,propertyKeywords:c,nonStandardPropertyKeywords:u,fontProperties:m,counterDescriptors:b,colorKeywords:h,valueKeywords:k,tokenHooks:{\"/\":function(e,t){return!!e.eat(\"*\")&&(t.tokenize=w)(e,t)}},name:\"css\"}),T.defineMIME(\"text/x-scss\",{mediaTypes:i,mediaFeatures:n,mediaValueKeywords:s,propertyKeywords:c,nonStandardPropertyKeywords:u,colorKeywords:h,valueKeywords:k,fontProperties:m,allowNested:!0,lineComment:\"//\",tokenHooks:{\"/\":function(e,t){return e.eat(\"/\")?(e.skipToEnd(),[\"comment\",\"comment\"]):e.eat(\"*\")?(t.tokenize=w)(e,t):[\"operator\",\"operator\"]},\":\":function(e){return!!e.match(/\\s*\\{/,!1)&&[null,null]},$:function(e){return e.match(/^[\\w-]+/),e.match(/^\\s*:/,!1)?[\"variable-2\",\"variable-definition\"]:[\"variable-2\",\"variable\"]},\"#\":function(e){return!!e.eat(\"{\")&&[null,\"interpolation\"]}},name:\"css\",helperType:\"scss\"}),T.defineMIME(\"text/x-less\",{mediaTypes:i,mediaFeatures:n,mediaValueKeywords:s,propertyKeywords:c,nonStandardPropertyKeywords:u,colorKeywords:h,valueKeywords:k,fontProperties:m,allowNested:!0,lineComment:\"//\",tokenHooks:{\"/\":function(e,t){return e.eat(\"/\")?(e.skipToEnd(),[\"comment\",\"comment\"]):e.eat(\"*\")?(t.tokenize=w)(e,t):[\"operator\",\"operator\"]},\"@\":function(e){return e.eat(\"{\")?[null,\"interpolation\"]:!e.match(/^(charset|document|font-face|import|(-(moz|ms|o|webkit)-)?keyframes|media|namespace|page|supports)\\b/i,!1)&&(e.eatWhile(/[\\w\\\\\\-]/),e.match(/^\\s*:/,!1)?[\"variable-2\",\"variable-definition\"]:[\"variable-2\",\"variable\"])},\"&\":function(){return[\"atom\",\"atom\"]}},name:\"css\",helperType:\"less\"}),T.defineMIME(\"text/x-gss\",{documentTypes:r,mediaTypes:i,mediaFeatures:n,propertyKeywords:c,nonStandardPropertyKeywords:u,fontProperties:m,counterDescriptors:b,colorKeywords:h,valueKeywords:k,supportsAtComponent:!0,tokenHooks:{\"/\":function(e,t){return!!e.eat(\"*\")&&(t.tokenize=w)(e,t)}},name:\"css\",helperType:\"gss\"})});\n",
            "type": "application/javascript",
            "title": "$:/plugins/tiddlywiki/codemirror/mode/css/css.js",
            "module-type": "codemirror"
        },
        "$:/plugins/tiddlywiki/codemirror-mode-css/readme": {
            "title": "$:/plugins/tiddlywiki/codemirror-mode-css/readme",
            "text": "This plugin adds Syntax Highlighting for CSS tiddlers (text/css) to the [[CodeMirror|http://codemirror.net]] text editor. It needs the latest [[CodeMirror plugin|$:/plugins/tiddlywiki/codemirror]] to be installed\n\n\n"
        }
    }
}
{
    "tiddlers": {
        "$:/plugins/tiddlywiki/codemirror/mode/markdown/markdown.js": {
            "text": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n!function(t){\"object\"==typeof exports&&\"object\"==typeof module?t(require(\"../../lib/codemirror\"),require(\"../xml/xml\"),require(\"../tw-meta\")):\"function\"==typeof define&&define.amd?define([\"../../lib/codemirror\",\"../xml/xml\",\"../tw-meta\"],t):t(CodeMirror)}(function(j){\"use strict\";j.defineMode(\"markdown\",function(c,x){var A=j.getMode(c,\"text/html\"),u=\"null\"==A.name;void 0===x.highlightFormatting&&(x.highlightFormatting=!1),void 0===x.maxBlockquoteDepth&&(x.maxBlockquoteDepth=0),void 0===x.taskLists&&(x.taskLists=!1),void 0===x.strikethrough&&(x.strikethrough=!1),void 0===x.emoji&&(x.emoji=!1),void 0===x.fencedCodeBlockHighlighting&&(x.fencedCodeBlockHighlighting=!0),void 0===x.fencedCodeBlockDefaultMode&&(x.fencedCodeBlockDefaultMode=\"text/plain\"),void 0===x.xml&&(x.xml=!0),void 0===x.tokenTypeOverrides&&(x.tokenTypeOverrides={});var C={header:\"header\",code:\"comment\",quote:\"quote\",list1:\"variable-2\",list2:\"variable-3\",list3:\"keyword\",hr:\"hr\",image:\"image\",imageAltText:\"image-alt-text\",imageMarker:\"image-marker\",formatting:\"formatting\",linkInline:\"link\",linkEmail:\"link\",linkText:\"link\",linkHref:\"string\",em:\"em\",strong:\"strong\",strikethrough:\"strikethrough\",emoji:\"builtin\"};for(var t in C)C.hasOwnProperty(t)&&x.tokenTypeOverrides[t]&&(C[t]=x.tokenTypeOverrides[t]);var f=/^([*\\-_])(?:\\s*\\1){2,}\\s*$/,k=/^(?:[*\\-+]|^[0-9]+([.)]))\\s+/,S=/^\\[(x| )\\](?=\\s)/i,F=x.allowAtxHeaderWithoutSpace?/^(#+)/:/^(#+)(?: |$)/,D=/^ {0,3}(?:\\={1,}|-{2,})\\s*$/,i=/^[^#!\\[\\]*_\\\\<>` \"'(~:]+/,p=/^(~~~+|```+)[ \\t]*([\\w\\/+#-]*)[^\\n`]*$/,E=/^\\s*\\[[^\\]]+?\\]:.*$/,v=/[!\"#$%&'()*+,\\-.\\/:;<=>?@\\[\\\\\\]^_`{|}~\\xA1\\xA7\\xAB\\xB6\\xB7\\xBB\\xBF\\u037E\\u0387\\u055A-\\u055F\\u0589\\u058A\\u05BE\\u05C0\\u05C3\\u05C6\\u05F3\\u05F4\\u0609\\u060A\\u060C\\u060D\\u061B\\u061E\\u061F\\u066A-\\u066D\\u06D4\\u0700-\\u070D\\u07F7-\\u07F9\\u0830-\\u083E\\u085E\\u0964\\u0965\\u0970\\u0AF0\\u0DF4\\u0E4F\\u0E5A\\u0E5B\\u0F04-\\u0F12\\u0F14\\u0F3A-\\u0F3D\\u0F85\\u0FD0-\\u0FD4\\u0FD9\\u0FDA\\u104A-\\u104F\\u10FB\\u1360-\\u1368\\u1400\\u166D\\u166E\\u169B\\u169C\\u16EB-\\u16ED\\u1735\\u1736\\u17D4-\\u17D6\\u17D8-\\u17DA\\u1800-\\u180A\\u1944\\u1945\\u1A1E\\u1A1F\\u1AA0-\\u1AA6\\u1AA8-\\u1AAD\\u1B5A-\\u1B60\\u1BFC-\\u1BFF\\u1C3B-\\u1C3F\\u1C7E\\u1C7F\\u1CC0-\\u1CC7\\u1CD3\\u2010-\\u2027\\u2030-\\u2043\\u2045-\\u2051\\u2053-\\u205E\\u207D\\u207E\\u208D\\u208E\\u2308-\\u230B\\u2329\\u232A\\u2768-\\u2775\\u27C5\\u27C6\\u27E6-\\u27EF\\u2983-\\u2998\\u29D8-\\u29DB\\u29FC\\u29FD\\u2CF9-\\u2CFC\\u2CFE\\u2CFF\\u2D70\\u2E00-\\u2E2E\\u2E30-\\u2E42\\u3001-\\u3003\\u3008-\\u3011\\u3014-\\u301F\\u3030\\u303D\\u30A0\\u30FB\\uA4FE\\uA4FF\\uA60D-\\uA60F\\uA673\\uA67E\\uA6F2-\\uA6F7\\uA874-\\uA877\\uA8CE\\uA8CF\\uA8F8-\\uA8FA\\uA8FC\\uA92E\\uA92F\\uA95F\\uA9C1-\\uA9CD\\uA9DE\\uA9DF\\uAA5C-\\uAA5F\\uAADE\\uAADF\\uAAF0\\uAAF1\\uABEB\\uFD3E\\uFD3F\\uFE10-\\uFE19\\uFE30-\\uFE52\\uFE54-\\uFE61\\uFE63\\uFE68\\uFE6A\\uFE6B\\uFF01-\\uFF03\\uFF05-\\uFF0A\\uFF0C-\\uFF0F\\uFF1A\\uFF1B\\uFF1F\\uFF20\\uFF3B-\\uFF3D\\uFF3F\\uFF5B\\uFF5D\\uFF5F-\\uFF65]|\\uD800[\\uDD00-\\uDD02\\uDF9F\\uDFD0]|\\uD801\\uDD6F|\\uD802[\\uDC57\\uDD1F\\uDD3F\\uDE50-\\uDE58\\uDE7F\\uDEF0-\\uDEF6\\uDF39-\\uDF3F\\uDF99-\\uDF9C]|\\uD804[\\uDC47-\\uDC4D\\uDCBB\\uDCBC\\uDCBE-\\uDCC1\\uDD40-\\uDD43\\uDD74\\uDD75\\uDDC5-\\uDDC9\\uDDCD\\uDDDB\\uDDDD-\\uDDDF\\uDE38-\\uDE3D\\uDEA9]|\\uD805[\\uDCC6\\uDDC1-\\uDDD7\\uDE41-\\uDE43\\uDF3C-\\uDF3E]|\\uD809[\\uDC70-\\uDC74]|\\uD81A[\\uDE6E\\uDE6F\\uDEF5\\uDF37-\\uDF3B\\uDF44]|\\uD82F\\uDC9F|\\uD836[\\uDE87-\\uDE8B]/;function B(t,e,i){return(e.f=e.inline=i)(t,e)}function L(t,e,i){return(e.f=e.block=i)(t,e)}function n(t){var e,i;return t.linkTitle=!1,t.linkHref=!1,t.linkText=!1,t.em=!1,t.strong=!1,t.strikethrough=!1,t.quote=0,t.indentedCode=!1,t.f==T&&((i=u)||(i=\"xml\"==(e=j.innerMode(A,t.htmlState)).mode.name&&null===e.state.tagStart&&!e.state.context&&e.state.tokenize.isInText),i&&(t.f=b,t.block=a,t.htmlState=null)),t.trailingSpace=0,t.trailingSpaceNewLine=!1,t.prevLine=t.thisLine,t.thisLine={stream:null},null}function a(t,e){var i,n=t.column()===e.indentation,u=!(i=e.prevLine.stream)||!/\\S/.test(i.string),r=e.indentedCode,a=e.prevLine.hr,o=!1!==e.list,l=(e.listStack[e.listStack.length-1]||0)+3;e.indentedCode=!1;var h=e.indentation;if(null===e.indentationDiff&&(e.indentationDiff=e.indentation,o)){for(e.list=null;h<e.listStack[e.listStack.length-1];)e.listStack.pop(),e.listStack.length?e.indentation=e.listStack[e.listStack.length-1]:e.list=!1;!1!==e.list&&(e.indentationDiff=h-e.listStack[e.listStack.length-1])}var s=!(u||a||e.prevLine.header||o&&r||e.prevLine.fencedCodeEnd),g=(!1===e.list||a||u)&&e.indentation<=l&&t.match(f),m=null;if(4<=e.indentationDiff&&(r||e.prevLine.fencedCodeEnd||e.prevLine.header||u))return t.skipToEnd(),e.indentedCode=!0,C.code;if(t.eatSpace())return null;if(n&&e.indentation<=l&&(m=t.match(F))&&m[1].length<=6)return e.quote=0,e.header=m[1].length,e.thisLine.header=!0,x.highlightFormatting&&(e.formatting=\"header\"),e.f=e.inline,q(e);if(e.indentation<=l&&t.eat(\">\"))return e.quote=n?1:e.quote+1,x.highlightFormatting&&(e.formatting=\"quote\"),t.eatSpace(),q(e);if(!g&&!e.setext&&n&&e.indentation<=l&&(m=t.match(k))){var d=m[1]?\"ol\":\"ul\";return e.indentation=h+t.current().length,e.list=!0,e.quote=0,e.listStack.push(e.indentation),e.em=!1,e.strong=!1,e.code=!1,e.strikethrough=!1,x.taskLists&&t.match(S,!1)&&(e.taskList=!0),e.f=e.inline,x.highlightFormatting&&(e.formatting=[\"list\",\"list-\"+d]),q(e)}return n&&e.indentation<=l&&(m=t.match(p,!0))?(e.quote=0,e.fencedEndRE=new RegExp(m[1]+\"+ *$\"),e.localMode=x.fencedCodeBlockHighlighting&&function(t){var e;!j.findModeByName||(e=j.findModeByName(t))&&(t=e.mime||e.mimes[0]);var i=j.getMode(c,t);return\"null\"==i.name?null:i}(m[2]||x.fencedCodeBlockDefaultMode),e.localMode&&(e.localState=j.startState(e.localMode)),e.f=e.block=M,x.highlightFormatting&&(e.formatting=\"code-block\"),e.code=-1,q(e)):e.setext||!(s&&o||e.quote||!1!==e.list||e.code||g||E.test(t.string))&&(m=t.lookAhead(1))&&(m=m.match(D))?(e.setext?(e.header=e.setext,e.setext=0,t.skipToEnd(),x.highlightFormatting&&(e.formatting=\"header\")):(e.header=\"=\"==m[0].charAt(0)?1:2,e.setext=e.header),e.thisLine.header=!0,e.f=e.inline,q(e)):g?(t.skipToEnd(),e.hr=!0,e.thisLine.hr=!0,C.hr):\"[\"===t.peek()?B(t,e,H):B(t,e,e.inline)}function T(t,e){var i,n=A.token(t,e.htmlState);return u||(\"xml\"==(i=j.innerMode(A,e.htmlState)).mode.name&&null===i.state.tagStart&&!i.state.context&&i.state.tokenize.isInText||e.md_inside&&-1<t.current().indexOf(\">\"))&&(e.f=b,e.block=a,e.htmlState=null),n}function M(t,e){var i,n=e.listStack[e.listStack.length-1]||0,u=e.indentation<n,r=n+3;return e.fencedEndRE&&e.indentation<=r&&(u||t.match(e.fencedEndRE))?(x.highlightFormatting&&(e.formatting=\"code-block\"),u||(i=q(e)),e.localMode=e.localState=null,e.block=a,e.f=b,e.fencedEndRE=null,e.code=0,e.thisLine.fencedCodeEnd=!0,u?L(t,e,e.block):i):e.localMode?e.localMode.token(t,e.localState):(t.skipToEnd(),C.code)}function q(t){var e,i=[];if(t.formatting){i.push(C.formatting),\"string\"==typeof t.formatting&&(t.formatting=[t.formatting]);for(var n=0;n<t.formatting.length;n++)i.push(C.formatting+\"-\"+t.formatting[n]),\"header\"===t.formatting[n]&&i.push(C.formatting+\"-\"+t.formatting[n]+\"-\"+t.header),\"quote\"===t.formatting[n]&&(!x.maxBlockquoteDepth||x.maxBlockquoteDepth>=t.quote?i.push(C.formatting+\"-\"+t.formatting[n]+\"-\"+t.quote):i.push(\"error\"))}return t.taskOpen?i.push(\"meta\"):t.taskClosed?i.push(\"property\"):(t.linkHref?i.push(C.linkHref,\"url\"):(t.strong&&i.push(C.strong),t.em&&i.push(C.em),t.strikethrough&&i.push(C.strikethrough),t.emoji&&i.push(C.emoji),t.linkText&&i.push(C.linkText),t.code&&i.push(C.code),t.image&&i.push(C.image),t.imageAltText&&i.push(C.imageAltText,\"link\"),t.imageMarker&&i.push(C.imageMarker)),t.header&&i.push(C.header,C.header+\"-\"+t.header),t.quote&&(i.push(C.quote),!x.maxBlockquoteDepth||x.maxBlockquoteDepth>=t.quote?i.push(C.quote+\"-\"+t.quote):i.push(C.quote+\"-\"+x.maxBlockquoteDepth)),!1!==t.list&&((e=(t.listStack.length-1)%3)?1==e?i.push(C.list2):i.push(C.list3):i.push(C.list1)),t.trailingSpaceNewLine?i.push(\"trailing-space-new-line\"):t.trailingSpace&&i.push(\"trailing-space-\"+(t.trailingSpace%2?\"a\":\"b\"))),i.length?i.join(\" \"):null}function e(t,e){if(t.match(i,!0))return q(e)}function b(t,e){var i=e.text(t,e);if(void 0!==i)return i;if(e.list)return e.list=null,q(e);if(e.taskList)return\" \"===t.match(S,!0)[1]?e.taskOpen=!0:e.taskClosed=!0,x.highlightFormatting&&(e.formatting=\"task\"),e.taskList=!1,q(e);if(e.taskOpen=!1,e.taskClosed=!1,e.header&&t.match(/^#+$/,!0))return x.highlightFormatting&&(e.formatting=\"header\"),q(e);var n=t.next();if(e.linkTitle){e.linkTitle=!1;var u=\"(\"===n?\")\":n,r=\"^\\\\s*(?:[^\"+(u=(u+\"\").replace(/([.?*+^\\[\\]\\\\(){}|-])/g,\"\\\\$1\"))+\"\\\\\\\\]+|\\\\\\\\\\\\\\\\|\\\\\\\\.)\"+u;if(t.match(new RegExp(r),!0))return C.linkHref}if(\"`\"===n){var a=e.formatting;x.highlightFormatting&&(e.formatting=\"code\"),t.eatWhile(\"`\");var o=t.current().length;if(0!=e.code||e.quote&&1!=o){if(o!=e.code)return e.formatting=a,q(e);var l=q(e);return e.code=0,l}return e.code=o,q(e)}if(e.code)return q(e);if(\"\\\\\"===n&&(t.next(),x.highlightFormatting)){var h=q(e),s=C.formatting+\"-escape\";return h?h+\" \"+s:s}if(\"!\"===n&&t.match(/\\[[^\\]]*\\] ?(?:\\(|\\[)/,!1))return e.imageMarker=!0,e.image=!0,x.highlightFormatting&&(e.formatting=\"image\"),q(e);if(\"[\"===n&&e.imageMarker&&t.match(/[^\\]]*\\](\\(.*?\\)| ?\\[.*?\\])/,!1))return e.imageMarker=!1,e.imageAltText=!0,x.highlightFormatting&&(e.formatting=\"image\"),q(e);if(\"]\"===n&&e.imageAltText){x.highlightFormatting&&(e.formatting=\"image\");var h=q(e);return e.imageAltText=!1,e.image=!1,e.inline=e.f=y,h}if(\"[\"===n&&!e.image)return e.linkText&&t.match(/^.*?\\]/)||(e.linkText=!0,x.highlightFormatting&&(e.formatting=\"link\")),q(e);if(\"]\"===n&&e.linkText){x.highlightFormatting&&(e.formatting=\"link\");var h=q(e);return e.linkText=!1,e.inline=e.f=t.match(/\\(.*?\\)| ?\\[.*?\\]/,!1)?y:b,h}if(\"<\"===n&&t.match(/^(https?|ftps?):\\/\\/(?:[^\\\\>]|\\\\.)+>/,!1))return e.f=e.inline=w,x.highlightFormatting&&(e.formatting=\"link\"),(h=q(e))?h+=\" \":h=\"\",h+C.linkInline;if(\"<\"===n&&t.match(/^[^> \\\\]+@(?:[^\\\\>]|\\\\.)+>/,!1))return e.f=e.inline=w,x.highlightFormatting&&(e.formatting=\"link\"),(h=q(e))?h+=\" \":h=\"\",h+C.linkEmail;if(x.xml&&\"<\"===n&&t.match(/^(!--|\\?|!\\[CDATA\\[|[a-z][a-z0-9-]*(?:\\s+[a-z_:.\\-]+(?:\\s*=\\s*[^>]+)?)*\\s*(?:>|$))/i,!1)){var g,m=t.string.indexOf(\">\",t.pos);return-1!=m&&(g=t.string.substring(t.start,m),/markdown\\s*=\\s*('|\"){0,1}1('|\"){0,1}/.test(g)&&(e.md_inside=!0)),t.backUp(1),e.htmlState=j.startState(A),L(t,e,T)}if(x.xml&&\"<\"===n&&t.match(/^\\/\\w*?>/))return e.md_inside=!1,\"tag\";if(\"*\"===n||\"_\"===n){for(var d=1,c=1==t.pos?\" \":t.string.charAt(t.pos-2);d<3&&t.eat(n);)d++;var f=t.peek()||\" \",k=!/\\s/.test(f)&&(!v.test(f)||/\\s/.test(c)||v.test(c)),F=!/\\s/.test(c)&&(!v.test(c)||/\\s/.test(f)||v.test(f)),D=null,p=null;if(d%2&&(e.em||!k||\"*\"!==n&&F&&!v.test(c)?e.em!=n||!F||\"*\"!==n&&k&&!v.test(f)||(D=!1):D=!0),1<d&&(e.strong||!k||\"*\"!==n&&F&&!v.test(c)?e.strong!=n||!F||\"*\"!==n&&k&&!v.test(f)||(p=!1):p=!0),null!=p||null!=D){x.highlightFormatting&&(e.formatting=null==D?\"strong\":null==p?\"em\":\"strong em\"),!0===D&&(e.em=n),!0===p&&(e.strong=n);l=q(e);return!1===D&&(e.em=!1),!1===p&&(e.strong=!1),l}}else if(\" \"===n&&(t.eat(\"*\")||t.eat(\"_\"))){if(\" \"===t.peek())return q(e);t.backUp(1)}if(x.strikethrough)if(\"~\"===n&&t.eatWhile(n)){if(e.strikethrough){x.highlightFormatting&&(e.formatting=\"strikethrough\");l=q(e);return e.strikethrough=!1,l}if(t.match(/^[^\\s]/,!1))return e.strikethrough=!0,x.highlightFormatting&&(e.formatting=\"strikethrough\"),q(e)}else if(\" \"===n&&t.match(/^~~/,!0)){if(\" \"===t.peek())return q(e);t.backUp(2)}if(x.emoji&&\":\"===n&&t.match(/^(?:[a-z_\\d+][a-z_\\d+-]*|\\-[a-z_\\d+][a-z_\\d+-]*):/)){e.emoji=!0,x.highlightFormatting&&(e.formatting=\"emoji\");var E=q(e);return e.emoji=!1,E}return\" \"===n&&(t.match(/^ +$/,!1)?e.trailingSpace++:e.trailingSpace&&(e.trailingSpaceNewLine=!0)),q(e)}function w(t,e){if(\">\"!==t.next())return t.match(/^[^>]+/,!0),C.linkInline;e.f=e.inline=b,x.highlightFormatting&&(e.formatting=\"link\");var i=q(e);return i?i+=\" \":i=\"\",i+C.linkInline}function y(t,e){if(t.eatSpace())return null;var n,i=t.next();return\"(\"===i||\"[\"===i?(e.f=e.inline=(n=\"(\"===i?\")\":\"]\",function(t,e){if(t.next()!==n)return t.match(r[n]),e.linkHref=!0,q(e);e.f=e.inline=b,x.highlightFormatting&&(e.formatting=\"link-string\");var i=q(e);return e.linkHref=!1,i}),x.highlightFormatting&&(e.formatting=\"link-string\"),e.linkHref=!0,q(e)):\"error\"}var r={\")\":/^(?:[^\\\\\\(\\)]|\\\\.|\\((?:[^\\\\\\(\\)]|\\\\.)*\\))*?(?=\\))/,\"]\":/^(?:[^\\\\\\[\\]]|\\\\.|\\[(?:[^\\\\\\[\\]]|\\\\.)*\\])*?(?=\\])/};function H(t,e){return t.match(/^([^\\]\\\\]|\\\\.)*\\]:/,!1)?(e.f=o,t.next(),x.highlightFormatting&&(e.formatting=\"link\"),e.linkText=!0,q(e)):B(t,e,b)}function o(t,e){if(t.match(/^\\]:/,!0)){e.f=e.inline=l,x.highlightFormatting&&(e.formatting=\"link\");var i=q(e);return e.linkText=!1,i}return t.match(/^([^\\]\\\\]|\\\\.)+/,!0),C.linkText}function l(t,e){return t.eatSpace()?null:(t.match(/^[^\\s]+/,!0),void 0===t.peek()?e.linkTitle=!0:t.match(/^(?:\\s+(?:\"(?:[^\"\\\\]|\\\\\\\\|\\\\.)+\"|'(?:[^'\\\\]|\\\\\\\\|\\\\.)+'|\\((?:[^)\\\\]|\\\\\\\\|\\\\.)+\\)))?/,!0),e.f=e.inline=b,C.linkHref+\" url\")}var h={startState:function(){return{f:a,prevLine:{stream:null},thisLine:{stream:null},block:a,htmlState:null,indentation:0,inline:b,text:e,formatting:!1,linkText:!1,linkHref:!1,linkTitle:!1,code:0,em:!1,strong:!1,header:0,setext:0,hr:!1,taskList:!1,list:!1,listStack:[],quote:0,trailingSpace:0,trailingSpaceNewLine:!1,strikethrough:!1,emoji:!1,fencedEndRE:null}},copyState:function(t){return{f:t.f,prevLine:t.prevLine,thisLine:t.thisLine,block:t.block,htmlState:t.htmlState&&j.copyState(A,t.htmlState),indentation:t.indentation,localMode:t.localMode,localState:t.localMode?j.copyState(t.localMode,t.localState):null,inline:t.inline,text:t.text,formatting:!1,linkText:t.linkText,linkTitle:t.linkTitle,linkHref:t.linkHref,code:t.code,em:t.em,strong:t.strong,strikethrough:t.strikethrough,emoji:t.emoji,header:t.header,setext:t.setext,hr:t.hr,taskList:t.taskList,list:t.list,listStack:t.listStack.slice(0),quote:t.quote,indentedCode:t.indentedCode,trailingSpace:t.trailingSpace,trailingSpaceNewLine:t.trailingSpaceNewLine,md_inside:t.md_inside,fencedEndRE:t.fencedEndRE}},token:function(t,e){if(e.formatting=!1,t!=e.thisLine.stream){if(e.header=0,e.hr=!1,t.match(/^\\s*$/,!0))return n(e),null;if(e.prevLine=e.thisLine,e.thisLine={stream:t},e.taskList=!1,e.trailingSpace=0,e.trailingSpaceNewLine=!1,!e.localState&&(e.f=e.block,e.f!=T)){var i=t.match(/^\\s*/,!0)[0].replace(/\\t/g,\"    \").length;if(e.indentation=i,e.indentationDiff=null,0<i)return null}}return e.f(t,e)},innerMode:function(t){return t.block==T?{state:t.htmlState,mode:A}:t.localState?{state:t.localState,mode:t.localMode}:{state:t,mode:h}},indent:function(t,e,i){return t.block==T&&A.indent?A.indent(t.htmlState,e,i):t.localState&&t.localMode.indent?t.localMode.indent(t.localState,e,i):j.Pass},blankLine:n,getType:q,blockCommentStart:\"\\x3c!--\",blockCommentEnd:\"--\\x3e\",closeBrackets:\"()[]{}''\\\"\\\"``\",fold:\"markdown\"};return h},\"xml\"),j.defineMIME(\"text/markdown\",\"markdown\"),j.defineMIME(\"text/x-markdown\",\"markdown\")});\n",
            "type": "application/javascript",
            "title": "$:/plugins/tiddlywiki/codemirror/mode/markdown/markdown.js",
            "module-type": "codemirror"
        },
        "$:/plugins/tiddlywiki/codemirror-mode-markdown/readme": {
            "title": "$:/plugins/tiddlywiki/codemirror-mode-markdown/readme",
            "text": "This plugin adds Syntax Highlighting for Markdown tiddlers (text/x-markdown) to the [[CodeMirror|http://codemirror.net]] text editor. It needs the latest [[CodeMirror plugin|$:/plugins/tiddlywiki/codemirror]] to be installed\n\n"
        }
    }
}
{
    "tiddlers": {
        "$:/plugins/tiddlywiki/codemirror/mode/xml/xml.js": {
            "text": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n!function(t){\"object\"==typeof exports&&\"object\"==typeof module?t(require(\"../../lib/codemirror\")):\"function\"==typeof define&&define.amd?define([\"../../lib/codemirror\"],t):t(CodeMirror)}(function(N){\"use strict\";var y={autoSelfClosers:{area:!0,base:!0,br:!0,col:!0,command:!0,embed:!0,frame:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0,menuitem:!0},implicitlyClosed:{dd:!0,li:!0,optgroup:!0,option:!0,p:!0,rp:!0,rt:!0,tbody:!0,td:!0,tfoot:!0,th:!0,tr:!0},contextGrabbers:{dd:{dd:!0,dt:!0},dt:{dd:!0,dt:!0},li:{li:!0},option:{option:!0,optgroup:!0},optgroup:{optgroup:!0},p:{address:!0,article:!0,aside:!0,blockquote:!0,dir:!0,div:!0,dl:!0,fieldset:!0,footer:!0,form:!0,h1:!0,h2:!0,h3:!0,h4:!0,h5:!0,h6:!0,header:!0,hgroup:!0,hr:!0,menu:!0,nav:!0,ol:!0,p:!0,pre:!0,section:!0,table:!0,ul:!0},rp:{rp:!0,rt:!0},rt:{rp:!0,rt:!0},tbody:{tbody:!0,tfoot:!0},td:{td:!0,th:!0},tfoot:{tbody:!0},th:{td:!0,th:!0},thead:{tbody:!0,tfoot:!0},tr:{tr:!0}},doNotIndent:{pre:!0},allowUnquoted:!0,allowMissing:!0,caseFold:!0},z={autoSelfClosers:{},implicitlyClosed:{},contextGrabbers:{},doNotIndent:{},allowUnquoted:!1,allowMissing:!1,allowMissingTagName:!1,caseFold:!1};N.defineMode(\"xml\",function(t,e){var i,a,l=t.indentUnit,u={},n=e.htmlMode?y:z;for(var r in n)u[r]=n[r];for(var r in e)u[r]=e[r];function c(e,n){function t(t){return(n.tokenize=t)(e,n)}var r=e.next();if(\"<\"==r)return e.eat(\"!\")?e.eat(\"[\")?e.match(\"CDATA[\")?t(s(\"atom\",\"]]>\")):null:e.match(\"--\")?t(s(\"comment\",\"--\\x3e\")):e.match(\"DOCTYPE\",!0,!0)?(e.eatWhile(/[\\w\\._\\-]/),t(function r(o){return function(t,e){for(var n;null!=(n=t.next());){if(\"<\"==n)return e.tokenize=r(o+1),e.tokenize(t,e);if(\">\"==n){if(1!=o)return e.tokenize=r(o-1),e.tokenize(t,e);e.tokenize=c;break}}return\"meta\"}}(1))):null:e.eat(\"?\")?(e.eatWhile(/[\\w\\._\\-]/),n.tokenize=s(\"meta\",\"?>\"),\"meta\"):(i=e.eat(\"/\")?\"closeTag\":\"openTag\",n.tokenize=d,\"tag bracket\");if(\"&\"!=r)return e.eatWhile(/[^&<]/),null;var o=e.eat(\"#\")?e.eat(\"x\")?e.eatWhile(/[a-fA-F\\d]/)&&e.eat(\";\"):e.eatWhile(/[\\d]/)&&e.eat(\";\"):e.eatWhile(/[\\w\\.\\-:]/)&&e.eat(\";\");return o?\"atom\":\"error\"}function d(t,e){var n=t.next();if(\">\"==n||\"/\"==n&&t.eat(\">\"))return e.tokenize=c,i=\">\"==n?\"endTag\":\"selfcloseTag\",\"tag bracket\";if(\"=\"==n)return i=\"equals\",null;if(\"<\"!=n)return/[\\'\\\"]/.test(n)?(e.tokenize=(r=n,a.isInAttribute=!0,a),e.stringStartCol=t.column(),e.tokenize(t,e)):(t.match(/^[^\\s\\u00a0=<>\\\"\\']*[^\\s\\u00a0=<>\\\"\\'\\/]/),\"word\");e.tokenize=c,e.state=g,e.tagName=e.tagStart=null;var r,o=e.tokenize(t,e);return o?o+\" tag error\":\"tag error\";function a(t,e){for(;!t.eol();)if(t.next()==r){e.tokenize=d;break}return\"string\"}}function s(n,r){return function(t,e){for(;!t.eol();){if(t.match(r)){e.tokenize=c;break}t.next()}return n}}function f(t,e,n){this.prev=t.context,this.tagName=e||\"\",this.indent=t.indented,this.startOfLine=n,(u.doNotIndent.hasOwnProperty(e)||t.context&&t.context.noIndent)&&(this.noIndent=!0)}function o(t){t.context&&(t.context=t.context.prev)}function m(t,e){for(var n;;){if(!t.context)return;if(n=t.context.tagName,!u.contextGrabbers.hasOwnProperty(n)||!u.contextGrabbers[n].hasOwnProperty(e))return;o(t)}}function g(t,e,n){return\"openTag\"==t?(n.tagStart=e.column(),p):\"closeTag\"==t?h:g}function p(t,e,n){return\"word\"==t?(n.tagName=e.current(),a=\"tag\",k):u.allowMissingTagName&&\"endTag\"==t?(a=\"tag bracket\",k(t,0,n)):(a=\"error\",p)}function h(t,e,n){if(\"word\"!=t)return u.allowMissingTagName&&\"endTag\"==t?(a=\"tag bracket\",x(t,0,n)):(a=\"error\",b);var r=e.current();return n.context&&n.context.tagName!=r&&u.implicitlyClosed.hasOwnProperty(n.context.tagName)&&o(n),n.context&&n.context.tagName==r||!1===u.matchClosing?(a=\"tag\",x):(a=\"tag error\",b)}function x(t,e,n){return\"endTag\"!=t?(a=\"error\",x):(o(n),g)}function b(t,e,n){return a=\"error\",x(t,0,n)}function k(t,e,n){if(\"word\"==t)return a=\"attribute\",v;if(\"endTag\"!=t&&\"selfcloseTag\"!=t)return a=\"error\",k;var r=n.tagName,o=n.tagStart;return n.tagName=n.tagStart=null,\"selfcloseTag\"==t||u.autoSelfClosers.hasOwnProperty(r)?m(n,r):(m(n,r),n.context=new f(n,r,o==n.indented)),g}function v(t,e,n){return\"equals\"==t?w:(u.allowMissing||(a=\"error\"),k(t,0,n))}function w(t,e,n){return\"string\"==t?T:\"word\"==t&&u.allowUnquoted?(a=\"string\",k):(a=\"error\",k(t,0,n))}function T(t,e,n){return\"string\"==t?T:k(t,0,n)}return c.isInText=!0,{startState:function(t){var e={tokenize:c,state:g,indented:t||0,tagName:null,tagStart:null,context:null};return null!=t&&(e.baseIndent=t),e},token:function(t,e){if(!e.tagName&&t.sol()&&(e.indented=t.indentation()),t.eatSpace())return null;i=null;var n=e.tokenize(t,e);return(n||i)&&\"comment\"!=n&&(a=null,e.state=e.state(i||n,t,e),a&&(n=\"error\"==a?n+\" error\":a)),n},indent:function(t,e,n){var r=t.context;if(t.tokenize.isInAttribute)return t.tagStart==t.indented?t.stringStartCol+1:t.indented+l;if(r&&r.noIndent)return N.Pass;if(t.tokenize!=d&&t.tokenize!=c)return n?n.match(/^(\\s*)/)[0].length:0;if(t.tagName)return!1!==u.multilineTagIndentPastTag?t.tagStart+t.tagName.length+2:t.tagStart+l*(u.multilineTagIndentFactor||1);if(u.alignCDATA&&/<!\\[CDATA\\[/.test(e))return 0;var o=e&&/^<(\\/)?([\\w_:\\.-]*)/.exec(e);if(o&&o[1])for(;r;){if(r.tagName==o[2]){r=r.prev;break}if(!u.implicitlyClosed.hasOwnProperty(r.tagName))break;r=r.prev}else if(o)for(;r;){var a=u.contextGrabbers[r.tagName];if(!a||!a.hasOwnProperty(o[2]))break;r=r.prev}for(;r&&r.prev&&!r.startOfLine;)r=r.prev;return r?r.indent+l:t.baseIndent||0},electricInput:/<\\/[\\s\\w:]+>$/,blockCommentStart:\"\\x3c!--\",blockCommentEnd:\"--\\x3e\",configuration:u.htmlMode?\"html\":\"xml\",helperType:u.htmlMode?\"html\":\"xml\",skipAttribute:function(t){t.state==w&&(t.state=k)},xmlCurrentTag:function(t){return t.tagName?{name:t.tagName,close:\"closeTag\"==t.type}:null},xmlCurrentContext:function(t){for(var e=[],n=t.context;n;n=n.prev)e.push(n.tagName);return e.reverse()}}}),N.defineMIME(\"text/xml\",\"xml\"),N.defineMIME(\"application/xml\",\"xml\"),N.mimeModes.hasOwnProperty(\"text/html\")||N.defineMIME(\"text/html\",{name:\"xml\",htmlMode:!0})});\n",
            "type": "application/javascript",
            "title": "$:/plugins/tiddlywiki/codemirror/mode/xml/xml.js",
            "module-type": "codemirror"
        },
        "$:/plugins/tiddlywiki/codemirror-mode-xml/readme": {
            "title": "$:/plugins/tiddlywiki/codemirror-mode-xml/readme",
            "text": "This plugin is a requirement for other Syntax-highlighting plugins and adds Highlighting for XML tiddlers (application/xml) to the [[CodeMirror|http://codemirror.net]] text editor. It needs the latest [[CodeMirror plugin|$:/plugins/tiddlywiki/codemirror]] to be installed\n\n"
        }
    }
}
{
    "tiddlers": {
        "$:/plugins/tiddlywiki/codemirror/addon/search/search.js": {
            "text": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n!function(e){\"object\"==typeof exports&&\"object\"==typeof module?e(require(\"../../lib/codemirror\"),require(\"./searchcursor\"),require(\"../dialog/dialog\")):\"function\"==typeof define&&define.amd?define([\"../../lib/codemirror\",\"./searchcursor\",\"../dialog/dialog\"],e):e(CodeMirror)}(function(d){\"use strict\";function o(){this.posFrom=this.posTo=this.lastQuery=this.query=null,this.overlay=null}function m(e){return e.state.search||(e.state.search=new o)}function a(e){return\"string\"==typeof e&&e==e.toLowerCase()}function y(e,o,n){return e.getSearchCursor(o,n,{caseFold:a(o),multiline:!0})}function h(e,o,n,r,t){e.openDialog?e.openDialog(o,t,{value:r,selectValueOnOpen:!0,bottom:e.options.search.bottom}):t(prompt(n,r))}function r(e){return e.replace(/\\\\([nrt\\\\])/g,function(e,o){return\"n\"==o?\"\\n\":\"r\"==o?\"\\r\":\"t\"==o?\"\\t\":\"\\\\\"==o?\"\\\\\":e})}function s(e){var o=e.match(/^\\/(.*)\\/([a-z]*)$/);if(o)try{e=new RegExp(o[1],-1==o[2].indexOf(\"i\")?\"\":\"i\")}catch(e){}else e=r(e);return(\"string\"==typeof e?\"\"==e:e.test(\"\"))&&(e=/x^/),e}function g(e,o,n){var r,t;o.queryText=n,o.query=s(n),e.removeOverlay(o.overlay,a(o.query)),o.overlay=(r=o.query,t=a(o.query),\"string\"==typeof r?r=new RegExp(r.replace(/[\\-\\[\\]\\/\\{\\}\\(\\)\\*\\+\\?\\.\\\\\\^\\$\\|]/g,\"\\\\$&\"),t?\"gi\":\"g\"):r.global||(r=new RegExp(r.source,r.ignoreCase?\"gi\":\"g\")),{token:function(e){r.lastIndex=e.pos;var o=r.exec(e.string);if(o&&o.index==e.pos)return e.pos+=o[0].length||1,\"searching\";o?e.pos=o.index:e.skipToEnd()}}),e.addOverlay(o.overlay),e.showMatchesOnScrollbar&&(o.annotate&&(o.annotate.clear(),o.annotate=null),o.annotate=e.showMatchesOnScrollbar(o.query,a(o.query)))}function n(a,o,e,n){var r=m(a);if(r.query)return x(a,o);var t,s,i,c,l,u,p,f=a.getSelection()||r.lastQuery;f instanceof RegExp&&\"x^\"==f.source&&(f=null),e&&a.openDialog?(t=null,s=function(e,o){d.e_stop(o),e&&(e!=r.queryText&&(g(a,r,e),r.posFrom=r.posTo=a.getCursor()),t&&(t.style.opacity=1),x(a,o.shiftKey,function(e,o){var n;o.line<3&&document.querySelector&&(n=a.display.wrapper.querySelector(\".CodeMirror-dialog\"))&&n.getBoundingClientRect().bottom-4>a.cursorCoords(o,\"window\").top&&((t=n).style.opacity=.4)}))},c=b(i=a),l=f,u=s,p=function(e,o){var n=d.keyName(e),r=a.getOption(\"extraKeys\"),t=r&&r[n]||d.keyMap[a.getOption(\"keyMap\")][n];\"findNext\"==t||\"findPrev\"==t||\"findPersistentNext\"==t||\"findPersistentPrev\"==t?(d.e_stop(e),g(a,m(a),o),a.execCommand(t)):\"find\"!=t&&\"findPersistent\"!=t||(d.e_stop(e),s(o,e))},i.openDialog(c,u,{value:l,selectValueOnOpen:!0,closeOnEnter:!1,onClose:function(){v(i)},onKeyDown:p,bottom:i.options.search.bottom}),n&&f&&(g(a,r,f),x(a,o))):h(a,b(a),\"Search for:\",f,function(e){e&&!r.query&&a.operation(function(){g(a,r,e),r.posFrom=r.posTo=a.getCursor(),x(a,o)})})}function x(n,r,t){n.operation(function(){var e=m(n),o=y(n,e.query,r?e.posFrom:e.posTo);(o.find(r)||(o=y(n,e.query,r?d.Pos(n.lastLine()):d.Pos(n.firstLine(),0))).find(r))&&(n.setSelection(o.from(),o.to()),n.scrollIntoView({from:o.from(),to:o.to()},20),e.posFrom=o.from(),e.posTo=o.to(),t&&t(o.from(),o.to()))})}function v(o){o.operation(function(){var e=m(o);e.lastQuery=e.query,e.query&&(e.query=e.queryText=null,o.removeOverlay(e.overlay),e.annotate&&(e.annotate.clear(),e.annotate=null))})}function b(e){return'<span class=\"CodeMirror-search-label\">'+e.phrase(\"Search:\")+'</span> <input type=\"text\" style=\"width: 10em\" class=\"CodeMirror-search-field\"/> <span style=\"color: #888\" class=\"CodeMirror-search-hint\">'+e.phrase(\"(Use /re/ syntax for regexp search)\")+\"</span>\"}function C(o,r,t){o.operation(function(){for(var n,e=y(o,r);e.findNext();){\"string\"!=typeof r?(n=o.getRange(e.from(),e.to()).match(r),e.replace(t.replace(/\\$(\\d)/g,function(e,o){return n[o]}))):e.replace(t)}})}function t(f,e){var o,n;f.getOption(\"readOnly\")||(o=f.getSelection()||m(f).lastQuery,n='<span class=\"CodeMirror-search-label\">'+(e?f.phrase(\"Replace all:\"):f.phrase(\"Replace:\"))+\"</span>\",h(f,n+(' <input type=\"text\" style=\"width: 10em\" class=\"CodeMirror-search-field\"/> <span style=\"color: #888\" class=\"CodeMirror-search-hint\">'+f.phrase(\"(Use /re/ syntax for regexp search)\")+\"</span>\"),n,o,function(p){p&&(p=s(p),h(f,'<span class=\"CodeMirror-search-label\">'+f.phrase(\"With:\")+'</span> <input type=\"text\" style=\"width: 10em\" class=\"CodeMirror-search-field\"/>',f.phrase(\"Replace with:\"),\"\",function(i){var c,l,u;i=r(i),e?C(f,p,i):(v(f),c=y(f,p,f.getCursor(\"from\")),l=function(){var e,o,n,r,t,a,s=c.from();!(e=c.findNext())&&(c=y(f,p),!(e=c.findNext())||s&&c.from().line==s.line&&c.from().ch==s.ch)||(f.setSelection(c.from(),c.to()),f.scrollIntoView({from:c.from(),to:c.to()}),n='<span class=\"CodeMirror-search-label\">'+(a=o=f).phrase(\"Replace?\")+\"</span> <button>\"+a.phrase(\"Yes\")+\"</button> <button>\"+a.phrase(\"No\")+\"</button> <button>\"+a.phrase(\"All\")+\"</button> <button>\"+a.phrase(\"Stop\")+\"</button> \",r=f.phrase(\"Replace?\"),t=[function(){u(e)},l,function(){C(f,p,i)}],o.openConfirm?o.openConfirm(n,t):confirm(r)&&t[0]())},u=function(n){c.replace(\"string\"==typeof p?i:i.replace(/\\$(\\d)/g,function(e,o){return n[o]})),l()},l())}))}))}d.defineOption(\"search\",{bottom:!1}),d.commands.find=function(e){v(e),n(e)},d.commands.findPersistent=function(e){v(e),n(e,!1,!0)},d.commands.findPersistentNext=function(e){n(e,!1,!0,!0)},d.commands.findPersistentPrev=function(e){n(e,!0,!0,!0)},d.commands.findNext=n,d.commands.findPrev=function(e){n(e,!0)},d.commands.clearSearch=v,d.commands.replace=t,d.commands.replaceAll=function(e){t(e,!0)}});\n",
            "type": "application/javascript",
            "title": "$:/plugins/tiddlywiki/codemirror/addon/search/search.js",
            "module-type": "codemirror"
        },
        "$:/plugins/tiddlywiki/codemirror/addon/search/jump-to-line.js": {
            "text": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n!function(e){\"object\"==typeof exports&&\"object\"==typeof module?e(require(\"../../lib/codemirror\"),require(\"../dialog/dialog\")):\"function\"==typeof define&&define.amd?define([\"../../lib/codemirror\",\"../dialog/dialog\"],e):e(CodeMirror)}(function(e){\"use strict\";function u(e,o){var r=Number(o);return/^[-+]/.test(o)?e.getCursor().line+r:r-1}e.defineOption(\"search\",{bottom:!1}),e.commands.jumpToLine=function(t){var e,o,r,s,i,n,l=t.getCursor();o=(n=e=t).phrase(\"Jump to line:\")+' <input type=\"text\" style=\"width: 10em\" class=\"CodeMirror-search-field\"/> <span style=\"color: #888\" class=\"CodeMirror-search-hint\">'+n.phrase(\"(Use line:column or scroll% syntax)\")+\"</span>\",r=t.phrase(\"Jump to line:\"),s=l.line+1+\":\"+l.ch,i=function(e){var o,r;e&&((o=/^\\s*([\\+\\-]?\\d+)\\s*\\:\\s*(\\d+)\\s*$/.exec(e))?t.setCursor(u(t,o[1]),Number(o[2])):(o=/^\\s*([\\+\\-]?\\d+(\\.\\d+)?)\\%\\s*/.exec(e))?(r=Math.round(t.lineCount()*Number(o[1])/100),/^[-+]/.test(o[1])&&(r=l.line+r+1),t.setCursor(r-1,l.ch)):(o=/^\\s*\\:?\\s*([\\+\\-]?\\d+)\\s*/.exec(e))&&t.setCursor(u(t,o[1]),l.ch))},e.openDialog?e.openDialog(o,i,{value:s,selectValueOnOpen:!0,bottom:e.options.search.bottom}):i(prompt(r,s))},e.keyMap.default[\"Alt-G\"]=\"jumpToLine\"});\n",
            "type": "application/javascript",
            "title": "$:/plugins/tiddlywiki/codemirror/addon/search/jump-to-line.js",
            "module-type": "codemirror"
        },
        "$:/plugins/tiddlywiki/codemirror/addon/search/searchcursor.js": {
            "text": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n!function(t){\"object\"==typeof exports&&\"object\"==typeof module?t(require(\"../../lib/codemirror\")):\"function\"==typeof define&&define.amd?define([\"../../lib/codemirror\"],t):t(CodeMirror)}(function(i){\"use strict\";var p,x,L=i.Pos;function d(t,e){for(var n,r,i=null!=(r=(n=t).flags)?r:(n.ignoreCase?\"i\":\"\")+(n.global?\"g\":\"\")+(n.multiline?\"m\":\"\"),o=i,l=0;l<e.length;l++)-1==o.indexOf(e.charAt(l))&&(o+=e.charAt(l));return i==o?t:new RegExp(t.source,o)}function v(t){return/\\\\s|\\\\n|\\n|\\\\W|\\\\D|\\[\\^/.test(t.source)}function m(t,e,n){e=d(e,\"g\");for(var r=n.line,i=n.ch,o=t.lastLine();r<=o;r++,i=0){e.lastIndex=i;var l=t.getLine(r),h=e.exec(l);if(h)return{from:L(r,h.index),to:L(r,h.index+h[0].length),match:h}}}function C(t,e,n){for(var r,i=0;i<=t.length;){e.lastIndex=i;var o=e.exec(t);if(!o)break;var l=o.index+o[0].length;if(l>t.length-n)break;(!r||l>r.index+r[0].length)&&(r=o),i=o.index+1}return r}function O(t,e,n){e=d(e,\"g\");for(var r=n.line,i=n.ch,o=t.firstLine();o<=r;r--,i=-1){var l=t.getLine(r),h=C(l,e,i<0?0:l.length-i);if(h)return{from:L(r,h.index),to:L(r,h.index+h[0].length),match:h}}}function b(t,e,n,r){if(t.length==e.length)return n;for(var i=0,o=n+Math.max(0,t.length-e.length);;){if(i==o)return i;var l=i+o>>1,h=r(t.slice(0,l)).length;if(h==n)return l;n<h?o=l:i=1+l}}function r(n,r,t,e){var i;this.atOccurrence=!1,this.doc=n,t=t?n.clipPos(t):L(0,0),this.pos={from:t,to:t},\"object\"==typeof e?i=e.caseFold:(i=e,e=null),\"string\"==typeof r?(null==i&&(i=!1),this.matches=function(t,e){return(t?function(t,e,n,r){if(!e.length)return null;var i=r?p:x,o=i(e).split(/\\r|\\n\\r?/);t:for(var l=n.line,h=n.ch,s=t.firstLine()-1+o.length;s<=l;l--,h=-1){var c=t.getLine(l);-1<h&&(c=c.slice(0,h));var f=i(c);if(1==o.length){var u=f.lastIndexOf(o[0]);if(-1==u)continue t;return{from:L(l,b(c,f,u,i)),to:L(l,b(c,f,u+o[0].length,i))}}var g=o[o.length-1];if(f.slice(0,g.length)==g){for(var a=1,n=l-o.length+1;a<o.length-1;a++)if(i(t.getLine(n+a))!=o[a])continue t;var m=t.getLine(l+1-o.length),d=i(m);if(d.slice(d.length-o[0].length)==o[0])return{from:L(l+1-o.length,b(m,d,m.length-o[0].length,i)),to:L(l,b(c,f,g.length,i))}}}}:function(t,e,n,r){if(!e.length)return null;var i=r?p:x,o=i(e).split(/\\r|\\n\\r?/);t:for(var l=n.line,h=n.ch,s=t.lastLine()+1-o.length;l<=s;l++,h=0){var c=t.getLine(l).slice(h),f=i(c);if(1==o.length){var u=f.indexOf(o[0]);if(-1==u)continue t;n=b(c,f,u,i)+h;return{from:L(l,b(c,f,u,i)+h),to:L(l,b(c,f,u+o[0].length,i)+h)}}var g=f.length-o[0].length;if(f.slice(g)==o[0]){for(var a=1;a<o.length-1;a++)if(i(t.getLine(l+a))!=o[a])continue t;var m=t.getLine(l+o.length-1),d=i(m),v=o[o.length-1];if(d.slice(0,v.length)==v)return{from:L(l,b(c,f,g,i)+h),to:L(l+o.length-1,b(m,d,v.length,i))}}}})(n,r,e,i)}):(r=d(r,\"gm\"),e&&!1===e.multiline?this.matches=function(t,e){return(t?O:m)(n,r,e)}:this.matches=function(t,e){return(t?function(t,e,n){if(!v(e))return O(t,e,n);e=d(e,\"gm\");for(var r=1,i=t.getLine(n.line).length-n.ch,o=n.line,l=t.firstLine();l<=o;){for(var h=0;h<r&&l<=o;h++)var s=t.getLine(o--),c=null==c?s:s+\"\\n\"+c;r*=2;var f=C(c,e,i);if(f){var u=c.slice(0,f.index).split(\"\\n\"),g=f[0].split(\"\\n\"),a=o+u.length,m=u[u.length-1].length;return{from:L(a,m),to:L(a+g.length-1,1==g.length?m+g[0].length:g[g.length-1].length),match:f}}}}:function(t,e,n){if(!v(e))return m(t,e,n);e=d(e,\"gm\");for(var r=1,i=n.line,o=t.lastLine();i<=o;){for(var l=0;l<r&&!(o<i);l++)var h=t.getLine(i++),s=null==s?h:s+\"\\n\"+h;r*=2,e.lastIndex=n.ch;var c=e.exec(s);if(c){var f=s.slice(0,c.index).split(\"\\n\"),u=c[0].split(\"\\n\"),g=n.line+f.length-1,a=f[f.length-1].length;return{from:L(g,a),to:L(g+u.length-1,1==u.length?a+u[0].length:u[u.length-1].length),match:c}}}})(n,r,e)})}x=String.prototype.normalize?(p=function(t){return t.normalize(\"NFD\").toLowerCase()},function(t){return t.normalize(\"NFD\")}):(p=function(t){return t.toLowerCase()},function(t){return t}),r.prototype={findNext:function(){return this.find(!1)},findPrevious:function(){return this.find(!0)},find:function(t){for(var e=this.matches(t,this.doc.clipPos(t?this.pos.from:this.pos.to));e&&0==i.cmpPos(e.from,e.to);)t?e.from.ch?e.from=L(e.from.line,e.from.ch-1):e=e.from.line==this.doc.firstLine()?null:this.matches(t,this.doc.clipPos(L(e.from.line-1))):e.to.ch<this.doc.getLine(e.to.line).length?e.to=L(e.to.line,e.to.ch+1):e=e.to.line==this.doc.lastLine()?null:this.matches(t,L(e.to.line+1,0));if(e)return this.pos=e,this.atOccurrence=!0,this.pos.match||!0;var n=L(t?this.doc.firstLine():this.doc.lastLine()+1,0);return this.pos={from:n,to:n},this.atOccurrence=!1},from:function(){if(this.atOccurrence)return this.pos.from},to:function(){if(this.atOccurrence)return this.pos.to},replace:function(t,e){var n;this.atOccurrence&&(n=i.splitLines(t),this.doc.replaceRange(n,this.pos.from,this.pos.to,e),this.pos.to=L(this.pos.from.line+n.length-1,n[n.length-1].length+(1==n.length?this.pos.from.ch:0)))}},i.defineExtension(\"getSearchCursor\",function(t,e,n){return new r(this.doc,t,e,n)}),i.defineDocExtension(\"getSearchCursor\",function(t,e,n){return new r(this,t,e,n)}),i.defineExtension(\"selectMatches\",function(t,e){for(var n=[],r=this.getSearchCursor(t,this.getCursor(\"from\"),e);r.findNext()&&!(0<i.cmpPos(r.to(),this.getCursor(\"to\")));)n.push({anchor:r.from(),head:r.to()});n.length&&this.setSelections(n,0)})});\n",
            "type": "application/javascript",
            "title": "$:/plugins/tiddlywiki/codemirror/addon/search/searchcursor.js",
            "module-type": "codemirror"
        },
        "$:/plugins/tiddlywiki/codemirror-search-replace/readme": {
            "title": "$:/plugins/tiddlywiki/codemirror-search-replace/readme",
            "text": "This plugin enhances the [[CodeMirror|http://codemirror.net]] text editor with Search and Replace functionality. It needs the latest [[CodeMirror plugin|$:/plugins/tiddlywiki/codemirror]] to be installed\n\nIt adds these Keyboard Shortcuts to ~CodeMirror:\n\n|Shortcut |Function |h\n|Ctrl-F / Cmd-F |Start searching |\n|Ctrl-G / Cmd-G / Shift-F3 |Find next |\n|Shift-Ctrl-G / Shift-Cmd-G / F3 |Find previous |\n|Shift-Ctrl-F / Cmd-Option-F |Replace |\n|Shift-Ctrl-R / Shift-Cmd-Option-F |Replace all |\n|Alt-F |Persistent search (dialog doesn't autoclose, enter to find next, Shift-Enter to find previous) |\n|Alt-G |Jump to line |\n\n"
        }
    }
}
{
    "tiddlers": {
        "$:/plugins/tiddlywiki/markdown/EditorToolbar/bold": {
            "title": "$:/plugins/tiddlywiki/markdown/EditorToolbar/bold",
            "list-after": "$:/core/ui/EditorToolbar/bold",
            "tags": "$:/tags/EditorToolbar",
            "icon": "$:/core/images/bold",
            "caption": "{{$:/language/Buttons/Bold/Caption}} (Markdown)",
            "description": "{{$:/language/Buttons/Bold/Hint}}",
            "condition": "[<targetTiddler>type[text/x-markdown]]",
            "shortcuts": "((bold))",
            "text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"wrap-selection\"\n\tprefix=\"**\"\n\tsuffix=\"**\"\n/>\n"
        },
        "$:/plugins/tiddlywiki/markdown/EditorToolbar/heading-1": {
            "title": "$:/plugins/tiddlywiki/markdown/EditorToolbar/heading-1",
            "list-after": "$:/core/ui/EditorToolbar/heading-1",
            "tags": "$:/tags/EditorToolbar",
            "icon": "$:/core/images/heading-1",
            "caption": "{{$:/language/Buttons/Heading1/Caption}} (Markdown)",
            "description": "{{$:/language/Buttons/Heading1/Hint}}",
            "condition": "[<targetTiddler>type[text/x-markdown]]",
            "shortcuts": "((heading-1))",
            "text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"prefix-lines\"\n\tcharacter=\"#\"\n\tcount=\"1\"\n/>\n"
        },
        "$:/plugins/tiddlywiki/markdown/EditorToolbar/heading-2": {
            "title": "$:/plugins/tiddlywiki/markdown/EditorToolbar/heading-2",
            "list-after": "$:/core/ui/EditorToolbar/heading-2",
            "tags": "$:/tags/EditorToolbar",
            "icon": "$:/core/images/heading-2",
            "caption": "{{$:/language/Buttons/Heading2/Caption}} (Markdown)",
            "description": "{{$:/language/Buttons/Heading2/Hint}}",
            "condition": "[<targetTiddler>type[text/x-markdown]]",
            "shortcuts": "((heading-2))",
            "text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"prefix-lines\"\n\tcharacter=\"#\"\n\tcount=\"2\"\n/>\n"
        },
        "$:/plugins/tiddlywiki/markdown/EditorToolbar/heading-3": {
            "title": "$:/plugins/tiddlywiki/markdown/EditorToolbar/heading-3",
            "list-after": "$:/core/ui/EditorToolbar/heading-3",
            "tags": "$:/tags/EditorToolbar",
            "icon": "$:/core/images/heading-3",
            "caption": "{{$:/language/Buttons/Heading3/Caption}} (Markdown)",
            "description": "{{$:/language/Buttons/Heading3/Hint}}",
            "condition": "[<targetTiddler>type[text/x-markdown]]",
            "shortcuts": "((heading-3))",
            "text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"prefix-lines\"\n\tcharacter=\"#\"\n\tcount=\"3\"\n/>\n"
        },
        "$:/plugins/tiddlywiki/markdown/EditorToolbar/heading-4": {
            "title": "$:/plugins/tiddlywiki/markdown/EditorToolbar/heading-4",
            "list-after": "$:/core/ui/EditorToolbar/heading-4",
            "tags": "$:/tags/EditorToolbar",
            "icon": "$:/core/images/heading-4",
            "caption": "{{$:/language/Buttons/Heading4/Caption}} (Markdown)",
            "description": "{{$:/language/Buttons/Heading4/Hint}}",
            "condition": "[<targetTiddler>type[text/x-markdown]]",
            "shortcuts": "((heading-4))",
            "text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"prefix-lines\"\n\tcharacter=\"#\"\n\tcount=\"4\"\n/>\n"
        },
        "$:/plugins/tiddlywiki/markdown/EditorToolbar/heading-5": {
            "title": "$:/plugins/tiddlywiki/markdown/EditorToolbar/heading-5",
            "list-after": "$:/core/ui/EditorToolbar/heading-5",
            "tags": "$:/tags/EditorToolbar",
            "icon": "$:/core/images/heading-5",
            "caption": "{{$:/language/Buttons/Heading5/Caption}} (Markdown)",
            "description": "{{$:/language/Buttons/Heading5/Hint}}",
            "condition": "[<targetTiddler>type[text/x-markdown]]",
            "shortcuts": "((heading-5))",
            "text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"prefix-lines\"\n\tcharacter=\"#\"\n\tcount=\"5\"\n/>\n"
        },
        "$:/plugins/tiddlywiki/markdown/EditorToolbar/heading-6": {
            "title": "$:/plugins/tiddlywiki/markdown/EditorToolbar/heading-6",
            "list-after": "$:/core/ui/EditorToolbar/heading-6",
            "tags": "$:/tags/EditorToolbar",
            "icon": "$:/core/images/heading-6",
            "caption": "{{$:/language/Buttons/Heading6/Caption}} (Markdown)",
            "description": "{{$:/language/Buttons/Heading6/Hint}}",
            "condition": "[<targetTiddler>type[text/x-markdown]]",
            "shortcuts": "((heading-6))",
            "text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"prefix-lines\"\n\tcharacter=\"#\"\n\tcount=\"6\"\n/>\n"
        },
        "$:/plugins/tiddlywiki/markdown/EditorToolbar/italic": {
            "title": "$:/plugins/tiddlywiki/markdown/EditorToolbar/italic",
            "list-after": "$:/core/ui/EditorToolbar/italic",
            "tags": "$:/tags/EditorToolbar",
            "icon": "$:/core/images/italic",
            "caption": "{{$:/language/Buttons/Italic/Caption}} (Markdown)",
            "description": "{{$:/language/Buttons/Italic/Hint}}",
            "condition": "[<targetTiddler>type[text/x-markdown]]",
            "shortcuts": "((italic))",
            "text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"wrap-selection\"\n\tprefix=\"*\"\n\tsuffix=\"*\"\n/>\n"
        },
        "$:/plugins/tiddlywiki/markdown/EditorToolbar/list-bullet": {
            "title": "$:/plugins/tiddlywiki/markdown/EditorToolbar/list-bullet",
            "list-after": "$:/core/ui/EditorToolbar/list-bullet",
            "tags": "$:/tags/EditorToolbar",
            "icon": "$:/core/images/list-bullet",
            "caption": "{{$:/language/Buttons/ListBullet/Caption}} (Markdown)",
            "description": "{{$:/language/Buttons/ListBullet/Hint}}",
            "condition": "[<targetTiddler>type[text/x-markdown]]",
            "shortcuts": "((list-bullet))",
            "text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"prefix-lines\"\n\tcharacter=\"*\"\n\tcount=\"1\"\n/>\n"
        },
        "$:/plugins/tiddlywiki/markdown/EditorToolbar/list-number": {
            "title": "$:/plugins/tiddlywiki/markdown/EditorToolbar/list-number",
            "list-after": "$:/core/ui/EditorToolbar/list-number",
            "tags": "$:/tags/EditorToolbar",
            "icon": "$:/core/images/list-number",
            "caption": "{{$:/language/Buttons/ListNumber/Caption}} (Markdown)",
            "description": "{{$:/language/Buttons/ListNumber/Hint}}",
            "condition": "[<targetTiddler>type[text/x-markdown]]",
            "shortcuts": "((list-number))",
            "text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"prefix-lines\"\n\tcharacter=\"1.\"\n\tcount=\"1\"\n/>\n"
        },
        "$:/plugins/tiddlywiki/markdown/EditorToolbar/mono-line": {
            "title": "$:/plugins/tiddlywiki/markdown/EditorToolbar/mono-line",
            "list-after": "$:/core/ui/EditorToolbar/mono-line",
            "tags": "$:/tags/EditorToolbar",
            "icon": "$:/core/images/mono-line",
            "caption": "{{$:/language/Buttons/MonoLine/Caption}} (Markdown)",
            "description": "{{$:/language/Buttons/MonoLine/Hint}}",
            "condition": "[<targetTiddler>type[text/x-markdown]]",
            "shortcuts": "((mono-line))",
            "text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"wrap-selection\"\n\tprefix=\"`\"\n\tsuffix=\"`\"\n/>\n"
        },
        "$:/plugins/tiddlywiki/markdown/EditorToolbar/quote": {
            "title": "$:/plugins/tiddlywiki/markdown/EditorToolbar/quote",
            "list-after": "$:/core/ui/EditorToolbar/quote",
            "tags": "$:/tags/EditorToolbar",
            "icon": "$:/core/images/quote",
            "caption": "{{$:/language/Buttons/Quote/Caption}} (Markdown)",
            "description": "{{$:/language/Buttons/Quote/Hint}}",
            "condition": "[<targetTiddler>type[text/x-markdown]]",
            "shortcuts": "((quote))",
            "text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"prefix-lines\"\n\tcharacter=\">\"\n\tcount=\"1\"\n/>\n"
        },
        "$:/config/markdown/breaks": {
            "title": "$:/config/markdown/breaks",
            "text": "false"
        },
        "$:/config/markdown/linkNewWindow": {
            "title": "$:/config/markdown/linkNewWindow",
            "text": "true"
        },
        "$:/config/markdown/linkify": {
            "title": "$:/config/markdown/linkify",
            "text": "false"
        },
        "$:/config/markdown/quotes": {
            "title": "$:/config/markdown/quotes",
            "text": "“”‘’"
        },
        "$:/config/markdown/renderWikiText": {
            "title": "$:/config/markdown/renderWikiText",
            "text": "true"
        },
        "$:/config/markdown/renderWikiTextPragma": {
            "title": "$:/config/markdown/renderWikiTextPragma",
            "text": "\\rules only html image macrocallinline syslink transcludeinline wikilink filteredtranscludeblock macrocallblock transcludeblock"
        },
        "$:/config/markdown/typographer": {
            "title": "$:/config/markdown/typographer",
            "text": "false"
        },
        "$:/language/Docs/Types/text/x-markdown": {
            "title": "$:/language/Docs/Types/text/x-markdown",
            "description": "Markdown",
            "name": "text/x-markdown",
            "group": "Text"
        },
        "$:/plugins/tiddlywiki/markdown/remarkable.js": {
            "text": "!function(e,t){\"object\"==typeof exports&&\"undefined\"!=typeof module?t(exports):\"function\"==typeof define&&define.amd?define([\"exports\"],t):t((e=e||self).remarkable={})}(this,function(e){\"use strict\";var t={Aacute:\"Á\",aacute:\"á\",Abreve:\"Ă\",abreve:\"ă\",ac:\"∾\",acd:\"∿\",acE:\"∾̳\",Acirc:\"Â\",acirc:\"â\",acute:\"´\",Acy:\"А\",acy:\"а\",AElig:\"Æ\",aelig:\"æ\",af:\"⁡\",Afr:\"𝔄\",afr:\"𝔞\",Agrave:\"À\",agrave:\"à\",alefsym:\"ℵ\",aleph:\"ℵ\",Alpha:\"Α\",alpha:\"α\",Amacr:\"Ā\",amacr:\"ā\",amalg:\"⨿\",AMP:\"&\",amp:\"&\",And:\"⩓\",and:\"∧\",andand:\"⩕\",andd:\"⩜\",andslope:\"⩘\",andv:\"⩚\",ang:\"∠\",ange:\"⦤\",angle:\"∠\",angmsd:\"∡\",angmsdaa:\"⦨\",angmsdab:\"⦩\",angmsdac:\"⦪\",angmsdad:\"⦫\",angmsdae:\"⦬\",angmsdaf:\"⦭\",angmsdag:\"⦮\",angmsdah:\"⦯\",angrt:\"∟\",angrtvb:\"⊾\",angrtvbd:\"⦝\",angsph:\"∢\",angst:\"Å\",angzarr:\"⍼\",Aogon:\"Ą\",aogon:\"ą\",Aopf:\"𝔸\",aopf:\"𝕒\",ap:\"≈\",apacir:\"⩯\",apE:\"⩰\",ape:\"≊\",apid:\"≋\",apos:\"'\",ApplyFunction:\"⁡\",approx:\"≈\",approxeq:\"≊\",Aring:\"Å\",aring:\"å\",Ascr:\"𝒜\",ascr:\"𝒶\",Assign:\"≔\",ast:\"*\",asymp:\"≈\",asympeq:\"≍\",Atilde:\"Ã\",atilde:\"ã\",Auml:\"Ä\",auml:\"ä\",awconint:\"∳\",awint:\"⨑\",backcong:\"≌\",backepsilon:\"϶\",backprime:\"‵\",backsim:\"∽\",backsimeq:\"⋍\",Backslash:\"∖\",Barv:\"⫧\",barvee:\"⊽\",Barwed:\"⌆\",barwed:\"⌅\",barwedge:\"⌅\",bbrk:\"⎵\",bbrktbrk:\"⎶\",bcong:\"≌\",Bcy:\"Б\",bcy:\"б\",bdquo:\"„\",becaus:\"∵\",Because:\"∵\",because:\"∵\",bemptyv:\"⦰\",bepsi:\"϶\",bernou:\"ℬ\",Bernoullis:\"ℬ\",Beta:\"Β\",beta:\"β\",beth:\"ℶ\",between:\"≬\",Bfr:\"𝔅\",bfr:\"𝔟\",bigcap:\"⋂\",bigcirc:\"◯\",bigcup:\"⋃\",bigodot:\"⨀\",bigoplus:\"⨁\",bigotimes:\"⨂\",bigsqcup:\"⨆\",bigstar:\"★\",bigtriangledown:\"▽\",bigtriangleup:\"△\",biguplus:\"⨄\",bigvee:\"⋁\",bigwedge:\"⋀\",bkarow:\"⤍\",blacklozenge:\"⧫\",blacksquare:\"▪\",blacktriangle:\"▴\",blacktriangledown:\"▾\",blacktriangleleft:\"◂\",blacktriangleright:\"▸\",blank:\"␣\",blk12:\"▒\",blk14:\"░\",blk34:\"▓\",block:\"█\",bne:\"=⃥\",bnequiv:\"≡⃥\",bNot:\"⫭\",bnot:\"⌐\",Bopf:\"𝔹\",bopf:\"𝕓\",bot:\"⊥\",bottom:\"⊥\",bowtie:\"⋈\",boxbox:\"⧉\",boxDL:\"╗\",boxDl:\"╖\",boxdL:\"╕\",boxdl:\"┐\",boxDR:\"╔\",boxDr:\"╓\",boxdR:\"╒\",boxdr:\"┌\",boxH:\"═\",boxh:\"─\",boxHD:\"╦\",boxHd:\"╤\",boxhD:\"╥\",boxhd:\"┬\",boxHU:\"╩\",boxHu:\"╧\",boxhU:\"╨\",boxhu:\"┴\",boxminus:\"⊟\",boxplus:\"⊞\",boxtimes:\"⊠\",boxUL:\"╝\",boxUl:\"╜\",boxuL:\"╛\",boxul:\"┘\",boxUR:\"╚\",boxUr:\"╙\",boxuR:\"╘\",boxur:\"└\",boxV:\"║\",boxv:\"│\",boxVH:\"╬\",boxVh:\"╫\",boxvH:\"╪\",boxvh:\"┼\",boxVL:\"╣\",boxVl:\"╢\",boxvL:\"╡\",boxvl:\"┤\",boxVR:\"╠\",boxVr:\"╟\",boxvR:\"╞\",boxvr:\"├\",bprime:\"‵\",Breve:\"˘\",breve:\"˘\",brvbar:\"¦\",Bscr:\"ℬ\",bscr:\"𝒷\",bsemi:\"⁏\",bsim:\"∽\",bsime:\"⋍\",bsol:\"\\\\\",bsolb:\"⧅\",bsolhsub:\"⟈\",bull:\"•\",bullet:\"•\",bump:\"≎\",bumpE:\"⪮\",bumpe:\"≏\",Bumpeq:\"≎\",bumpeq:\"≏\",Cacute:\"Ć\",cacute:\"ć\",Cap:\"⋒\",cap:\"∩\",capand:\"⩄\",capbrcup:\"⩉\",capcap:\"⩋\",capcup:\"⩇\",capdot:\"⩀\",CapitalDifferentialD:\"ⅅ\",caps:\"∩︀\",caret:\"⁁\",caron:\"ˇ\",Cayleys:\"ℭ\",ccaps:\"⩍\",Ccaron:\"Č\",ccaron:\"č\",Ccedil:\"Ç\",ccedil:\"ç\",Ccirc:\"Ĉ\",ccirc:\"ĉ\",Cconint:\"∰\",ccups:\"⩌\",ccupssm:\"⩐\",Cdot:\"Ċ\",cdot:\"ċ\",cedil:\"¸\",Cedilla:\"¸\",cemptyv:\"⦲\",cent:\"¢\",CenterDot:\"·\",centerdot:\"·\",Cfr:\"ℭ\",cfr:\"𝔠\",CHcy:\"Ч\",chcy:\"ч\",check:\"✓\",checkmark:\"✓\",Chi:\"Χ\",chi:\"χ\",cir:\"○\",circ:\"ˆ\",circeq:\"≗\",circlearrowleft:\"↺\",circlearrowright:\"↻\",circledast:\"⊛\",circledcirc:\"⊚\",circleddash:\"⊝\",CircleDot:\"⊙\",circledR:\"®\",circledS:\"Ⓢ\",CircleMinus:\"⊖\",CirclePlus:\"⊕\",CircleTimes:\"⊗\",cirE:\"⧃\",cire:\"≗\",cirfnint:\"⨐\",cirmid:\"⫯\",cirscir:\"⧂\",ClockwiseContourIntegral:\"∲\",CloseCurlyDoubleQuote:\"”\",CloseCurlyQuote:\"’\",clubs:\"♣\",clubsuit:\"♣\",Colon:\"∷\",colon:\":\",Colone:\"⩴\",colone:\"≔\",coloneq:\"≔\",comma:\",\",commat:\"@\",comp:\"∁\",compfn:\"∘\",complement:\"∁\",complexes:\"ℂ\",cong:\"≅\",congdot:\"⩭\",Congruent:\"≡\",Conint:\"∯\",conint:\"∮\",ContourIntegral:\"∮\",Copf:\"ℂ\",copf:\"𝕔\",coprod:\"∐\",Coproduct:\"∐\",COPY:\"©\",copy:\"©\",copysr:\"℗\",CounterClockwiseContourIntegral:\"∳\",crarr:\"↵\",Cross:\"⨯\",cross:\"✗\",Cscr:\"𝒞\",cscr:\"𝒸\",csub:\"⫏\",csube:\"⫑\",csup:\"⫐\",csupe:\"⫒\",ctdot:\"⋯\",cudarrl:\"⤸\",cudarrr:\"⤵\",cuepr:\"⋞\",cuesc:\"⋟\",cularr:\"↶\",cularrp:\"⤽\",Cup:\"⋓\",cup:\"∪\",cupbrcap:\"⩈\",CupCap:\"≍\",cupcap:\"⩆\",cupcup:\"⩊\",cupdot:\"⊍\",cupor:\"⩅\",cups:\"∪︀\",curarr:\"↷\",curarrm:\"⤼\",curlyeqprec:\"⋞\",curlyeqsucc:\"⋟\",curlyvee:\"⋎\",curlywedge:\"⋏\",curren:\"¤\",curvearrowleft:\"↶\",curvearrowright:\"↷\",cuvee:\"⋎\",cuwed:\"⋏\",cwconint:\"∲\",cwint:\"∱\",cylcty:\"⌭\",Dagger:\"‡\",dagger:\"†\",daleth:\"ℸ\",Darr:\"↡\",dArr:\"⇓\",darr:\"↓\",dash:\"‐\",Dashv:\"⫤\",dashv:\"⊣\",dbkarow:\"⤏\",dblac:\"˝\",Dcaron:\"Ď\",dcaron:\"ď\",Dcy:\"Д\",dcy:\"д\",DD:\"ⅅ\",dd:\"ⅆ\",ddagger:\"‡\",ddarr:\"⇊\",DDotrahd:\"⤑\",ddotseq:\"⩷\",deg:\"°\",Del:\"∇\",Delta:\"Δ\",delta:\"δ\",demptyv:\"⦱\",dfisht:\"⥿\",Dfr:\"𝔇\",dfr:\"𝔡\",dHar:\"⥥\",dharl:\"⇃\",dharr:\"⇂\",DiacriticalAcute:\"´\",DiacriticalDot:\"˙\",DiacriticalDoubleAcute:\"˝\",DiacriticalGrave:\"`\",DiacriticalTilde:\"˜\",diam:\"⋄\",Diamond:\"⋄\",diamond:\"⋄\",diamondsuit:\"♦\",diams:\"♦\",die:\"¨\",DifferentialD:\"ⅆ\",digamma:\"ϝ\",disin:\"⋲\",div:\"÷\",divide:\"÷\",divideontimes:\"⋇\",divonx:\"⋇\",DJcy:\"Ђ\",djcy:\"ђ\",dlcorn:\"⌞\",dlcrop:\"⌍\",dollar:\"$\",Dopf:\"𝔻\",dopf:\"𝕕\",Dot:\"¨\",dot:\"˙\",DotDot:\"⃜\",doteq:\"≐\",doteqdot:\"≑\",DotEqual:\"≐\",dotminus:\"∸\",dotplus:\"∔\",dotsquare:\"⊡\",doublebarwedge:\"⌆\",DoubleContourIntegral:\"∯\",DoubleDot:\"¨\",DoubleDownArrow:\"⇓\",DoubleLeftArrow:\"⇐\",DoubleLeftRightArrow:\"⇔\",DoubleLeftTee:\"⫤\",DoubleLongLeftArrow:\"⟸\",DoubleLongLeftRightArrow:\"⟺\",DoubleLongRightArrow:\"⟹\",DoubleRightArrow:\"⇒\",DoubleRightTee:\"⊨\",DoubleUpArrow:\"⇑\",DoubleUpDownArrow:\"⇕\",DoubleVerticalBar:\"∥\",DownArrow:\"↓\",Downarrow:\"⇓\",downarrow:\"↓\",DownArrowBar:\"⤓\",DownArrowUpArrow:\"⇵\",DownBreve:\"̑\",downdownarrows:\"⇊\",downharpoonleft:\"⇃\",downharpoonright:\"⇂\",DownLeftRightVector:\"⥐\",DownLeftTeeVector:\"⥞\",DownLeftVector:\"↽\",DownLeftVectorBar:\"⥖\",DownRightTeeVector:\"⥟\",DownRightVector:\"⇁\",DownRightVectorBar:\"⥗\",DownTee:\"⊤\",DownTeeArrow:\"↧\",drbkarow:\"⤐\",drcorn:\"⌟\",drcrop:\"⌌\",Dscr:\"𝒟\",dscr:\"𝒹\",DScy:\"Ѕ\",dscy:\"ѕ\",dsol:\"⧶\",Dstrok:\"Đ\",dstrok:\"đ\",dtdot:\"⋱\",dtri:\"▿\",dtrif:\"▾\",duarr:\"⇵\",duhar:\"⥯\",dwangle:\"⦦\",DZcy:\"Џ\",dzcy:\"џ\",dzigrarr:\"⟿\",Eacute:\"É\",eacute:\"é\",easter:\"⩮\",Ecaron:\"Ě\",ecaron:\"ě\",ecir:\"≖\",Ecirc:\"Ê\",ecirc:\"ê\",ecolon:\"≕\",Ecy:\"Э\",ecy:\"э\",eDDot:\"⩷\",Edot:\"Ė\",eDot:\"≑\",edot:\"ė\",ee:\"ⅇ\",efDot:\"≒\",Efr:\"𝔈\",efr:\"𝔢\",eg:\"⪚\",Egrave:\"È\",egrave:\"è\",egs:\"⪖\",egsdot:\"⪘\",el:\"⪙\",Element:\"∈\",elinters:\"⏧\",ell:\"ℓ\",els:\"⪕\",elsdot:\"⪗\",Emacr:\"Ē\",emacr:\"ē\",empty:\"∅\",emptyset:\"∅\",EmptySmallSquare:\"◻\",emptyv:\"∅\",EmptyVerySmallSquare:\"▫\",emsp:\" \",emsp13:\" \",emsp14:\" \",ENG:\"Ŋ\",eng:\"ŋ\",ensp:\" \",Eogon:\"Ę\",eogon:\"ę\",Eopf:\"𝔼\",eopf:\"𝕖\",epar:\"⋕\",eparsl:\"⧣\",eplus:\"⩱\",epsi:\"ε\",Epsilon:\"Ε\",epsilon:\"ε\",epsiv:\"ϵ\",eqcirc:\"≖\",eqcolon:\"≕\",eqsim:\"≂\",eqslantgtr:\"⪖\",eqslantless:\"⪕\",Equal:\"⩵\",equals:\"=\",EqualTilde:\"≂\",equest:\"≟\",Equilibrium:\"⇌\",equiv:\"≡\",equivDD:\"⩸\",eqvparsl:\"⧥\",erarr:\"⥱\",erDot:\"≓\",Escr:\"ℰ\",escr:\"ℯ\",esdot:\"≐\",Esim:\"⩳\",esim:\"≂\",Eta:\"Η\",eta:\"η\",ETH:\"Ð\",eth:\"ð\",Euml:\"Ë\",euml:\"ë\",euro:\"€\",excl:\"!\",exist:\"∃\",Exists:\"∃\",expectation:\"ℰ\",ExponentialE:\"ⅇ\",exponentiale:\"ⅇ\",fallingdotseq:\"≒\",Fcy:\"Ф\",fcy:\"ф\",female:\"♀\",ffilig:\"ffi\",fflig:\"ff\",ffllig:\"ffl\",Ffr:\"𝔉\",ffr:\"𝔣\",filig:\"fi\",FilledSmallSquare:\"◼\",FilledVerySmallSquare:\"▪\",fjlig:\"fj\",flat:\"♭\",fllig:\"fl\",fltns:\"▱\",fnof:\"ƒ\",Fopf:\"𝔽\",fopf:\"𝕗\",ForAll:\"∀\",forall:\"∀\",fork:\"⋔\",forkv:\"⫙\",Fouriertrf:\"ℱ\",fpartint:\"⨍\",frac12:\"½\",frac13:\"⅓\",frac14:\"¼\",frac15:\"⅕\",frac16:\"⅙\",frac18:\"⅛\",frac23:\"⅔\",frac25:\"⅖\",frac34:\"¾\",frac35:\"⅗\",frac38:\"⅜\",frac45:\"⅘\",frac56:\"⅚\",frac58:\"⅝\",frac78:\"⅞\",frasl:\"⁄\",frown:\"⌢\",Fscr:\"ℱ\",fscr:\"𝒻\",gacute:\"ǵ\",Gamma:\"Γ\",gamma:\"γ\",Gammad:\"Ϝ\",gammad:\"ϝ\",gap:\"⪆\",Gbreve:\"Ğ\",gbreve:\"ğ\",Gcedil:\"Ģ\",Gcirc:\"Ĝ\",gcirc:\"ĝ\",Gcy:\"Г\",gcy:\"г\",Gdot:\"Ġ\",gdot:\"ġ\",gE:\"≧\",ge:\"≥\",gEl:\"⪌\",gel:\"⋛\",geq:\"≥\",geqq:\"≧\",geqslant:\"⩾\",ges:\"⩾\",gescc:\"⪩\",gesdot:\"⪀\",gesdoto:\"⪂\",gesdotol:\"⪄\",gesl:\"⋛︀\",gesles:\"⪔\",Gfr:\"𝔊\",gfr:\"𝔤\",Gg:\"⋙\",gg:\"≫\",ggg:\"⋙\",gimel:\"ℷ\",GJcy:\"Ѓ\",gjcy:\"ѓ\",gl:\"≷\",gla:\"⪥\",glE:\"⪒\",glj:\"⪤\",gnap:\"⪊\",gnapprox:\"⪊\",gnE:\"≩\",gne:\"⪈\",gneq:\"⪈\",gneqq:\"≩\",gnsim:\"⋧\",Gopf:\"𝔾\",gopf:\"𝕘\",grave:\"`\",GreaterEqual:\"≥\",GreaterEqualLess:\"⋛\",GreaterFullEqual:\"≧\",GreaterGreater:\"⪢\",GreaterLess:\"≷\",GreaterSlantEqual:\"⩾\",GreaterTilde:\"≳\",Gscr:\"𝒢\",gscr:\"ℊ\",gsim:\"≳\",gsime:\"⪎\",gsiml:\"⪐\",GT:\">\",Gt:\"≫\",gt:\">\",gtcc:\"⪧\",gtcir:\"⩺\",gtdot:\"⋗\",gtlPar:\"⦕\",gtquest:\"⩼\",gtrapprox:\"⪆\",gtrarr:\"⥸\",gtrdot:\"⋗\",gtreqless:\"⋛\",gtreqqless:\"⪌\",gtrless:\"≷\",gtrsim:\"≳\",gvertneqq:\"≩︀\",gvnE:\"≩︀\",Hacek:\"ˇ\",hairsp:\" \",half:\"½\",hamilt:\"ℋ\",HARDcy:\"Ъ\",hardcy:\"ъ\",hArr:\"⇔\",harr:\"↔\",harrcir:\"⥈\",harrw:\"↭\",Hat:\"^\",hbar:\"ℏ\",Hcirc:\"Ĥ\",hcirc:\"ĥ\",hearts:\"♥\",heartsuit:\"♥\",hellip:\"…\",hercon:\"⊹\",Hfr:\"ℌ\",hfr:\"𝔥\",HilbertSpace:\"ℋ\",hksearow:\"⤥\",hkswarow:\"⤦\",hoarr:\"⇿\",homtht:\"∻\",hookleftarrow:\"↩\",hookrightarrow:\"↪\",Hopf:\"ℍ\",hopf:\"𝕙\",horbar:\"―\",HorizontalLine:\"─\",Hscr:\"ℋ\",hscr:\"𝒽\",hslash:\"ℏ\",Hstrok:\"Ħ\",hstrok:\"ħ\",HumpDownHump:\"≎\",HumpEqual:\"≏\",hybull:\"⁃\",hyphen:\"‐\",Iacute:\"Í\",iacute:\"í\",ic:\"⁣\",Icirc:\"Î\",icirc:\"î\",Icy:\"И\",icy:\"и\",Idot:\"İ\",IEcy:\"Е\",iecy:\"е\",iexcl:\"¡\",iff:\"⇔\",Ifr:\"ℑ\",ifr:\"𝔦\",Igrave:\"Ì\",igrave:\"ì\",ii:\"ⅈ\",iiiint:\"⨌\",iiint:\"∭\",iinfin:\"⧜\",iiota:\"℩\",IJlig:\"IJ\",ijlig:\"ij\",Im:\"ℑ\",Imacr:\"Ī\",imacr:\"ī\",image:\"ℑ\",ImaginaryI:\"ⅈ\",imagline:\"ℐ\",imagpart:\"ℑ\",imath:\"ı\",imof:\"⊷\",imped:\"Ƶ\",Implies:\"⇒\",in:\"∈\",incare:\"℅\",infin:\"∞\",infintie:\"⧝\",inodot:\"ı\",Int:\"∬\",int:\"∫\",intcal:\"⊺\",integers:\"ℤ\",Integral:\"∫\",intercal:\"⊺\",Intersection:\"⋂\",intlarhk:\"⨗\",intprod:\"⨼\",InvisibleComma:\"⁣\",InvisibleTimes:\"⁢\",IOcy:\"Ё\",iocy:\"ё\",Iogon:\"Į\",iogon:\"į\",Iopf:\"𝕀\",iopf:\"𝕚\",Iota:\"Ι\",iota:\"ι\",iprod:\"⨼\",iquest:\"¿\",Iscr:\"ℐ\",iscr:\"𝒾\",isin:\"∈\",isindot:\"⋵\",isinE:\"⋹\",isins:\"⋴\",isinsv:\"⋳\",isinv:\"∈\",it:\"⁢\",Itilde:\"Ĩ\",itilde:\"ĩ\",Iukcy:\"І\",iukcy:\"і\",Iuml:\"Ï\",iuml:\"ï\",Jcirc:\"Ĵ\",jcirc:\"ĵ\",Jcy:\"Й\",jcy:\"й\",Jfr:\"𝔍\",jfr:\"𝔧\",jmath:\"ȷ\",Jopf:\"𝕁\",jopf:\"𝕛\",Jscr:\"𝒥\",jscr:\"𝒿\",Jsercy:\"Ј\",jsercy:\"ј\",Jukcy:\"Є\",jukcy:\"є\",Kappa:\"Κ\",kappa:\"κ\",kappav:\"ϰ\",Kcedil:\"Ķ\",kcedil:\"ķ\",Kcy:\"К\",kcy:\"к\",Kfr:\"𝔎\",kfr:\"𝔨\",kgreen:\"ĸ\",KHcy:\"Х\",khcy:\"х\",KJcy:\"Ќ\",kjcy:\"ќ\",Kopf:\"𝕂\",kopf:\"𝕜\",Kscr:\"𝒦\",kscr:\"𝓀\",lAarr:\"⇚\",Lacute:\"Ĺ\",lacute:\"ĺ\",laemptyv:\"⦴\",lagran:\"ℒ\",Lambda:\"Λ\",lambda:\"λ\",Lang:\"⟪\",lang:\"⟨\",langd:\"⦑\",langle:\"⟨\",lap:\"⪅\",Laplacetrf:\"ℒ\",laquo:\"«\",Larr:\"↞\",lArr:\"⇐\",larr:\"←\",larrb:\"⇤\",larrbfs:\"⤟\",larrfs:\"⤝\",larrhk:\"↩\",larrlp:\"↫\",larrpl:\"⤹\",larrsim:\"⥳\",larrtl:\"↢\",lat:\"⪫\",lAtail:\"⤛\",latail:\"⤙\",late:\"⪭\",lates:\"⪭︀\",lBarr:\"⤎\",lbarr:\"⤌\",lbbrk:\"❲\",lbrace:\"{\",lbrack:\"[\",lbrke:\"⦋\",lbrksld:\"⦏\",lbrkslu:\"⦍\",Lcaron:\"Ľ\",lcaron:\"ľ\",Lcedil:\"Ļ\",lcedil:\"ļ\",lceil:\"⌈\",lcub:\"{\",Lcy:\"Л\",lcy:\"л\",ldca:\"⤶\",ldquo:\"“\",ldquor:\"„\",ldrdhar:\"⥧\",ldrushar:\"⥋\",ldsh:\"↲\",lE:\"≦\",le:\"≤\",LeftAngleBracket:\"⟨\",LeftArrow:\"←\",Leftarrow:\"⇐\",leftarrow:\"←\",LeftArrowBar:\"⇤\",LeftArrowRightArrow:\"⇆\",leftarrowtail:\"↢\",LeftCeiling:\"⌈\",LeftDoubleBracket:\"⟦\",LeftDownTeeVector:\"⥡\",LeftDownVector:\"⇃\",LeftDownVectorBar:\"⥙\",LeftFloor:\"⌊\",leftharpoondown:\"↽\",leftharpoonup:\"↼\",leftleftarrows:\"⇇\",LeftRightArrow:\"↔\",Leftrightarrow:\"⇔\",leftrightarrow:\"↔\",leftrightarrows:\"⇆\",leftrightharpoons:\"⇋\",leftrightsquigarrow:\"↭\",LeftRightVector:\"⥎\",LeftTee:\"⊣\",LeftTeeArrow:\"↤\",LeftTeeVector:\"⥚\",leftthreetimes:\"⋋\",LeftTriangle:\"⊲\",LeftTriangleBar:\"⧏\",LeftTriangleEqual:\"⊴\",LeftUpDownVector:\"⥑\",LeftUpTeeVector:\"⥠\",LeftUpVector:\"↿\",LeftUpVectorBar:\"⥘\",LeftVector:\"↼\",LeftVectorBar:\"⥒\",lEg:\"⪋\",leg:\"⋚\",leq:\"≤\",leqq:\"≦\",leqslant:\"⩽\",les:\"⩽\",lescc:\"⪨\",lesdot:\"⩿\",lesdoto:\"⪁\",lesdotor:\"⪃\",lesg:\"⋚︀\",lesges:\"⪓\",lessapprox:\"⪅\",lessdot:\"⋖\",lesseqgtr:\"⋚\",lesseqqgtr:\"⪋\",LessEqualGreater:\"⋚\",LessFullEqual:\"≦\",LessGreater:\"≶\",lessgtr:\"≶\",LessLess:\"⪡\",lesssim:\"≲\",LessSlantEqual:\"⩽\",LessTilde:\"≲\",lfisht:\"⥼\",lfloor:\"⌊\",Lfr:\"𝔏\",lfr:\"𝔩\",lg:\"≶\",lgE:\"⪑\",lHar:\"⥢\",lhard:\"↽\",lharu:\"↼\",lharul:\"⥪\",lhblk:\"▄\",LJcy:\"Љ\",ljcy:\"љ\",Ll:\"⋘\",ll:\"≪\",llarr:\"⇇\",llcorner:\"⌞\",Lleftarrow:\"⇚\",llhard:\"⥫\",lltri:\"◺\",Lmidot:\"Ŀ\",lmidot:\"ŀ\",lmoust:\"⎰\",lmoustache:\"⎰\",lnap:\"⪉\",lnapprox:\"⪉\",lnE:\"≨\",lne:\"⪇\",lneq:\"⪇\",lneqq:\"≨\",lnsim:\"⋦\",loang:\"⟬\",loarr:\"⇽\",lobrk:\"⟦\",LongLeftArrow:\"⟵\",Longleftarrow:\"⟸\",longleftarrow:\"⟵\",LongLeftRightArrow:\"⟷\",Longleftrightarrow:\"⟺\",longleftrightarrow:\"⟷\",longmapsto:\"⟼\",LongRightArrow:\"⟶\",Longrightarrow:\"⟹\",longrightarrow:\"⟶\",looparrowleft:\"↫\",looparrowright:\"↬\",lopar:\"⦅\",Lopf:\"𝕃\",lopf:\"𝕝\",loplus:\"⨭\",lotimes:\"⨴\",lowast:\"∗\",lowbar:\"_\",LowerLeftArrow:\"↙\",LowerRightArrow:\"↘\",loz:\"◊\",lozenge:\"◊\",lozf:\"⧫\",lpar:\"(\",lparlt:\"⦓\",lrarr:\"⇆\",lrcorner:\"⌟\",lrhar:\"⇋\",lrhard:\"⥭\",lrm:\"‎\",lrtri:\"⊿\",lsaquo:\"‹\",Lscr:\"ℒ\",lscr:\"𝓁\",Lsh:\"↰\",lsh:\"↰\",lsim:\"≲\",lsime:\"⪍\",lsimg:\"⪏\",lsqb:\"[\",lsquo:\"‘\",lsquor:\"‚\",Lstrok:\"Ł\",lstrok:\"ł\",LT:\"<\",Lt:\"≪\",lt:\"<\",ltcc:\"⪦\",ltcir:\"⩹\",ltdot:\"⋖\",lthree:\"⋋\",ltimes:\"⋉\",ltlarr:\"⥶\",ltquest:\"⩻\",ltri:\"◃\",ltrie:\"⊴\",ltrif:\"◂\",ltrPar:\"⦖\",lurdshar:\"⥊\",luruhar:\"⥦\",lvertneqq:\"≨︀\",lvnE:\"≨︀\",macr:\"¯\",male:\"♂\",malt:\"✠\",maltese:\"✠\",Map:\"⤅\",map:\"↦\",mapsto:\"↦\",mapstodown:\"↧\",mapstoleft:\"↤\",mapstoup:\"↥\",marker:\"▮\",mcomma:\"⨩\",Mcy:\"М\",mcy:\"м\",mdash:\"—\",mDDot:\"∺\",measuredangle:\"∡\",MediumSpace:\" \",Mellintrf:\"ℳ\",Mfr:\"𝔐\",mfr:\"𝔪\",mho:\"℧\",micro:\"µ\",mid:\"∣\",midast:\"*\",midcir:\"⫰\",middot:\"·\",minus:\"−\",minusb:\"⊟\",minusd:\"∸\",minusdu:\"⨪\",MinusPlus:\"∓\",mlcp:\"⫛\",mldr:\"…\",mnplus:\"∓\",models:\"⊧\",Mopf:\"𝕄\",mopf:\"𝕞\",mp:\"∓\",Mscr:\"ℳ\",mscr:\"𝓂\",mstpos:\"∾\",Mu:\"Μ\",mu:\"μ\",multimap:\"⊸\",mumap:\"⊸\",nabla:\"∇\",Nacute:\"Ń\",nacute:\"ń\",nang:\"∠⃒\",nap:\"≉\",napE:\"⩰̸\",napid:\"≋̸\",napos:\"ʼn\",napprox:\"≉\",natur:\"♮\",natural:\"♮\",naturals:\"ℕ\",nbsp:\" \",nbump:\"≎̸\",nbumpe:\"≏̸\",ncap:\"⩃\",Ncaron:\"Ň\",ncaron:\"ň\",Ncedil:\"Ņ\",ncedil:\"ņ\",ncong:\"≇\",ncongdot:\"⩭̸\",ncup:\"⩂\",Ncy:\"Н\",ncy:\"н\",ndash:\"–\",ne:\"≠\",nearhk:\"⤤\",neArr:\"⇗\",nearr:\"↗\",nearrow:\"↗\",nedot:\"≐̸\",NegativeMediumSpace:\"​\",NegativeThickSpace:\"​\",NegativeThinSpace:\"​\",NegativeVeryThinSpace:\"​\",nequiv:\"≢\",nesear:\"⤨\",nesim:\"≂̸\",NestedGreaterGreater:\"≫\",NestedLessLess:\"≪\",NewLine:\"\\n\",nexist:\"∄\",nexists:\"∄\",Nfr:\"𝔑\",nfr:\"𝔫\",ngE:\"≧̸\",nge:\"≱\",ngeq:\"≱\",ngeqq:\"≧̸\",ngeqslant:\"⩾̸\",nges:\"⩾̸\",nGg:\"⋙̸\",ngsim:\"≵\",nGt:\"≫⃒\",ngt:\"≯\",ngtr:\"≯\",nGtv:\"≫̸\",nhArr:\"⇎\",nharr:\"↮\",nhpar:\"⫲\",ni:\"∋\",nis:\"⋼\",nisd:\"⋺\",niv:\"∋\",NJcy:\"Њ\",njcy:\"њ\",nlArr:\"⇍\",nlarr:\"↚\",nldr:\"‥\",nlE:\"≦̸\",nle:\"≰\",nLeftarrow:\"⇍\",nleftarrow:\"↚\",nLeftrightarrow:\"⇎\",nleftrightarrow:\"↮\",nleq:\"≰\",nleqq:\"≦̸\",nleqslant:\"⩽̸\",nles:\"⩽̸\",nless:\"≮\",nLl:\"⋘̸\",nlsim:\"≴\",nLt:\"≪⃒\",nlt:\"≮\",nltri:\"⋪\",nltrie:\"⋬\",nLtv:\"≪̸\",nmid:\"∤\",NoBreak:\"⁠\",NonBreakingSpace:\" \",Nopf:\"ℕ\",nopf:\"𝕟\",Not:\"⫬\",not:\"¬\",NotCongruent:\"≢\",NotCupCap:\"≭\",NotDoubleVerticalBar:\"∦\",NotElement:\"∉\",NotEqual:\"≠\",NotEqualTilde:\"≂̸\",NotExists:\"∄\",NotGreater:\"≯\",NotGreaterEqual:\"≱\",NotGreaterFullEqual:\"≧̸\",NotGreaterGreater:\"≫̸\",NotGreaterLess:\"≹\",NotGreaterSlantEqual:\"⩾̸\",NotGreaterTilde:\"≵\",NotHumpDownHump:\"≎̸\",NotHumpEqual:\"≏̸\",notin:\"∉\",notindot:\"⋵̸\",notinE:\"⋹̸\",notinva:\"∉\",notinvb:\"⋷\",notinvc:\"⋶\",NotLeftTriangle:\"⋪\",NotLeftTriangleBar:\"⧏̸\",NotLeftTriangleEqual:\"⋬\",NotLess:\"≮\",NotLessEqual:\"≰\",NotLessGreater:\"≸\",NotLessLess:\"≪̸\",NotLessSlantEqual:\"⩽̸\",NotLessTilde:\"≴\",NotNestedGreaterGreater:\"⪢̸\",NotNestedLessLess:\"⪡̸\",notni:\"∌\",notniva:\"∌\",notnivb:\"⋾\",notnivc:\"⋽\",NotPrecedes:\"⊀\",NotPrecedesEqual:\"⪯̸\",NotPrecedesSlantEqual:\"⋠\",NotReverseElement:\"∌\",NotRightTriangle:\"⋫\",NotRightTriangleBar:\"⧐̸\",NotRightTriangleEqual:\"⋭\",NotSquareSubset:\"⊏̸\",NotSquareSubsetEqual:\"⋢\",NotSquareSuperset:\"⊐̸\",NotSquareSupersetEqual:\"⋣\",NotSubset:\"⊂⃒\",NotSubsetEqual:\"⊈\",NotSucceeds:\"⊁\",NotSucceedsEqual:\"⪰̸\",NotSucceedsSlantEqual:\"⋡\",NotSucceedsTilde:\"≿̸\",NotSuperset:\"⊃⃒\",NotSupersetEqual:\"⊉\",NotTilde:\"≁\",NotTildeEqual:\"≄\",NotTildeFullEqual:\"≇\",NotTildeTilde:\"≉\",NotVerticalBar:\"∤\",npar:\"∦\",nparallel:\"∦\",nparsl:\"⫽⃥\",npart:\"∂̸\",npolint:\"⨔\",npr:\"⊀\",nprcue:\"⋠\",npre:\"⪯̸\",nprec:\"⊀\",npreceq:\"⪯̸\",nrArr:\"⇏\",nrarr:\"↛\",nrarrc:\"⤳̸\",nrarrw:\"↝̸\",nRightarrow:\"⇏\",nrightarrow:\"↛\",nrtri:\"⋫\",nrtrie:\"⋭\",nsc:\"⊁\",nsccue:\"⋡\",nsce:\"⪰̸\",Nscr:\"𝒩\",nscr:\"𝓃\",nshortmid:\"∤\",nshortparallel:\"∦\",nsim:\"≁\",nsime:\"≄\",nsimeq:\"≄\",nsmid:\"∤\",nspar:\"∦\",nsqsube:\"⋢\",nsqsupe:\"⋣\",nsub:\"⊄\",nsubE:\"⫅̸\",nsube:\"⊈\",nsubset:\"⊂⃒\",nsubseteq:\"⊈\",nsubseteqq:\"⫅̸\",nsucc:\"⊁\",nsucceq:\"⪰̸\",nsup:\"⊅\",nsupE:\"⫆̸\",nsupe:\"⊉\",nsupset:\"⊃⃒\",nsupseteq:\"⊉\",nsupseteqq:\"⫆̸\",ntgl:\"≹\",Ntilde:\"Ñ\",ntilde:\"ñ\",ntlg:\"≸\",ntriangleleft:\"⋪\",ntrianglelefteq:\"⋬\",ntriangleright:\"⋫\",ntrianglerighteq:\"⋭\",Nu:\"Ν\",nu:\"ν\",num:\"#\",numero:\"№\",numsp:\" \",nvap:\"≍⃒\",nVDash:\"⊯\",nVdash:\"⊮\",nvDash:\"⊭\",nvdash:\"⊬\",nvge:\"≥⃒\",nvgt:\">⃒\",nvHarr:\"⤄\",nvinfin:\"⧞\",nvlArr:\"⤂\",nvle:\"≤⃒\",nvlt:\"<⃒\",nvltrie:\"⊴⃒\",nvrArr:\"⤃\",nvrtrie:\"⊵⃒\",nvsim:\"∼⃒\",nwarhk:\"⤣\",nwArr:\"⇖\",nwarr:\"↖\",nwarrow:\"↖\",nwnear:\"⤧\",Oacute:\"Ó\",oacute:\"ó\",oast:\"⊛\",ocir:\"⊚\",Ocirc:\"Ô\",ocirc:\"ô\",Ocy:\"О\",ocy:\"о\",odash:\"⊝\",Odblac:\"Ő\",odblac:\"ő\",odiv:\"⨸\",odot:\"⊙\",odsold:\"⦼\",OElig:\"Œ\",oelig:\"œ\",ofcir:\"⦿\",Ofr:\"𝔒\",ofr:\"𝔬\",ogon:\"˛\",Ograve:\"Ò\",ograve:\"ò\",ogt:\"⧁\",ohbar:\"⦵\",ohm:\"Ω\",oint:\"∮\",olarr:\"↺\",olcir:\"⦾\",olcross:\"⦻\",oline:\"‾\",olt:\"⧀\",Omacr:\"Ō\",omacr:\"ō\",Omega:\"Ω\",omega:\"ω\",Omicron:\"Ο\",omicron:\"ο\",omid:\"⦶\",ominus:\"⊖\",Oopf:\"𝕆\",oopf:\"𝕠\",opar:\"⦷\",OpenCurlyDoubleQuote:\"“\",OpenCurlyQuote:\"‘\",operp:\"⦹\",oplus:\"⊕\",Or:\"⩔\",or:\"∨\",orarr:\"↻\",ord:\"⩝\",order:\"ℴ\",orderof:\"ℴ\",ordf:\"ª\",ordm:\"º\",origof:\"⊶\",oror:\"⩖\",orslope:\"⩗\",orv:\"⩛\",oS:\"Ⓢ\",Oscr:\"𝒪\",oscr:\"ℴ\",Oslash:\"Ø\",oslash:\"ø\",osol:\"⊘\",Otilde:\"Õ\",otilde:\"õ\",Otimes:\"⨷\",otimes:\"⊗\",otimesas:\"⨶\",Ouml:\"Ö\",ouml:\"ö\",ovbar:\"⌽\",OverBar:\"‾\",OverBrace:\"⏞\",OverBracket:\"⎴\",OverParenthesis:\"⏜\",par:\"∥\",para:\"¶\",parallel:\"∥\",parsim:\"⫳\",parsl:\"⫽\",part:\"∂\",PartialD:\"∂\",Pcy:\"П\",pcy:\"п\",percnt:\"%\",period:\".\",permil:\"‰\",perp:\"⊥\",pertenk:\"‱\",Pfr:\"𝔓\",pfr:\"𝔭\",Phi:\"Φ\",phi:\"φ\",phiv:\"ϕ\",phmmat:\"ℳ\",phone:\"☎\",Pi:\"Π\",pi:\"π\",pitchfork:\"⋔\",piv:\"ϖ\",planck:\"ℏ\",planckh:\"ℎ\",plankv:\"ℏ\",plus:\"+\",plusacir:\"⨣\",plusb:\"⊞\",pluscir:\"⨢\",plusdo:\"∔\",plusdu:\"⨥\",pluse:\"⩲\",PlusMinus:\"±\",plusmn:\"±\",plussim:\"⨦\",plustwo:\"⨧\",pm:\"±\",Poincareplane:\"ℌ\",pointint:\"⨕\",Popf:\"ℙ\",popf:\"𝕡\",pound:\"£\",Pr:\"⪻\",pr:\"≺\",prap:\"⪷\",prcue:\"≼\",prE:\"⪳\",pre:\"⪯\",prec:\"≺\",precapprox:\"⪷\",preccurlyeq:\"≼\",Precedes:\"≺\",PrecedesEqual:\"⪯\",PrecedesSlantEqual:\"≼\",PrecedesTilde:\"≾\",preceq:\"⪯\",precnapprox:\"⪹\",precneqq:\"⪵\",precnsim:\"⋨\",precsim:\"≾\",Prime:\"″\",prime:\"′\",primes:\"ℙ\",prnap:\"⪹\",prnE:\"⪵\",prnsim:\"⋨\",prod:\"∏\",Product:\"∏\",profalar:\"⌮\",profline:\"⌒\",profsurf:\"⌓\",prop:\"∝\",Proportion:\"∷\",Proportional:\"∝\",propto:\"∝\",prsim:\"≾\",prurel:\"⊰\",Pscr:\"𝒫\",pscr:\"𝓅\",Psi:\"Ψ\",psi:\"ψ\",puncsp:\" \",Qfr:\"𝔔\",qfr:\"𝔮\",qint:\"⨌\",Qopf:\"ℚ\",qopf:\"𝕢\",qprime:\"⁗\",Qscr:\"𝒬\",qscr:\"𝓆\",quaternions:\"ℍ\",quatint:\"⨖\",quest:\"?\",questeq:\"≟\",QUOT:'\"',quot:'\"',rAarr:\"⇛\",race:\"∽̱\",Racute:\"Ŕ\",racute:\"ŕ\",radic:\"√\",raemptyv:\"⦳\",Rang:\"⟫\",rang:\"⟩\",rangd:\"⦒\",range:\"⦥\",rangle:\"⟩\",raquo:\"»\",Rarr:\"↠\",rArr:\"⇒\",rarr:\"→\",rarrap:\"⥵\",rarrb:\"⇥\",rarrbfs:\"⤠\",rarrc:\"⤳\",rarrfs:\"⤞\",rarrhk:\"↪\",rarrlp:\"↬\",rarrpl:\"⥅\",rarrsim:\"⥴\",Rarrtl:\"⤖\",rarrtl:\"↣\",rarrw:\"↝\",rAtail:\"⤜\",ratail:\"⤚\",ratio:\"∶\",rationals:\"ℚ\",RBarr:\"⤐\",rBarr:\"⤏\",rbarr:\"⤍\",rbbrk:\"❳\",rbrace:\"}\",rbrack:\"]\",rbrke:\"⦌\",rbrksld:\"⦎\",rbrkslu:\"⦐\",Rcaron:\"Ř\",rcaron:\"ř\",Rcedil:\"Ŗ\",rcedil:\"ŗ\",rceil:\"⌉\",rcub:\"}\",Rcy:\"Р\",rcy:\"р\",rdca:\"⤷\",rdldhar:\"⥩\",rdquo:\"”\",rdquor:\"”\",rdsh:\"↳\",Re:\"ℜ\",real:\"ℜ\",realine:\"ℛ\",realpart:\"ℜ\",reals:\"ℝ\",rect:\"▭\",REG:\"®\",reg:\"®\",ReverseElement:\"∋\",ReverseEquilibrium:\"⇋\",ReverseUpEquilibrium:\"⥯\",rfisht:\"⥽\",rfloor:\"⌋\",Rfr:\"ℜ\",rfr:\"𝔯\",rHar:\"⥤\",rhard:\"⇁\",rharu:\"⇀\",rharul:\"⥬\",Rho:\"Ρ\",rho:\"ρ\",rhov:\"ϱ\",RightAngleBracket:\"⟩\",RightArrow:\"→\",Rightarrow:\"⇒\",rightarrow:\"→\",RightArrowBar:\"⇥\",RightArrowLeftArrow:\"⇄\",rightarrowtail:\"↣\",RightCeiling:\"⌉\",RightDoubleBracket:\"⟧\",RightDownTeeVector:\"⥝\",RightDownVector:\"⇂\",RightDownVectorBar:\"⥕\",RightFloor:\"⌋\",rightharpoondown:\"⇁\",rightharpoonup:\"⇀\",rightleftarrows:\"⇄\",rightleftharpoons:\"⇌\",rightrightarrows:\"⇉\",rightsquigarrow:\"↝\",RightTee:\"⊢\",RightTeeArrow:\"↦\",RightTeeVector:\"⥛\",rightthreetimes:\"⋌\",RightTriangle:\"⊳\",RightTriangleBar:\"⧐\",RightTriangleEqual:\"⊵\",RightUpDownVector:\"⥏\",RightUpTeeVector:\"⥜\",RightUpVector:\"↾\",RightUpVectorBar:\"⥔\",RightVector:\"⇀\",RightVectorBar:\"⥓\",ring:\"˚\",risingdotseq:\"≓\",rlarr:\"⇄\",rlhar:\"⇌\",rlm:\"‏\",rmoust:\"⎱\",rmoustache:\"⎱\",rnmid:\"⫮\",roang:\"⟭\",roarr:\"⇾\",robrk:\"⟧\",ropar:\"⦆\",Ropf:\"ℝ\",ropf:\"𝕣\",roplus:\"⨮\",rotimes:\"⨵\",RoundImplies:\"⥰\",rpar:\")\",rpargt:\"⦔\",rppolint:\"⨒\",rrarr:\"⇉\",Rrightarrow:\"⇛\",rsaquo:\"›\",Rscr:\"ℛ\",rscr:\"𝓇\",Rsh:\"↱\",rsh:\"↱\",rsqb:\"]\",rsquo:\"’\",rsquor:\"’\",rthree:\"⋌\",rtimes:\"⋊\",rtri:\"▹\",rtrie:\"⊵\",rtrif:\"▸\",rtriltri:\"⧎\",RuleDelayed:\"⧴\",ruluhar:\"⥨\",rx:\"℞\",Sacute:\"Ś\",sacute:\"ś\",sbquo:\"‚\",Sc:\"⪼\",sc:\"≻\",scap:\"⪸\",Scaron:\"Š\",scaron:\"š\",sccue:\"≽\",scE:\"⪴\",sce:\"⪰\",Scedil:\"Ş\",scedil:\"ş\",Scirc:\"Ŝ\",scirc:\"ŝ\",scnap:\"⪺\",scnE:\"⪶\",scnsim:\"⋩\",scpolint:\"⨓\",scsim:\"≿\",Scy:\"С\",scy:\"с\",sdot:\"⋅\",sdotb:\"⊡\",sdote:\"⩦\",searhk:\"⤥\",seArr:\"⇘\",searr:\"↘\",searrow:\"↘\",sect:\"§\",semi:\";\",seswar:\"⤩\",setminus:\"∖\",setmn:\"∖\",sext:\"✶\",Sfr:\"𝔖\",sfr:\"𝔰\",sfrown:\"⌢\",sharp:\"♯\",SHCHcy:\"Щ\",shchcy:\"щ\",SHcy:\"Ш\",shcy:\"ш\",ShortDownArrow:\"↓\",ShortLeftArrow:\"←\",shortmid:\"∣\",shortparallel:\"∥\",ShortRightArrow:\"→\",ShortUpArrow:\"↑\",shy:\"­\",Sigma:\"Σ\",sigma:\"σ\",sigmaf:\"ς\",sigmav:\"ς\",sim:\"∼\",simdot:\"⩪\",sime:\"≃\",simeq:\"≃\",simg:\"⪞\",simgE:\"⪠\",siml:\"⪝\",simlE:\"⪟\",simne:\"≆\",simplus:\"⨤\",simrarr:\"⥲\",slarr:\"←\",SmallCircle:\"∘\",smallsetminus:\"∖\",smashp:\"⨳\",smeparsl:\"⧤\",smid:\"∣\",smile:\"⌣\",smt:\"⪪\",smte:\"⪬\",smtes:\"⪬︀\",SOFTcy:\"Ь\",softcy:\"ь\",sol:\"/\",solb:\"⧄\",solbar:\"⌿\",Sopf:\"𝕊\",sopf:\"𝕤\",spades:\"♠\",spadesuit:\"♠\",spar:\"∥\",sqcap:\"⊓\",sqcaps:\"⊓︀\",sqcup:\"⊔\",sqcups:\"⊔︀\",Sqrt:\"√\",sqsub:\"⊏\",sqsube:\"⊑\",sqsubset:\"⊏\",sqsubseteq:\"⊑\",sqsup:\"⊐\",sqsupe:\"⊒\",sqsupset:\"⊐\",sqsupseteq:\"⊒\",squ:\"□\",Square:\"□\",square:\"□\",SquareIntersection:\"⊓\",SquareSubset:\"⊏\",SquareSubsetEqual:\"⊑\",SquareSuperset:\"⊐\",SquareSupersetEqual:\"⊒\",SquareUnion:\"⊔\",squarf:\"▪\",squf:\"▪\",srarr:\"→\",Sscr:\"𝒮\",sscr:\"𝓈\",ssetmn:\"∖\",ssmile:\"⌣\",sstarf:\"⋆\",Star:\"⋆\",star:\"☆\",starf:\"★\",straightepsilon:\"ϵ\",straightphi:\"ϕ\",strns:\"¯\",Sub:\"⋐\",sub:\"⊂\",subdot:\"⪽\",subE:\"⫅\",sube:\"⊆\",subedot:\"⫃\",submult:\"⫁\",subnE:\"⫋\",subne:\"⊊\",subplus:\"⪿\",subrarr:\"⥹\",Subset:\"⋐\",subset:\"⊂\",subseteq:\"⊆\",subseteqq:\"⫅\",SubsetEqual:\"⊆\",subsetneq:\"⊊\",subsetneqq:\"⫋\",subsim:\"⫇\",subsub:\"⫕\",subsup:\"⫓\",succ:\"≻\",succapprox:\"⪸\",succcurlyeq:\"≽\",Succeeds:\"≻\",SucceedsEqual:\"⪰\",SucceedsSlantEqual:\"≽\",SucceedsTilde:\"≿\",succeq:\"⪰\",succnapprox:\"⪺\",succneqq:\"⪶\",succnsim:\"⋩\",succsim:\"≿\",SuchThat:\"∋\",Sum:\"∑\",sum:\"∑\",sung:\"♪\",Sup:\"⋑\",sup:\"⊃\",sup1:\"¹\",sup2:\"²\",sup3:\"³\",supdot:\"⪾\",supdsub:\"⫘\",supE:\"⫆\",supe:\"⊇\",supedot:\"⫄\",Superset:\"⊃\",SupersetEqual:\"⊇\",suphsol:\"⟉\",suphsub:\"⫗\",suplarr:\"⥻\",supmult:\"⫂\",supnE:\"⫌\",supne:\"⊋\",supplus:\"⫀\",Supset:\"⋑\",supset:\"⊃\",supseteq:\"⊇\",supseteqq:\"⫆\",supsetneq:\"⊋\",supsetneqq:\"⫌\",supsim:\"⫈\",supsub:\"⫔\",supsup:\"⫖\",swarhk:\"⤦\",swArr:\"⇙\",swarr:\"↙\",swarrow:\"↙\",swnwar:\"⤪\",szlig:\"ß\",Tab:\"\\t\",target:\"⌖\",Tau:\"Τ\",tau:\"τ\",tbrk:\"⎴\",Tcaron:\"Ť\",tcaron:\"ť\",Tcedil:\"Ţ\",tcedil:\"ţ\",Tcy:\"Т\",tcy:\"т\",tdot:\"⃛\",telrec:\"⌕\",Tfr:\"𝔗\",tfr:\"𝔱\",there4:\"∴\",Therefore:\"∴\",therefore:\"∴\",Theta:\"Θ\",theta:\"θ\",thetasym:\"ϑ\",thetav:\"ϑ\",thickapprox:\"≈\",thicksim:\"∼\",ThickSpace:\"  \",thinsp:\" \",ThinSpace:\" \",thkap:\"≈\",thksim:\"∼\",THORN:\"Þ\",thorn:\"þ\",Tilde:\"∼\",tilde:\"˜\",TildeEqual:\"≃\",TildeFullEqual:\"≅\",TildeTilde:\"≈\",times:\"×\",timesb:\"⊠\",timesbar:\"⨱\",timesd:\"⨰\",tint:\"∭\",toea:\"⤨\",top:\"⊤\",topbot:\"⌶\",topcir:\"⫱\",Topf:\"𝕋\",topf:\"𝕥\",topfork:\"⫚\",tosa:\"⤩\",tprime:\"‴\",TRADE:\"™\",trade:\"™\",triangle:\"▵\",triangledown:\"▿\",triangleleft:\"◃\",trianglelefteq:\"⊴\",triangleq:\"≜\",triangleright:\"▹\",trianglerighteq:\"⊵\",tridot:\"◬\",trie:\"≜\",triminus:\"⨺\",TripleDot:\"⃛\",triplus:\"⨹\",trisb:\"⧍\",tritime:\"⨻\",trpezium:\"⏢\",Tscr:\"𝒯\",tscr:\"𝓉\",TScy:\"Ц\",tscy:\"ц\",TSHcy:\"Ћ\",tshcy:\"ћ\",Tstrok:\"Ŧ\",tstrok:\"ŧ\",twixt:\"≬\",twoheadleftarrow:\"↞\",twoheadrightarrow:\"↠\",Uacute:\"Ú\",uacute:\"ú\",Uarr:\"↟\",uArr:\"⇑\",uarr:\"↑\",Uarrocir:\"⥉\",Ubrcy:\"Ў\",ubrcy:\"ў\",Ubreve:\"Ŭ\",ubreve:\"ŭ\",Ucirc:\"Û\",ucirc:\"û\",Ucy:\"У\",ucy:\"у\",udarr:\"⇅\",Udblac:\"Ű\",udblac:\"ű\",udhar:\"⥮\",ufisht:\"⥾\",Ufr:\"𝔘\",ufr:\"𝔲\",Ugrave:\"Ù\",ugrave:\"ù\",uHar:\"⥣\",uharl:\"↿\",uharr:\"↾\",uhblk:\"▀\",ulcorn:\"⌜\",ulcorner:\"⌜\",ulcrop:\"⌏\",ultri:\"◸\",Umacr:\"Ū\",umacr:\"ū\",uml:\"¨\",UnderBar:\"_\",UnderBrace:\"⏟\",UnderBracket:\"⎵\",UnderParenthesis:\"⏝\",Union:\"⋃\",UnionPlus:\"⊎\",Uogon:\"Ų\",uogon:\"ų\",Uopf:\"𝕌\",uopf:\"𝕦\",UpArrow:\"↑\",Uparrow:\"⇑\",uparrow:\"↑\",UpArrowBar:\"⤒\",UpArrowDownArrow:\"⇅\",UpDownArrow:\"↕\",Updownarrow:\"⇕\",updownarrow:\"↕\",UpEquilibrium:\"⥮\",upharpoonleft:\"↿\",upharpoonright:\"↾\",uplus:\"⊎\",UpperLeftArrow:\"↖\",UpperRightArrow:\"↗\",Upsi:\"ϒ\",upsi:\"υ\",upsih:\"ϒ\",Upsilon:\"Υ\",upsilon:\"υ\",UpTee:\"⊥\",UpTeeArrow:\"↥\",upuparrows:\"⇈\",urcorn:\"⌝\",urcorner:\"⌝\",urcrop:\"⌎\",Uring:\"Ů\",uring:\"ů\",urtri:\"◹\",Uscr:\"𝒰\",uscr:\"𝓊\",utdot:\"⋰\",Utilde:\"Ũ\",utilde:\"ũ\",utri:\"▵\",utrif:\"▴\",uuarr:\"⇈\",Uuml:\"Ü\",uuml:\"ü\",uwangle:\"⦧\",vangrt:\"⦜\",varepsilon:\"ϵ\",varkappa:\"ϰ\",varnothing:\"∅\",varphi:\"ϕ\",varpi:\"ϖ\",varpropto:\"∝\",vArr:\"⇕\",varr:\"↕\",varrho:\"ϱ\",varsigma:\"ς\",varsubsetneq:\"⊊︀\",varsubsetneqq:\"⫋︀\",varsupsetneq:\"⊋︀\",varsupsetneqq:\"⫌︀\",vartheta:\"ϑ\",vartriangleleft:\"⊲\",vartriangleright:\"⊳\",Vbar:\"⫫\",vBar:\"⫨\",vBarv:\"⫩\",Vcy:\"В\",vcy:\"в\",VDash:\"⊫\",Vdash:\"⊩\",vDash:\"⊨\",vdash:\"⊢\",Vdashl:\"⫦\",Vee:\"⋁\",vee:\"∨\",veebar:\"⊻\",veeeq:\"≚\",vellip:\"⋮\",Verbar:\"‖\",verbar:\"|\",Vert:\"‖\",vert:\"|\",VerticalBar:\"∣\",VerticalLine:\"|\",VerticalSeparator:\"❘\",VerticalTilde:\"≀\",VeryThinSpace:\" \",Vfr:\"𝔙\",vfr:\"𝔳\",vltri:\"⊲\",vnsub:\"⊂⃒\",vnsup:\"⊃⃒\",Vopf:\"𝕍\",vopf:\"𝕧\",vprop:\"∝\",vrtri:\"⊳\",Vscr:\"𝒱\",vscr:\"𝓋\",vsubnE:\"⫋︀\",vsubne:\"⊊︀\",vsupnE:\"⫌︀\",vsupne:\"⊋︀\",Vvdash:\"⊪\",vzigzag:\"⦚\",Wcirc:\"Ŵ\",wcirc:\"ŵ\",wedbar:\"⩟\",Wedge:\"⋀\",wedge:\"∧\",wedgeq:\"≙\",weierp:\"℘\",Wfr:\"𝔚\",wfr:\"𝔴\",Wopf:\"𝕎\",wopf:\"𝕨\",wp:\"℘\",wr:\"≀\",wreath:\"≀\",Wscr:\"𝒲\",wscr:\"𝓌\",xcap:\"⋂\",xcirc:\"◯\",xcup:\"⋃\",xdtri:\"▽\",Xfr:\"𝔛\",xfr:\"𝔵\",xhArr:\"⟺\",xharr:\"⟷\",Xi:\"Ξ\",xi:\"ξ\",xlArr:\"⟸\",xlarr:\"⟵\",xmap:\"⟼\",xnis:\"⋻\",xodot:\"⨀\",Xopf:\"𝕏\",xopf:\"𝕩\",xoplus:\"⨁\",xotime:\"⨂\",xrArr:\"⟹\",xrarr:\"⟶\",Xscr:\"𝒳\",xscr:\"𝓍\",xsqcup:\"⨆\",xuplus:\"⨄\",xutri:\"△\",xvee:\"⋁\",xwedge:\"⋀\",Yacute:\"Ý\",yacute:\"ý\",YAcy:\"Я\",yacy:\"я\",Ycirc:\"Ŷ\",ycirc:\"ŷ\",Ycy:\"Ы\",ycy:\"ы\",yen:\"¥\",Yfr:\"𝔜\",yfr:\"𝔶\",YIcy:\"Ї\",yicy:\"ї\",Yopf:\"𝕐\",yopf:\"𝕪\",Yscr:\"𝒴\",yscr:\"𝓎\",YUcy:\"Ю\",yucy:\"ю\",Yuml:\"Ÿ\",yuml:\"ÿ\",Zacute:\"Ź\",zacute:\"ź\",Zcaron:\"Ž\",zcaron:\"ž\",Zcy:\"З\",zcy:\"з\",Zdot:\"Ż\",zdot:\"ż\",zeetrf:\"ℨ\",ZeroWidthSpace:\"​\",Zeta:\"Ζ\",zeta:\"ζ\",Zfr:\"ℨ\",zfr:\"𝔷\",ZHcy:\"Ж\",zhcy:\"ж\",zigrarr:\"⇝\",Zopf:\"ℤ\",zopf:\"𝕫\",Zscr:\"𝒵\",zscr:\"𝓏\",zwj:\"‍\",zwnj:\"‌\"},r=Object.prototype.hasOwnProperty;function n(e){return o=e,(n=t)&&r.call(n,o)?t[e]:e;var n,o}var o=Object.prototype.hasOwnProperty;function s(e,t){return!!e&&o.call(e,t)}function i(e){return[].slice.call(arguments,1).forEach(function(t){if(t){if(\"object\"!=typeof t)throw new TypeError(t+\"must be object\");Object.keys(t).forEach(function(r){e[r]=t[r]})}}),e}var a=/\\\\([\\\\!\"#$%&'()*+,.\\/:;<=>?@[\\]^_`{|}~-])/g;function u(e){return e.indexOf(\"\\\\\")<0?e:e.replace(a,\"$1\")}function l(e){return!(e>=55296&&e<=57343)&&(!(e>=64976&&e<=65007)&&(65535!=(65535&e)&&65534!=(65535&e)&&(!(e>=0&&e<=8)&&(11!==e&&(!(e>=14&&e<=31)&&(!(e>=127&&e<=159)&&!(e>1114111)))))))}function c(e){if(e>65535){var t=55296+((e-=65536)>>10),r=56320+(1023&e);return String.fromCharCode(t,r)}return String.fromCharCode(e)}var p=/&([a-z#][a-z0-9]{1,31});/gi,h=/^#((?:x[a-f0-9]{1,8}|[0-9]{1,8}))/i;function f(e,t){var r=0,o=n(t);return t!==o?o:35===t.charCodeAt(0)&&h.test(t)&&l(r=\"x\"===t[1].toLowerCase()?parseInt(t.slice(2),16):parseInt(t.slice(1),10))?c(r):e}function g(e){return e.indexOf(\"&\")<0?e:e.replace(p,f)}var d=/[&<>\"]/,m=/[&<>\"]/g,b={\"&\":\"&amp;\",\"<\":\"&lt;\",\">\":\"&gt;\",'\"':\"&quot;\"};function v(e){return b[e]}function k(e){return d.test(e)?e.replace(m,v):e}var A=Object.freeze({isString:function(e){return\"[object String]\"===function(e){return Object.prototype.toString.call(e)}(e)},has:s,assign:i,unescapeMd:u,isValidEntityCode:l,fromCodePoint:c,replaceEntities:g,escapeHtml:k}),y={};y.blockquote_open=function(){return\"<blockquote>\\n\"},y.blockquote_close=function(e,t){return\"</blockquote>\"+x(e,t)},y.code=function(e,t){return e[t].block?\"<pre><code>\"+k(e[t].content)+\"</code></pre>\"+x(e,t):\"<code>\"+k(e[t].content)+\"</code>\"},y.fence=function(e,t,r,n,o){var i,a,l=e[t],c=\"\",p=r.langPrefix;if(l.params){if(a=(i=l.params.split(/\\s+/g)).join(\" \"),s(o.rules.fence_custom,i[0]))return o.rules.fence_custom[i[0]](e,t,r,n,o);c=' class=\"'+p+k(g(u(a)))+'\"'}return\"<pre><code\"+c+\">\"+(r.highlight&&r.highlight.apply(r.highlight,[l.content].concat(i))||k(l.content))+\"</code></pre>\"+x(e,t)},y.fence_custom={},y.heading_open=function(e,t){return\"<h\"+e[t].hLevel+\">\"},y.heading_close=function(e,t){return\"</h\"+e[t].hLevel+\">\\n\"},y.hr=function(e,t,r){return(r.xhtmlOut?\"<hr />\":\"<hr>\")+x(e,t)},y.bullet_list_open=function(){return\"<ul>\\n\"},y.bullet_list_close=function(e,t){return\"</ul>\"+x(e,t)},y.list_item_open=function(){return\"<li>\"},y.list_item_close=function(){return\"</li>\\n\"},y.ordered_list_open=function(e,t){var r=e[t];return\"<ol\"+(r.order>1?' start=\"'+r.order+'\"':\"\")+\">\\n\"},y.ordered_list_close=function(e,t){return\"</ol>\"+x(e,t)},y.paragraph_open=function(e,t){return e[t].tight?\"\":\"<p>\"},y.paragraph_close=function(e,t){var r=!(e[t].tight&&t&&\"inline\"===e[t-1].type&&!e[t-1].content);return(e[t].tight?\"\":\"</p>\")+(r?x(e,t):\"\")},y.link_open=function(e,t,r){var n=e[t].title?' title=\"'+k(g(e[t].title))+'\"':\"\",o=r.linkTarget?' target=\"'+r.linkTarget+'\"':\"\";return'<a href=\"'+k(e[t].href)+'\"'+n+o+\">\"},y.link_close=function(){return\"</a>\"},y.image=function(e,t,r){var n=' src=\"'+k(e[t].src)+'\"',o=e[t].title?' title=\"'+k(g(e[t].title))+'\"':\"\";return\"<img\"+n+(' alt=\"'+(e[t].alt?k(g(u(e[t].alt))):\"\")+'\"')+o+(r.xhtmlOut?\" /\":\"\")+\">\"},y.table_open=function(){return\"<table>\\n\"},y.table_close=function(){return\"</table>\\n\"},y.thead_open=function(){return\"<thead>\\n\"},y.thead_close=function(){return\"</thead>\\n\"},y.tbody_open=function(){return\"<tbody>\\n\"},y.tbody_close=function(){return\"</tbody>\\n\"},y.tr_open=function(){return\"<tr>\"},y.tr_close=function(){return\"</tr>\\n\"},y.th_open=function(e,t){var r=e[t];return\"<th\"+(r.align?' style=\"text-align:'+r.align+'\"':\"\")+\">\"},y.th_close=function(){return\"</th>\"},y.td_open=function(e,t){var r=e[t];return\"<td\"+(r.align?' style=\"text-align:'+r.align+'\"':\"\")+\">\"},y.td_close=function(){return\"</td>\"},y.strong_open=function(){return\"<strong>\"},y.strong_close=function(){return\"</strong>\"},y.em_open=function(){return\"<em>\"},y.em_close=function(){return\"</em>\"},y.del_open=function(){return\"<del>\"},y.del_close=function(){return\"</del>\"},y.ins_open=function(){return\"<ins>\"},y.ins_close=function(){return\"</ins>\"},y.mark_open=function(){return\"<mark>\"},y.mark_close=function(){return\"</mark>\"},y.sub=function(e,t){return\"<sub>\"+k(e[t].content)+\"</sub>\"},y.sup=function(e,t){return\"<sup>\"+k(e[t].content)+\"</sup>\"},y.hardbreak=function(e,t,r){return r.xhtmlOut?\"<br />\\n\":\"<br>\\n\"},y.softbreak=function(e,t,r){return r.breaks?r.xhtmlOut?\"<br />\\n\":\"<br>\\n\":\"\\n\"},y.text=function(e,t){return k(e[t].content)},y.htmlblock=function(e,t){return e[t].content},y.htmltag=function(e,t){return e[t].content},y.abbr_open=function(e,t){return'<abbr title=\"'+k(g(e[t].title))+'\">'},y.abbr_close=function(){return\"</abbr>\"},y.footnote_ref=function(e,t){var r=Number(e[t].id+1).toString(),n=\"fnref\"+r;return e[t].subId>0&&(n+=\":\"+e[t].subId),'<sup class=\"footnote-ref\"><a href=\"#fn'+r+'\" id=\"'+n+'\">['+r+\"]</a></sup>\"},y.footnote_block_open=function(e,t,r){return(r.xhtmlOut?'<hr class=\"footnotes-sep\" />\\n':'<hr class=\"footnotes-sep\">\\n')+'<section class=\"footnotes\">\\n<ol class=\"footnotes-list\">\\n'},y.footnote_block_close=function(){return\"</ol>\\n</section>\\n\"},y.footnote_open=function(e,t){return'<li id=\"fn'+Number(e[t].id+1).toString()+'\"  class=\"footnote-item\">'},y.footnote_close=function(){return\"</li>\\n\"},y.footnote_anchor=function(e,t){var r=\"fnref\"+Number(e[t].id+1).toString();return e[t].subId>0&&(r+=\":\"+e[t].subId),' <a href=\"#'+r+'\" class=\"footnote-backref\">↩</a>'},y.dl_open=function(){return\"<dl>\\n\"},y.dt_open=function(){return\"<dt>\"},y.dd_open=function(){return\"<dd>\"},y.dl_close=function(){return\"</dl>\\n\"},y.dt_close=function(){return\"</dt>\\n\"},y.dd_close=function(){return\"</dd>\\n\"};var x=y.getBreak=function(e,t){return(t=function e(t,r){return++r>=t.length-2?r:\"paragraph_open\"===t[r].type&&t[r].tight&&\"inline\"===t[r+1].type&&0===t[r+1].content.length&&\"paragraph_close\"===t[r+2].type&&t[r+2].tight?e(t,r+2):r}(e,t))<e.length&&\"list_item_close\"===e[t].type?\"\":\"\\n\"};function w(){this.rules=i({},y),this.getBreak=y.getBreak}function C(){this.__rules__=[],this.__cache__=null}function E(e,t,r,n,o){this.src=e,this.env=n,this.options=r,this.parser=t,this.tokens=o,this.pos=0,this.posMax=this.src.length,this.level=0,this.pending=\"\",this.pendingLevel=0,this.cache=[],this.isInLabel=!1,this.linkLevel=0,this.linkContent=\"\",this.labelUnmatchedScopes=0}function D(e,t){var r,n,o,s=-1,i=e.posMax,a=e.pos,u=e.isInLabel;if(e.isInLabel)return-1;if(e.labelUnmatchedScopes)return e.labelUnmatchedScopes--,-1;for(e.pos=t+1,e.isInLabel=!0,r=1;e.pos<i;){if(91===(o=e.src.charCodeAt(e.pos)))r++;else if(93===o&&0===--r){n=!0;break}e.parser.skipToken(e)}return n?(s=e.pos,e.labelUnmatchedScopes=0):e.labelUnmatchedScopes=r-1,e.pos=a,e.isInLabel=u,s}function _(e,t,r,n){var o,s,i,a,u,l;if(42!==e.charCodeAt(0))return-1;if(91!==e.charCodeAt(1))return-1;if(-1===e.indexOf(\"]:\"))return-1;if((s=D(o=new E(e,t,r,n,[]),1))<0||58!==e.charCodeAt(s+1))return-1;for(a=o.posMax,i=s+2;i<a&&10!==o.src.charCodeAt(i);i++);return u=e.slice(2,s),0===(l=e.slice(s+2,i).trim()).length?-1:(n.abbreviations||(n.abbreviations={}),void 0===n.abbreviations[\":\"+u]&&(n.abbreviations[\":\"+u]=l),i)}function B(e){var t=g(e);try{t=decodeURI(t)}catch(e){}return encodeURI(t)}function q(e,t){var r,n,o,s=t,i=e.posMax;if(60===e.src.charCodeAt(t)){for(t++;t<i;){if(10===(r=e.src.charCodeAt(t)))return!1;if(62===r)return o=B(u(e.src.slice(s+1,t))),!!e.parser.validateLink(o)&&(e.pos=t+1,e.linkContent=o,!0);92===r&&t+1<i?t+=2:t++}return!1}for(n=0;t<i&&32!==(r=e.src.charCodeAt(t))&&!(r<32||127===r);)if(92===r&&t+1<i)t+=2;else{if(40===r&&++n>1)break;if(41===r&&--n<0)break;t++}return s!==t&&(o=u(e.src.slice(s,t)),!!e.parser.validateLink(o)&&(e.linkContent=o,e.pos=t,!0))}function F(e,t){var r,n=t,o=e.posMax,s=e.src.charCodeAt(t);if(34!==s&&39!==s&&40!==s)return!1;for(t++,40===s&&(s=41);t<o;){if((r=e.src.charCodeAt(t))===s)return e.pos=t+1,e.linkContent=u(e.src.slice(n+1,t)),!0;92===r&&t+1<o?t+=2:t++}return!1}function M(e){return e.trim().replace(/\\s+/g,\" \").toUpperCase()}function S(e,t,r,n){var o,s,i,a,u,l,c,p,h;if(91!==e.charCodeAt(0))return-1;if(-1===e.indexOf(\"]:\"))return-1;if((s=D(o=new E(e,t,r,n,[]),0))<0||58!==e.charCodeAt(s+1))return-1;for(a=o.posMax,i=s+2;i<a&&(32===(u=o.src.charCodeAt(i))||10===u);i++);if(!q(o,i))return-1;for(c=o.linkContent,l=i=o.pos,i+=1;i<a&&(32===(u=o.src.charCodeAt(i))||10===u);i++);for(i<a&&l!==i&&F(o,i)?(p=o.linkContent,i=o.pos):(p=\"\",i=l);i<a&&32===o.src.charCodeAt(i);)i++;return i<a&&10!==o.src.charCodeAt(i)?-1:(h=M(e.slice(1,s)),void 0===n.references[h]&&(n.references[h]={title:p,href:c}),i)}w.prototype.renderInline=function(e,t,r){for(var n=this.rules,o=e.length,s=0,i=\"\";o--;)i+=n[e[s].type](e,s++,t,r,this);return i},w.prototype.render=function(e,t,r){for(var n=this.rules,o=e.length,s=-1,i=\"\";++s<o;)\"inline\"===e[s].type?i+=this.renderInline(e[s].children,t,r):i+=n[e[s].type](e,s,t,r,this);return i},C.prototype.__find__=function(e){for(var t=this.__rules__.length,r=-1;t--;)if(this.__rules__[++r].name===e)return r;return-1},C.prototype.__compile__=function(){var e=this,t=[\"\"];e.__rules__.forEach(function(e){e.enabled&&e.alt.forEach(function(e){t.indexOf(e)<0&&t.push(e)})}),e.__cache__={},t.forEach(function(t){e.__cache__[t]=[],e.__rules__.forEach(function(r){r.enabled&&(t&&r.alt.indexOf(t)<0||e.__cache__[t].push(r.fn))})})},C.prototype.at=function(e,t,r){var n=this.__find__(e),o=r||{};if(-1===n)throw new Error(\"Parser rule not found: \"+e);this.__rules__[n].fn=t,this.__rules__[n].alt=o.alt||[],this.__cache__=null},C.prototype.before=function(e,t,r,n){var o=this.__find__(e),s=n||{};if(-1===o)throw new Error(\"Parser rule not found: \"+e);this.__rules__.splice(o,0,{name:t,enabled:!0,fn:r,alt:s.alt||[]}),this.__cache__=null},C.prototype.after=function(e,t,r,n){var o=this.__find__(e),s=n||{};if(-1===o)throw new Error(\"Parser rule not found: \"+e);this.__rules__.splice(o+1,0,{name:t,enabled:!0,fn:r,alt:s.alt||[]}),this.__cache__=null},C.prototype.push=function(e,t,r){var n=r||{};this.__rules__.push({name:e,enabled:!0,fn:t,alt:n.alt||[]}),this.__cache__=null},C.prototype.enable=function(e,t){e=Array.isArray(e)?e:[e],t&&this.__rules__.forEach(function(e){e.enabled=!1}),e.forEach(function(e){var t=this.__find__(e);if(t<0)throw new Error(\"Rules manager: invalid rule name \"+e);this.__rules__[t].enabled=!0},this),this.__cache__=null},C.prototype.disable=function(e){(e=Array.isArray(e)?e:[e]).forEach(function(e){var t=this.__find__(e);if(t<0)throw new Error(\"Rules manager: invalid rule name \"+e);this.__rules__[t].enabled=!1},this),this.__cache__=null},C.prototype.getRules=function(e){return null===this.__cache__&&this.__compile__(),this.__cache__[e]||[]},E.prototype.pushPending=function(){this.tokens.push({type:\"text\",content:this.pending,level:this.pendingLevel}),this.pending=\"\"},E.prototype.push=function(e){this.pending&&this.pushPending(),this.tokens.push(e),this.pendingLevel=this.level},E.prototype.cacheSet=function(e,t){for(var r=this.cache.length;r<=e;r++)this.cache.push(0);this.cache[e]=t},E.prototype.cacheGet=function(e){return e<this.cache.length?this.cache[e]:0};var T=\" \\n()[]'\\\".,!?-\";function L(e){return e.replace(/([-()\\[\\]{}+?*.$\\^|,:#<!\\\\])/g,\"\\\\$1\")}var R=/\\+-|\\.\\.|\\?\\?\\?\\?|!!!!|,,|--/,N=/\\((c|tm|r|p)\\)/gi,z={c:\"©\",r:\"®\",p:\"§\",tm:\"™\"};var P=/['\"]/,j=/['\"]/g,I=/[-\\s()\\[\\]]/,O=\"’\";function U(e,t){return!(t<0||t>=e.length)&&!I.test(e[t])}function H(e,t,r){return e.substr(0,t)+r+e.substr(t+1)}var V=[[\"block\",function(e){e.inlineMode?e.tokens.push({type:\"inline\",content:e.src.replace(/\\n/g,\" \").trim(),level:0,lines:[0,1],children:[]}):e.block.parse(e.src,e.options,e.env,e.tokens)}],[\"abbr\",function(e){var t,r,n,o,s=e.tokens;if(!e.inlineMode)for(t=1,r=s.length-1;t<r;t++)if(\"paragraph_open\"===s[t-1].type&&\"inline\"===s[t].type&&\"paragraph_close\"===s[t+1].type){for(n=s[t].content;n.length&&!((o=_(n,e.inline,e.options,e.env))<0);)n=n.slice(o).trim();s[t].content=n,n.length||(s[t-1].tight=!0,s[t+1].tight=!0)}}],[\"references\",function(e){var t,r,n,o,s=e.tokens;if(e.env.references=e.env.references||{},!e.inlineMode)for(t=1,r=s.length-1;t<r;t++)if(\"inline\"===s[t].type&&\"paragraph_open\"===s[t-1].type&&\"paragraph_close\"===s[t+1].type){for(n=s[t].content;n.length&&!((o=S(n,e.inline,e.options,e.env))<0);)n=n.slice(o).trim();s[t].content=n,n.length||(s[t-1].tight=!0,s[t+1].tight=!0)}}],[\"inline\",function(e){var t,r,n,o=e.tokens;for(r=0,n=o.length;r<n;r++)\"inline\"===(t=o[r]).type&&e.inline.parse(t.content,e.options,e.env,t.children)}],[\"footnote_tail\",function(e){var t,r,n,o,s,i,a,u,l,c=0,p=!1,h={};if(e.env.footnotes&&(e.tokens=e.tokens.filter(function(e){return\"footnote_reference_open\"===e.type?(p=!0,u=[],l=e.label,!1):\"footnote_reference_close\"===e.type?(p=!1,h[\":\"+l]=u,!1):(p&&u.push(e),!p)}),e.env.footnotes.list)){for(i=e.env.footnotes.list,e.tokens.push({type:\"footnote_block_open\",level:c++}),t=0,r=i.length;t<r;t++){for(e.tokens.push({type:\"footnote_open\",id:t,level:c++}),i[t].tokens?((a=[]).push({type:\"paragraph_open\",tight:!1,level:c++}),a.push({type:\"inline\",content:\"\",level:c,children:i[t].tokens}),a.push({type:\"paragraph_close\",tight:!1,level:--c})):i[t].label&&(a=h[\":\"+i[t].label]),e.tokens=e.tokens.concat(a),s=\"paragraph_close\"===e.tokens[e.tokens.length-1].type?e.tokens.pop():null,o=i[t].count>0?i[t].count:1,n=0;n<o;n++)e.tokens.push({type:\"footnote_anchor\",id:t,subId:n,level:c});s&&e.tokens.push(s),e.tokens.push({type:\"footnote_close\",level:--c})}e.tokens.push({type:\"footnote_block_close\",level:--c})}}],[\"abbr2\",function(e){var t,r,n,o,s,i,a,u,l,c,p,h,f=e.tokens;if(e.env.abbreviations)for(e.env.abbrRegExp||(h=\"(^|[\"+T.split(\"\").map(L).join(\"\")+\"])(\"+Object.keys(e.env.abbreviations).map(function(e){return e.substr(1)}).sort(function(e,t){return t.length-e.length}).map(L).join(\"|\")+\")($|[\"+T.split(\"\").map(L).join(\"\")+\"])\",e.env.abbrRegExp=new RegExp(h,\"g\")),c=e.env.abbrRegExp,r=0,n=f.length;r<n;r++)if(\"inline\"===f[r].type)for(t=(o=f[r].children).length-1;t>=0;t--)if(\"text\"===(s=o[t]).type){for(u=0,i=s.content,c.lastIndex=0,l=s.level,a=[];p=c.exec(i);)c.lastIndex>u&&a.push({type:\"text\",content:i.slice(u,p.index+p[1].length),level:l}),a.push({type:\"abbr_open\",title:e.env.abbreviations[\":\"+p[2]],level:l++}),a.push({type:\"text\",content:p[2],level:l}),a.push({type:\"abbr_close\",level:--l}),u=c.lastIndex-p[3].length;a.length&&(u<i.length&&a.push({type:\"text\",content:i.slice(u),level:l}),f[r].children=o=[].concat(o.slice(0,t),a,o.slice(t+1)))}}],[\"replacements\",function(e){var t,r,n,o,s,i;if(e.options.typographer)for(s=e.tokens.length-1;s>=0;s--)if(\"inline\"===e.tokens[s].type)for(t=(o=e.tokens[s].children).length-1;t>=0;t--)\"text\"===(r=o[t]).type&&(n=r.content,n=(i=n).indexOf(\"(\")<0?i:i.replace(N,function(e,t){return z[t.toLowerCase()]}),R.test(n)&&(n=n.replace(/\\+-/g,\"±\").replace(/\\.{2,}/g,\"…\").replace(/([?!])…/g,\"$1..\").replace(/([?!]){4,}/g,\"$1$1$1\").replace(/,{2,}/g,\",\").replace(/(^|[^-])---([^-]|$)/gm,\"$1—$2\").replace(/(^|\\s)--(\\s|$)/gm,\"$1–$2\").replace(/(^|[^-\\s])--([^-\\s]|$)/gm,\"$1–$2\")),r.content=n)}],[\"smartquotes\",function(e){var t,r,n,o,s,i,a,u,l,c,p,h,f,g,d,m,b;if(e.options.typographer)for(b=[],d=e.tokens.length-1;d>=0;d--)if(\"inline\"===e.tokens[d].type)for(m=e.tokens[d].children,b.length=0,t=0;t<m.length;t++)if(\"text\"===(r=m[t]).type&&!P.test(r.text)){for(a=m[t].level,f=b.length-1;f>=0&&!(b[f].level<=a);f--);b.length=f+1,s=0,i=(n=r.content).length;e:for(;s<i&&(j.lastIndex=s,o=j.exec(n));)if(u=!U(n,o.index-1),s=o.index+1,g=\"'\"===o[0],(l=!U(n,s))||u){if(p=!l,h=!u)for(f=b.length-1;f>=0&&(c=b[f],!(b[f].level<a));f--)if(c.single===g&&b[f].level===a){c=b[f],g?(m[c.token].content=H(m[c.token].content,c.pos,e.options.quotes[2]),r.content=H(r.content,o.index,e.options.quotes[3])):(m[c.token].content=H(m[c.token].content,c.pos,e.options.quotes[0]),r.content=H(r.content,o.index,e.options.quotes[1])),b.length=f;continue e}p?b.push({token:t,pos:o.index,single:g,level:a}):h&&g&&(r.content=H(r.content,o.index,O))}else g&&(r.content=H(r.content,o.index,O))}}]];function G(){this.options={},this.ruler=new C;for(var e=0;e<V.length;e++)this.ruler.push(V[e][0],V[e][1])}function $(e,t,r,n,o){var s,i,a,u,l,c,p;for(this.src=e,this.parser=t,this.options=r,this.env=n,this.tokens=o,this.bMarks=[],this.eMarks=[],this.tShift=[],this.blkIndent=0,this.line=0,this.lineMax=0,this.tight=!1,this.parentType=\"root\",this.ddIndent=-1,this.level=0,this.result=\"\",c=0,p=!1,a=u=c=0,l=(i=this.src).length;u<l;u++){if(s=i.charCodeAt(u),!p){if(32===s){c++;continue}p=!0}10!==s&&u!==l-1||(10!==s&&u++,this.bMarks.push(a),this.eMarks.push(u),this.tShift.push(c),p=!1,c=0,a=u+1)}this.bMarks.push(i.length),this.eMarks.push(i.length),this.tShift.push(0),this.lineMax=this.bMarks.length-1}function Z(e,t){var r,n,o;return(n=e.bMarks[t]+e.tShift[t])>=(o=e.eMarks[t])?-1:42!==(r=e.src.charCodeAt(n++))&&45!==r&&43!==r?-1:n<o&&32!==e.src.charCodeAt(n)?-1:n}function W(e,t){var r,n=e.bMarks[t]+e.tShift[t],o=e.eMarks[t];if(n+1>=o)return-1;if((r=e.src.charCodeAt(n++))<48||r>57)return-1;for(;;){if(n>=o)return-1;if(!((r=e.src.charCodeAt(n++))>=48&&r<=57)){if(41===r||46===r)break;return-1}}return n<o&&32!==e.src.charCodeAt(n)?-1:n}G.prototype.process=function(e){var t,r,n;for(t=0,r=(n=this.ruler.getRules(\"\")).length;t<r;t++)n[t](e)},$.prototype.isEmpty=function(e){return this.bMarks[e]+this.tShift[e]>=this.eMarks[e]},$.prototype.skipEmptyLines=function(e){for(var t=this.lineMax;e<t&&!(this.bMarks[e]+this.tShift[e]<this.eMarks[e]);e++);return e},$.prototype.skipSpaces=function(e){for(var t=this.src.length;e<t&&32===this.src.charCodeAt(e);e++);return e},$.prototype.skipChars=function(e,t){for(var r=this.src.length;e<r&&this.src.charCodeAt(e)===t;e++);return e},$.prototype.skipCharsBack=function(e,t,r){if(e<=r)return e;for(;e>r;)if(t!==this.src.charCodeAt(--e))return e+1;return e},$.prototype.getLines=function(e,t,r,n){var o,s,i,a,u,l=e;if(e>=t)return\"\";if(l+1===t)return s=this.bMarks[l]+Math.min(this.tShift[l],r),i=n?this.eMarks[l]+1:this.eMarks[l],this.src.slice(s,i);for(a=new Array(t-e),o=0;l<t;l++,o++)(u=this.tShift[l])>r&&(u=r),u<0&&(u=0),s=this.bMarks[l]+u,i=l+1<t||n?this.eMarks[l]+1:this.eMarks[l],a[o]=this.src.slice(s,i);return a.join(\"\")};var J={};[\"article\",\"aside\",\"button\",\"blockquote\",\"body\",\"canvas\",\"caption\",\"col\",\"colgroup\",\"dd\",\"div\",\"dl\",\"dt\",\"embed\",\"fieldset\",\"figcaption\",\"figure\",\"footer\",\"form\",\"h1\",\"h2\",\"h3\",\"h4\",\"h5\",\"h6\",\"header\",\"hgroup\",\"hr\",\"iframe\",\"li\",\"map\",\"object\",\"ol\",\"output\",\"p\",\"pre\",\"progress\",\"script\",\"section\",\"style\",\"table\",\"tbody\",\"td\",\"textarea\",\"tfoot\",\"th\",\"tr\",\"thead\",\"ul\",\"video\"].forEach(function(e){J[e]=!0});var Y=/^<([a-zA-Z]{1,15})[\\s\\/>]/,K=/^<\\/([a-zA-Z]{1,15})[\\s>]/;function Q(e,t){var r=e.bMarks[t]+e.blkIndent,n=e.eMarks[t];return e.src.substr(r,n-r)}function X(e,t){var r,n,o=e.bMarks[t]+e.tShift[t],s=e.eMarks[t];return o>=s?-1:126!==(n=e.src.charCodeAt(o++))&&58!==n?-1:o===(r=e.skipSpaces(o))?-1:r>=s?-1:r}var ee=[[\"code\",function(e,t,r){var n,o;if(e.tShift[t]-e.blkIndent<4)return!1;for(o=n=t+1;n<r;)if(e.isEmpty(n))n++;else{if(!(e.tShift[n]-e.blkIndent>=4))break;o=++n}return e.line=n,e.tokens.push({type:\"code\",content:e.getLines(t,o,4+e.blkIndent,!0),block:!0,lines:[t,e.line],level:e.level}),!0}],[\"fences\",function(e,t,r,n){var o,s,i,a,u,l=!1,c=e.bMarks[t]+e.tShift[t],p=e.eMarks[t];if(c+3>p)return!1;if(126!==(o=e.src.charCodeAt(c))&&96!==o)return!1;if(u=c,(s=(c=e.skipChars(c,o))-u)<3)return!1;if((i=e.src.slice(c,p).trim()).indexOf(\"`\")>=0)return!1;if(n)return!0;for(a=t;!(++a>=r||(c=u=e.bMarks[a]+e.tShift[a])<(p=e.eMarks[a])&&e.tShift[a]<e.blkIndent);)if(e.src.charCodeAt(c)===o&&!(e.tShift[a]-e.blkIndent>=4||(c=e.skipChars(c,o))-u<s||(c=e.skipSpaces(c))<p)){l=!0;break}return s=e.tShift[t],e.line=a+(l?1:0),e.tokens.push({type:\"fence\",params:i,content:e.getLines(t+1,a,s,!0),lines:[t,e.line],level:e.level}),!0},[\"paragraph\",\"blockquote\",\"list\"]],[\"blockquote\",function(e,t,r,n){var o,s,i,a,u,l,c,p,h,f,g,d=e.bMarks[t]+e.tShift[t],m=e.eMarks[t];if(d>m)return!1;if(62!==e.src.charCodeAt(d++))return!1;if(e.level>=e.options.maxNesting)return!1;if(n)return!0;for(32===e.src.charCodeAt(d)&&d++,u=e.blkIndent,e.blkIndent=0,a=[e.bMarks[t]],e.bMarks[t]=d,s=(d=d<m?e.skipSpaces(d):d)>=m,i=[e.tShift[t]],e.tShift[t]=d-e.bMarks[t],p=e.parser.ruler.getRules(\"blockquote\"),o=t+1;o<r&&!((d=e.bMarks[o]+e.tShift[o])>=(m=e.eMarks[o]));o++)if(62!==e.src.charCodeAt(d++)){if(s)break;for(g=!1,h=0,f=p.length;h<f;h++)if(p[h](e,o,r,!0)){g=!0;break}if(g)break;a.push(e.bMarks[o]),i.push(e.tShift[o]),e.tShift[o]=-1337}else 32===e.src.charCodeAt(d)&&d++,a.push(e.bMarks[o]),e.bMarks[o]=d,s=(d=d<m?e.skipSpaces(d):d)>=m,i.push(e.tShift[o]),e.tShift[o]=d-e.bMarks[o];for(l=e.parentType,e.parentType=\"blockquote\",e.tokens.push({type:\"blockquote_open\",lines:c=[t,0],level:e.level++}),e.parser.tokenize(e,t,o),e.tokens.push({type:\"blockquote_close\",level:--e.level}),e.parentType=l,c[1]=e.line,h=0;h<i.length;h++)e.bMarks[h+t]=a[h],e.tShift[h+t]=i[h];return e.blkIndent=u,!0},[\"paragraph\",\"blockquote\",\"list\"]],[\"hr\",function(e,t,r,n){var o,s,i,a=e.bMarks[t],u=e.eMarks[t];if((a+=e.tShift[t])>u)return!1;if(42!==(o=e.src.charCodeAt(a++))&&45!==o&&95!==o)return!1;for(s=1;a<u;){if((i=e.src.charCodeAt(a++))!==o&&32!==i)return!1;i===o&&s++}return!(s<3||!n&&(e.line=t+1,e.tokens.push({type:\"hr\",lines:[t,e.line],level:e.level}),0))},[\"paragraph\",\"blockquote\",\"list\"]],[\"list\",function(e,t,r,n){var o,s,i,a,u,l,c,p,h,f,g,d,m,b,v,k,A,y,x,w,C,E=!0;if((p=W(e,t))>=0)d=!0;else{if(!((p=Z(e,t))>=0))return!1;d=!1}if(e.level>=e.options.maxNesting)return!1;if(g=e.src.charCodeAt(p-1),n)return!0;for(b=e.tokens.length,d?(c=e.bMarks[t]+e.tShift[t],f=Number(e.src.substr(c,p-c-1)),e.tokens.push({type:\"ordered_list_open\",order:f,lines:k=[t,0],level:e.level++})):e.tokens.push({type:\"bullet_list_open\",lines:k=[t,0],level:e.level++}),o=t,v=!1,y=e.parser.ruler.getRules(\"list\");!(!(o<r)||((h=(m=e.skipSpaces(p))>=e.eMarks[o]?1:m-p)>4&&(h=1),h<1&&(h=1),s=p-e.bMarks[o]+h,e.tokens.push({type:\"list_item_open\",lines:A=[t,0],level:e.level++}),a=e.blkIndent,u=e.tight,i=e.tShift[t],l=e.parentType,e.tShift[t]=m-e.bMarks[t],e.blkIndent=s,e.tight=!0,e.parentType=\"list\",e.parser.tokenize(e,t,r,!0),e.tight&&!v||(E=!1),v=e.line-t>1&&e.isEmpty(e.line-1),e.blkIndent=a,e.tShift[t]=i,e.tight=u,e.parentType=l,e.tokens.push({type:\"list_item_close\",level:--e.level}),o=t=e.line,A[1]=o,m=e.bMarks[t],o>=r)||e.isEmpty(o)||e.tShift[o]<e.blkIndent);){for(C=!1,x=0,w=y.length;x<w;x++)if(y[x](e,o,r,!0)){C=!0;break}if(C)break;if(d){if((p=W(e,o))<0)break}else if((p=Z(e,o))<0)break;if(g!==e.src.charCodeAt(p-1))break}return e.tokens.push({type:d?\"ordered_list_close\":\"bullet_list_close\",level:--e.level}),k[1]=o,e.line=o,E&&function(e,t){var r,n,o=e.level+2;for(r=t+2,n=e.tokens.length-2;r<n;r++)e.tokens[r].level===o&&\"paragraph_open\"===e.tokens[r].type&&(e.tokens[r+2].tight=!0,e.tokens[r].tight=!0,r+=2)}(e,b),!0},[\"paragraph\",\"blockquote\"]],[\"footnote\",function(e,t,r,n){var o,s,i,a,u,l=e.bMarks[t]+e.tShift[t],c=e.eMarks[t];if(l+4>c)return!1;if(91!==e.src.charCodeAt(l))return!1;if(94!==e.src.charCodeAt(l+1))return!1;if(e.level>=e.options.maxNesting)return!1;for(a=l+2;a<c;a++){if(32===e.src.charCodeAt(a))return!1;if(93===e.src.charCodeAt(a))break}return!(a===l+2||a+1>=c||58!==e.src.charCodeAt(++a)||!n&&(a++,e.env.footnotes||(e.env.footnotes={}),e.env.footnotes.refs||(e.env.footnotes.refs={}),u=e.src.slice(l+2,a-2),e.env.footnotes.refs[\":\"+u]=-1,e.tokens.push({type:\"footnote_reference_open\",label:u,level:e.level++}),o=e.bMarks[t],s=e.tShift[t],i=e.parentType,e.tShift[t]=e.skipSpaces(a)-a,e.bMarks[t]=a,e.blkIndent+=4,e.parentType=\"footnote\",e.tShift[t]<e.blkIndent&&(e.tShift[t]+=e.blkIndent,e.bMarks[t]-=e.blkIndent),e.parser.tokenize(e,t,r,!0),e.parentType=i,e.blkIndent-=4,e.tShift[t]=s,e.bMarks[t]=o,e.tokens.push({type:\"footnote_reference_close\",level:--e.level}),0))},[\"paragraph\"]],[\"heading\",function(e,t,r,n){var o,s,i,a=e.bMarks[t]+e.tShift[t],u=e.eMarks[t];if(a>=u)return!1;if(35!==(o=e.src.charCodeAt(a))||a>=u)return!1;for(s=1,o=e.src.charCodeAt(++a);35===o&&a<u&&s<=6;)s++,o=e.src.charCodeAt(++a);return!(s>6||a<u&&32!==o||!n&&(u=e.skipCharsBack(u,32,a),(i=e.skipCharsBack(u,35,a))>a&&32===e.src.charCodeAt(i-1)&&(u=i),e.line=t+1,e.tokens.push({type:\"heading_open\",hLevel:s,lines:[t,e.line],level:e.level}),a<u&&e.tokens.push({type:\"inline\",content:e.src.slice(a,u).trim(),level:e.level+1,lines:[t,e.line],children:[]}),e.tokens.push({type:\"heading_close\",hLevel:s,level:e.level}),0))},[\"paragraph\",\"blockquote\"]],[\"lheading\",function(e,t,r){var n,o,s,i=t+1;return!(i>=r||e.tShift[i]<e.blkIndent||e.tShift[i]-e.blkIndent>3||(o=e.bMarks[i]+e.tShift[i])>=(s=e.eMarks[i])||45!==(n=e.src.charCodeAt(o))&&61!==n||(o=e.skipChars(o,n),(o=e.skipSpaces(o))<s||(o=e.bMarks[t]+e.tShift[t],e.line=i+1,e.tokens.push({type:\"heading_open\",hLevel:61===n?1:2,lines:[t,e.line],level:e.level}),e.tokens.push({type:\"inline\",content:e.src.slice(o,e.eMarks[t]).trim(),level:e.level+1,lines:[t,e.line-1],children:[]}),e.tokens.push({type:\"heading_close\",hLevel:61===n?1:2,level:e.level}),0)))}],[\"htmlblock\",function(e,t,r,n){var o,s,i,a=e.bMarks[t],u=e.eMarks[t],l=e.tShift[t];if(a+=l,!e.options.html)return!1;if(l>3||a+2>=u)return!1;if(60!==e.src.charCodeAt(a))return!1;if(33===(o=e.src.charCodeAt(a+1))||63===o){if(n)return!0}else{if(47!==o&&!function(e){var t=32|e;return t>=97&&t<=122}(o))return!1;if(47===o){if(!(s=e.src.slice(a,u).match(K)))return!1}else if(!(s=e.src.slice(a,u).match(Y)))return!1;if(!0!==J[s[1].toLowerCase()])return!1;if(n)return!0}for(i=t+1;i<e.lineMax&&!e.isEmpty(i);)i++;return e.line=i,e.tokens.push({type:\"htmlblock\",level:e.level,lines:[t,e.line],content:e.getLines(t,i,0,!0)}),!0},[\"paragraph\",\"blockquote\"]],[\"table\",function(e,t,r,n){var o,s,i,a,u,l,c,p,h,f,g;if(t+2>r)return!1;if(u=t+1,e.tShift[u]<e.blkIndent)return!1;if((i=e.bMarks[u]+e.tShift[u])>=e.eMarks[u])return!1;if(124!==(o=e.src.charCodeAt(i))&&45!==o&&58!==o)return!1;if(s=Q(e,t+1),!/^[-:| ]+$/.test(s))return!1;if((l=s.split(\"|\"))<=2)return!1;for(p=[],a=0;a<l.length;a++){if(!(h=l[a].trim())){if(0===a||a===l.length-1)continue;return!1}if(!/^:?-+:?$/.test(h))return!1;58===h.charCodeAt(h.length-1)?p.push(58===h.charCodeAt(0)?\"center\":\"right\"):58===h.charCodeAt(0)?p.push(\"left\"):p.push(\"\")}if(-1===(s=Q(e,t).trim()).indexOf(\"|\"))return!1;if(l=s.replace(/^\\||\\|$/g,\"\").split(\"|\"),p.length!==l.length)return!1;if(n)return!0;for(e.tokens.push({type:\"table_open\",lines:f=[t,0],level:e.level++}),e.tokens.push({type:\"thead_open\",lines:[t,t+1],level:e.level++}),e.tokens.push({type:\"tr_open\",lines:[t,t+1],level:e.level++}),a=0;a<l.length;a++)e.tokens.push({type:\"th_open\",align:p[a],lines:[t,t+1],level:e.level++}),e.tokens.push({type:\"inline\",content:l[a].trim(),lines:[t,t+1],level:e.level,children:[]}),e.tokens.push({type:\"th_close\",level:--e.level});for(e.tokens.push({type:\"tr_close\",level:--e.level}),e.tokens.push({type:\"thead_close\",level:--e.level}),e.tokens.push({type:\"tbody_open\",lines:g=[t+2,0],level:e.level++}),u=t+2;u<r&&!(e.tShift[u]<e.blkIndent)&&-1!==(s=Q(e,u).trim()).indexOf(\"|\");u++){for(l=s.replace(/^\\||\\|$/g,\"\").split(\"|\"),e.tokens.push({type:\"tr_open\",level:e.level++}),a=0;a<l.length;a++)e.tokens.push({type:\"td_open\",align:p[a],level:e.level++}),c=l[a].substring(124===l[a].charCodeAt(0)?1:0,124===l[a].charCodeAt(l[a].length-1)?l[a].length-1:l[a].length).trim(),e.tokens.push({type:\"inline\",content:c,level:e.level,children:[]}),e.tokens.push({type:\"td_close\",level:--e.level});e.tokens.push({type:\"tr_close\",level:--e.level})}return e.tokens.push({type:\"tbody_close\",level:--e.level}),e.tokens.push({type:\"table_close\",level:--e.level}),f[1]=g[1]=u,e.line=u,!0},[\"paragraph\"]],[\"deflist\",function(e,t,r,n){var o,s,i,a,u,l,c,p,h,f,g,d,m,b;if(n)return!(e.ddIndent<0)&&X(e,t)>=0;if(c=t+1,e.isEmpty(c)&&++c>r)return!1;if(e.tShift[c]<e.blkIndent)return!1;if((o=X(e,c))<0)return!1;if(e.level>=e.options.maxNesting)return!1;l=e.tokens.length,e.tokens.push({type:\"dl_open\",lines:u=[t,0],level:e.level++}),i=t,s=c;e:for(;;){for(b=!0,m=!1,e.tokens.push({type:\"dt_open\",lines:[i,i],level:e.level++}),e.tokens.push({type:\"inline\",content:e.getLines(i,i+1,e.blkIndent,!1).trim(),level:e.level+1,lines:[i,i],children:[]}),e.tokens.push({type:\"dt_close\",level:--e.level});;){if(e.tokens.push({type:\"dd_open\",lines:a=[c,0],level:e.level++}),d=e.tight,h=e.ddIndent,p=e.blkIndent,g=e.tShift[s],f=e.parentType,e.blkIndent=e.ddIndent=e.tShift[s]+2,e.tShift[s]=o-e.bMarks[s],e.tight=!0,e.parentType=\"deflist\",e.parser.tokenize(e,s,r,!0),e.tight&&!m||(b=!1),m=e.line-s>1&&e.isEmpty(e.line-1),e.tShift[s]=g,e.tight=d,e.parentType=f,e.blkIndent=p,e.ddIndent=h,e.tokens.push({type:\"dd_close\",level:--e.level}),a[1]=c=e.line,c>=r)break e;if(e.tShift[c]<e.blkIndent)break e;if((o=X(e,c))<0)break;s=c}if(c>=r)break;if(i=c,e.isEmpty(i))break;if(e.tShift[i]<e.blkIndent)break;if((s=i+1)>=r)break;if(e.isEmpty(s)&&s++,s>=r)break;if(e.tShift[s]<e.blkIndent)break;if((o=X(e,s))<0)break}return e.tokens.push({type:\"dl_close\",level:--e.level}),u[1]=c,e.line=c,b&&function(e,t){var r,n,o=e.level+2;for(r=t+2,n=e.tokens.length-2;r<n;r++)e.tokens[r].level===o&&\"paragraph_open\"===e.tokens[r].type&&(e.tokens[r+2].tight=!0,e.tokens[r].tight=!0,r+=2)}(e,l),!0},[\"paragraph\"]],[\"paragraph\",function(e,t){var r,n,o,s,i,a,u=t+1;if(u<(r=e.lineMax)&&!e.isEmpty(u))for(a=e.parser.ruler.getRules(\"paragraph\");u<r&&!e.isEmpty(u);u++)if(!(e.tShift[u]-e.blkIndent>3)){for(o=!1,s=0,i=a.length;s<i;s++)if(a[s](e,u,r,!0)){o=!0;break}if(o)break}return n=e.getLines(t,u,e.blkIndent,!1).trim(),e.line=u,n.length&&(e.tokens.push({type:\"paragraph_open\",tight:!1,lines:[t,e.line],level:e.level}),e.tokens.push({type:\"inline\",content:n,level:e.level+1,lines:[t,e.line],children:[]}),e.tokens.push({type:\"paragraph_close\",tight:!1,level:e.level})),!0}]];function te(){this.ruler=new C;for(var e=0;e<ee.length;e++)this.ruler.push(ee[e][0],ee[e][1],{alt:(ee[e][2]||[]).slice()})}te.prototype.tokenize=function(e,t,r){for(var n,o=this.ruler.getRules(\"\"),s=o.length,i=t,a=!1;i<r&&(e.line=i=e.skipEmptyLines(i),!(i>=r))&&!(e.tShift[i]<e.blkIndent);){for(n=0;n<s&&!o[n](e,i,r,!1);n++);if(e.tight=!a,e.isEmpty(e.line-1)&&(a=!0),(i=e.line)<r&&e.isEmpty(i)){if(a=!0,++i<r&&\"list\"===e.parentType&&e.isEmpty(i))break;e.line=i}}};var re=/[\\n\\t]/g,ne=/\\r[\\n\\u0085]|[\\u2424\\u2028\\u0085]/g,oe=/\\u00a0/g;function se(e){switch(e){case 10:case 92:case 96:case 42:case 95:case 94:case 91:case 93:case 33:case 38:case 60:case 62:case 123:case 125:case 36:case 37:case 64:case 126:case 43:case 61:case 58:return!0;default:return!1}}te.prototype.parse=function(e,t,r,n){var o,s=0,i=0;if(!e)return[];(e=(e=e.replace(oe,\" \")).replace(ne,\"\\n\")).indexOf(\"\\t\")>=0&&(e=e.replace(re,function(t,r){var n;return 10===e.charCodeAt(r)?(s=r+1,i=0,t):(n=\"    \".slice((r-s-i)%4),i=r-s+1,n)})),o=new $(e,this,t,r,n),this.tokenize(o,o.line,o.lineMax)};for(var ie=[],ae=0;ae<256;ae++)ie.push(0);function ue(e){return e>=48&&e<=57||e>=65&&e<=90||e>=97&&e<=122}function le(e,t){var r,n,o,s=t,i=!0,a=!0,u=e.posMax,l=e.src.charCodeAt(t);for(r=t>0?e.src.charCodeAt(t-1):-1;s<u&&e.src.charCodeAt(s)===l;)s++;return s>=u&&(i=!1),(o=s-t)>=4?i=a=!1:(32!==(n=s<u?e.src.charCodeAt(s):-1)&&10!==n||(i=!1),32!==r&&10!==r||(a=!1),95===l&&(ue(r)&&(i=!1),ue(n)&&(a=!1))),{can_open:i,can_close:a,delims:o}}\"\\\\!\\\"#$%&'()*+,./:;<=>?@[]^_`{|}~-\".split(\"\").forEach(function(e){ie[e.charCodeAt(0)]=1});var ce=/\\\\([ \\\\!\"#$%&'()*+,.\\/:;<=>?@[\\]^_`{|}~-])/g;var pe=/\\\\([ \\\\!\"#$%&'()*+,.\\/:;<=>?@[\\]^_`{|}~-])/g;var he=[\"coap\",\"doi\",\"javascript\",\"aaa\",\"aaas\",\"about\",\"acap\",\"cap\",\"cid\",\"crid\",\"data\",\"dav\",\"dict\",\"dns\",\"file\",\"ftp\",\"geo\",\"go\",\"gopher\",\"h323\",\"http\",\"https\",\"iax\",\"icap\",\"im\",\"imap\",\"info\",\"ipp\",\"iris\",\"iris.beep\",\"iris.xpc\",\"iris.xpcs\",\"iris.lwz\",\"ldap\",\"mailto\",\"mid\",\"msrp\",\"msrps\",\"mtqp\",\"mupdate\",\"news\",\"nfs\",\"ni\",\"nih\",\"nntp\",\"opaquelocktoken\",\"pop\",\"pres\",\"rtsp\",\"service\",\"session\",\"shttp\",\"sieve\",\"sip\",\"sips\",\"sms\",\"snmp\",\"soap.beep\",\"soap.beeps\",\"tag\",\"tel\",\"telnet\",\"tftp\",\"thismessage\",\"tn3270\",\"tip\",\"tv\",\"urn\",\"vemmi\",\"ws\",\"wss\",\"xcon\",\"xcon-userid\",\"xmlrpc.beep\",\"xmlrpc.beeps\",\"xmpp\",\"z39.50r\",\"z39.50s\",\"adiumxtra\",\"afp\",\"afs\",\"aim\",\"apt\",\"attachment\",\"aw\",\"beshare\",\"bitcoin\",\"bolo\",\"callto\",\"chrome\",\"chrome-extension\",\"com-eventbrite-attendee\",\"content\",\"cvs\",\"dlna-playsingle\",\"dlna-playcontainer\",\"dtn\",\"dvb\",\"ed2k\",\"facetime\",\"feed\",\"finger\",\"fish\",\"gg\",\"git\",\"gizmoproject\",\"gtalk\",\"hcp\",\"icon\",\"ipn\",\"irc\",\"irc6\",\"ircs\",\"itms\",\"jar\",\"jms\",\"keyparc\",\"lastfm\",\"ldaps\",\"magnet\",\"maps\",\"market\",\"message\",\"mms\",\"ms-help\",\"msnim\",\"mumble\",\"mvn\",\"notes\",\"oid\",\"palm\",\"paparazzi\",\"platform\",\"proxy\",\"psyc\",\"query\",\"res\",\"resource\",\"rmi\",\"rsync\",\"rtmp\",\"secondlife\",\"sftp\",\"sgn\",\"skype\",\"smb\",\"soldat\",\"spotify\",\"ssh\",\"steam\",\"svn\",\"teamspeak\",\"things\",\"udp\",\"unreal\",\"ut2004\",\"ventrilo\",\"view-source\",\"webcal\",\"wtai\",\"wyciwyg\",\"xfire\",\"xri\",\"ymsgr\"],fe=/^<([a-zA-Z0-9.!#$%&'*+\\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*)>/,ge=/^<([a-zA-Z.\\-]{1,25}):([^<>\\x00-\\x20]*)>/;function de(e,t){return e=e.source,t=t||\"\",function r(n,o){return n?(o=o.source||o,e=e.replace(n,o),r):new RegExp(e,t)}}var me=de(/(?:unquoted|single_quoted|double_quoted)/)(\"unquoted\",/[^\"'=<>`\\x00-\\x20]+/)(\"single_quoted\",/'[^']*'/)(\"double_quoted\",/\"[^\"]*\"/)(),be=de(/(?:\\s+attr_name(?:\\s*=\\s*attr_value)?)/)(\"attr_name\",/[a-zA-Z_:][a-zA-Z0-9:._-]*/)(\"attr_value\",me)(),ve=de(/<[A-Za-z][A-Za-z0-9]*attribute*\\s*\\/?>/)(\"attribute\",be)(),ke=de(/^(?:open_tag|close_tag|comment|processing|declaration|cdata)/)(\"open_tag\",ve)(\"close_tag\",/<\\/[A-Za-z][A-Za-z0-9]*\\s*>/)(\"comment\",/<!---->|<!--(?:-?[^>-])(?:-?[^-])*-->/)(\"processing\",/<[?].*?[?]>/)(\"declaration\",/<![A-Z]+\\s+[^>]*>/)(\"cdata\",/<!\\[CDATA\\[[\\s\\S]*?\\]\\]>/)();var Ae=/^&#((?:x[a-f0-9]{1,8}|[0-9]{1,8}));/i,ye=/^&([a-z][a-z0-9]{1,31});/i;var xe=[[\"text\",function(e,t){for(var r=e.pos;r<e.posMax&&!se(e.src.charCodeAt(r));)r++;return r!==e.pos&&(t||(e.pending+=e.src.slice(e.pos,r)),e.pos=r,!0)}],[\"newline\",function(e,t){var r,n,o=e.pos;if(10!==e.src.charCodeAt(o))return!1;if(r=e.pending.length-1,n=e.posMax,!t)if(r>=0&&32===e.pending.charCodeAt(r))if(r>=1&&32===e.pending.charCodeAt(r-1)){for(var s=r-2;s>=0;s--)if(32!==e.pending.charCodeAt(s)){e.pending=e.pending.substring(0,s+1);break}e.push({type:\"hardbreak\",level:e.level})}else e.pending=e.pending.slice(0,-1),e.push({type:\"softbreak\",level:e.level});else e.push({type:\"softbreak\",level:e.level});for(o++;o<n&&32===e.src.charCodeAt(o);)o++;return e.pos=o,!0}],[\"escape\",function(e,t){var r,n=e.pos,o=e.posMax;if(92!==e.src.charCodeAt(n))return!1;if(++n<o){if((r=e.src.charCodeAt(n))<256&&0!==ie[r])return t||(e.pending+=e.src[n]),e.pos+=2,!0;if(10===r){for(t||e.push({type:\"hardbreak\",level:e.level}),n++;n<o&&32===e.src.charCodeAt(n);)n++;return e.pos=n,!0}}return t||(e.pending+=\"\\\\\"),e.pos++,!0}],[\"backticks\",function(e,t){var r,n,o,s,i,a=e.pos;if(96!==e.src.charCodeAt(a))return!1;for(r=a,a++,n=e.posMax;a<n&&96===e.src.charCodeAt(a);)a++;for(o=e.src.slice(r,a),s=i=a;-1!==(s=e.src.indexOf(\"`\",i));){for(i=s+1;i<n&&96===e.src.charCodeAt(i);)i++;if(i-s===o.length)return t||e.push({type:\"code\",content:e.src.slice(a,s).replace(/[ \\n]+/g,\" \").trim(),block:!1,level:e.level}),e.pos=i,!0}return t||(e.pending+=o),e.pos+=o.length,!0}],[\"del\",function(e,t){var r,n,o,s,i,a=e.posMax,u=e.pos;if(126!==e.src.charCodeAt(u))return!1;if(t)return!1;if(u+4>=a)return!1;if(126!==e.src.charCodeAt(u+1))return!1;if(e.level>=e.options.maxNesting)return!1;if(s=u>0?e.src.charCodeAt(u-1):-1,i=e.src.charCodeAt(u+2),126===s)return!1;if(126===i)return!1;if(32===i||10===i)return!1;for(n=u+2;n<a&&126===e.src.charCodeAt(n);)n++;if(n>u+3)return e.pos+=n-u,t||(e.pending+=e.src.slice(u,n)),!0;for(e.pos=u+2,o=1;e.pos+1<a;){if(126===e.src.charCodeAt(e.pos)&&126===e.src.charCodeAt(e.pos+1)&&(s=e.src.charCodeAt(e.pos-1),126!==(i=e.pos+2<a?e.src.charCodeAt(e.pos+2):-1)&&126!==s&&(32!==s&&10!==s?o--:32!==i&&10!==i&&o++,o<=0))){r=!0;break}e.parser.skipToken(e)}return r?(e.posMax=e.pos,e.pos=u+2,t||(e.push({type:\"del_open\",level:e.level++}),e.parser.tokenize(e),e.push({type:\"del_close\",level:--e.level})),e.pos=e.posMax+2,e.posMax=a,!0):(e.pos=u,!1)}],[\"ins\",function(e,t){var r,n,o,s,i,a=e.posMax,u=e.pos;if(43!==e.src.charCodeAt(u))return!1;if(t)return!1;if(u+4>=a)return!1;if(43!==e.src.charCodeAt(u+1))return!1;if(e.level>=e.options.maxNesting)return!1;if(s=u>0?e.src.charCodeAt(u-1):-1,i=e.src.charCodeAt(u+2),43===s)return!1;if(43===i)return!1;if(32===i||10===i)return!1;for(n=u+2;n<a&&43===e.src.charCodeAt(n);)n++;if(n!==u+2)return e.pos+=n-u,t||(e.pending+=e.src.slice(u,n)),!0;for(e.pos=u+2,o=1;e.pos+1<a;){if(43===e.src.charCodeAt(e.pos)&&43===e.src.charCodeAt(e.pos+1)&&(s=e.src.charCodeAt(e.pos-1),43!==(i=e.pos+2<a?e.src.charCodeAt(e.pos+2):-1)&&43!==s&&(32!==s&&10!==s?o--:32!==i&&10!==i&&o++,o<=0))){r=!0;break}e.parser.skipToken(e)}return r?(e.posMax=e.pos,e.pos=u+2,t||(e.push({type:\"ins_open\",level:e.level++}),e.parser.tokenize(e),e.push({type:\"ins_close\",level:--e.level})),e.pos=e.posMax+2,e.posMax=a,!0):(e.pos=u,!1)}],[\"mark\",function(e,t){var r,n,o,s,i,a=e.posMax,u=e.pos;if(61!==e.src.charCodeAt(u))return!1;if(t)return!1;if(u+4>=a)return!1;if(61!==e.src.charCodeAt(u+1))return!1;if(e.level>=e.options.maxNesting)return!1;if(s=u>0?e.src.charCodeAt(u-1):-1,i=e.src.charCodeAt(u+2),61===s)return!1;if(61===i)return!1;if(32===i||10===i)return!1;for(n=u+2;n<a&&61===e.src.charCodeAt(n);)n++;if(n!==u+2)return e.pos+=n-u,t||(e.pending+=e.src.slice(u,n)),!0;for(e.pos=u+2,o=1;e.pos+1<a;){if(61===e.src.charCodeAt(e.pos)&&61===e.src.charCodeAt(e.pos+1)&&(s=e.src.charCodeAt(e.pos-1),61!==(i=e.pos+2<a?e.src.charCodeAt(e.pos+2):-1)&&61!==s&&(32!==s&&10!==s?o--:32!==i&&10!==i&&o++,o<=0))){r=!0;break}e.parser.skipToken(e)}return r?(e.posMax=e.pos,e.pos=u+2,t||(e.push({type:\"mark_open\",level:e.level++}),e.parser.tokenize(e),e.push({type:\"mark_close\",level:--e.level})),e.pos=e.posMax+2,e.posMax=a,!0):(e.pos=u,!1)}],[\"emphasis\",function(e,t){var r,n,o,s,i,a,u,l=e.posMax,c=e.pos,p=e.src.charCodeAt(c);if(95!==p&&42!==p)return!1;if(t)return!1;if(r=(u=le(e,c)).delims,!u.can_open)return e.pos+=r,t||(e.pending+=e.src.slice(c,e.pos)),!0;if(e.level>=e.options.maxNesting)return!1;for(e.pos=c+r,a=[r];e.pos<l;)if(e.src.charCodeAt(e.pos)!==p)e.parser.skipToken(e);else{if(n=(u=le(e,e.pos)).delims,u.can_close){for(s=a.pop(),i=n;s!==i;){if(i<s){a.push(s-i);break}if(i-=s,0===a.length)break;e.pos+=s,s=a.pop()}if(0===a.length){r=s,o=!0;break}e.pos+=n;continue}u.can_open&&a.push(n),e.pos+=n}return o?(e.posMax=e.pos,e.pos=c+r,t||(2!==r&&3!==r||e.push({type:\"strong_open\",level:e.level++}),1!==r&&3!==r||e.push({type:\"em_open\",level:e.level++}),e.parser.tokenize(e),1!==r&&3!==r||e.push({type:\"em_close\",level:--e.level}),2!==r&&3!==r||e.push({type:\"strong_close\",level:--e.level})),e.pos=e.posMax+r,e.posMax=l,!0):(e.pos=c,!1)}],[\"sub\",function(e,t){var r,n,o=e.posMax,s=e.pos;if(126!==e.src.charCodeAt(s))return!1;if(t)return!1;if(s+2>=o)return!1;if(e.level>=e.options.maxNesting)return!1;for(e.pos=s+1;e.pos<o;){if(126===e.src.charCodeAt(e.pos)){r=!0;break}e.parser.skipToken(e)}return r&&s+1!==e.pos?(n=e.src.slice(s+1,e.pos)).match(/(^|[^\\\\])(\\\\\\\\)*\\s/)?(e.pos=s,!1):(e.posMax=e.pos,e.pos=s+1,t||e.push({type:\"sub\",level:e.level,content:n.replace(ce,\"$1\")}),e.pos=e.posMax+1,e.posMax=o,!0):(e.pos=s,!1)}],[\"sup\",function(e,t){var r,n,o=e.posMax,s=e.pos;if(94!==e.src.charCodeAt(s))return!1;if(t)return!1;if(s+2>=o)return!1;if(e.level>=e.options.maxNesting)return!1;for(e.pos=s+1;e.pos<o;){if(94===e.src.charCodeAt(e.pos)){r=!0;break}e.parser.skipToken(e)}return r&&s+1!==e.pos?(n=e.src.slice(s+1,e.pos)).match(/(^|[^\\\\])(\\\\\\\\)*\\s/)?(e.pos=s,!1):(e.posMax=e.pos,e.pos=s+1,t||e.push({type:\"sup\",level:e.level,content:n.replace(pe,\"$1\")}),e.pos=e.posMax+1,e.posMax=o,!0):(e.pos=s,!1)}],[\"links\",function(e,t){var r,n,o,s,i,a,u,l,c=!1,p=e.pos,h=e.posMax,f=e.pos,g=e.src.charCodeAt(f);if(33===g&&(c=!0,g=e.src.charCodeAt(++f)),91!==g)return!1;if(e.level>=e.options.maxNesting)return!1;if(r=f+1,(n=D(e,f))<0)return!1;if((a=n+1)<h&&40===e.src.charCodeAt(a)){for(a++;a<h&&(32===(l=e.src.charCodeAt(a))||10===l);a++);if(a>=h)return!1;for(f=a,q(e,a)?(s=e.linkContent,a=e.pos):s=\"\",f=a;a<h&&(32===(l=e.src.charCodeAt(a))||10===l);a++);if(a<h&&f!==a&&F(e,a))for(i=e.linkContent,a=e.pos;a<h&&(32===(l=e.src.charCodeAt(a))||10===l);a++);else i=\"\";if(a>=h||41!==e.src.charCodeAt(a))return e.pos=p,!1;a++}else{if(e.linkLevel>0)return!1;for(;a<h&&(32===(l=e.src.charCodeAt(a))||10===l);a++);if(a<h&&91===e.src.charCodeAt(a)&&(f=a+1,(a=D(e,a))>=0?o=e.src.slice(f,a++):a=f-1),o||(void 0===o&&(a=n+1),o=e.src.slice(r,n)),!(u=e.env.references[M(o)]))return e.pos=p,!1;s=u.href,i=u.title}return t||(e.pos=r,e.posMax=n,c?e.push({type:\"image\",src:s,title:i,alt:e.src.substr(r,n-r),level:e.level}):(e.push({type:\"link_open\",href:s,title:i,level:e.level++}),e.linkLevel++,e.parser.tokenize(e),e.linkLevel--,e.push({type:\"link_close\",level:--e.level}))),e.pos=a,e.posMax=h,!0}],[\"footnote_inline\",function(e,t){var r,n,o,s,i=e.posMax,a=e.pos;return!(a+2>=i||94!==e.src.charCodeAt(a)||91!==e.src.charCodeAt(a+1)||e.level>=e.options.maxNesting||(r=a+2,(n=D(e,a+1))<0||(t||(e.env.footnotes||(e.env.footnotes={}),e.env.footnotes.list||(e.env.footnotes.list=[]),o=e.env.footnotes.list.length,e.pos=r,e.posMax=n,e.push({type:\"footnote_ref\",id:o,level:e.level}),e.linkLevel++,s=e.tokens.length,e.parser.tokenize(e),e.env.footnotes.list[o]={tokens:e.tokens.splice(s)},e.linkLevel--),e.pos=n+1,e.posMax=i,0)))}],[\"footnote_ref\",function(e,t){var r,n,o,s,i=e.posMax,a=e.pos;if(a+3>i)return!1;if(!e.env.footnotes||!e.env.footnotes.refs)return!1;if(91!==e.src.charCodeAt(a))return!1;if(94!==e.src.charCodeAt(a+1))return!1;if(e.level>=e.options.maxNesting)return!1;for(n=a+2;n<i;n++){if(32===e.src.charCodeAt(n))return!1;if(10===e.src.charCodeAt(n))return!1;if(93===e.src.charCodeAt(n))break}return!(n===a+2||n>=i||(n++,r=e.src.slice(a+2,n-1),void 0===e.env.footnotes.refs[\":\"+r]||(t||(e.env.footnotes.list||(e.env.footnotes.list=[]),e.env.footnotes.refs[\":\"+r]<0?(o=e.env.footnotes.list.length,e.env.footnotes.list[o]={label:r,count:0},e.env.footnotes.refs[\":\"+r]=o):o=e.env.footnotes.refs[\":\"+r],s=e.env.footnotes.list[o].count,e.env.footnotes.list[o].count++,e.push({type:\"footnote_ref\",id:o,subId:s,level:e.level})),e.pos=n,e.posMax=i,0)))}],[\"autolink\",function(e,t){var r,n,o,s,i,a=e.pos;return!(60!==e.src.charCodeAt(a)||(r=e.src.slice(a)).indexOf(\">\")<0||((n=r.match(ge))?he.indexOf(n[1].toLowerCase())<0||(i=B(s=n[0].slice(1,-1)),!e.parser.validateLink(s)||(t||(e.push({type:\"link_open\",href:i,level:e.level}),e.push({type:\"text\",content:s,level:e.level+1}),e.push({type:\"link_close\",level:e.level})),e.pos+=n[0].length,0)):!(o=r.match(fe))||(i=B(\"mailto:\"+(s=o[0].slice(1,-1))),!e.parser.validateLink(i)||(t||(e.push({type:\"link_open\",href:i,level:e.level}),e.push({type:\"text\",content:s,level:e.level+1}),e.push({type:\"link_close\",level:e.level})),e.pos+=o[0].length,0))))}],[\"htmltag\",function(e,t){var r,n,o,s=e.pos;return!(!e.options.html||(o=e.posMax,60!==e.src.charCodeAt(s)||s+2>=o||33!==(r=e.src.charCodeAt(s+1))&&63!==r&&47!==r&&!function(e){var t=32|e;return t>=97&&t<=122}(r)||!(n=e.src.slice(s).match(ke))||(t||e.push({type:\"htmltag\",content:e.src.slice(s,s+n[0].length),level:e.level}),e.pos+=n[0].length,0)))}],[\"entity\",function(e,t){var r,o,s=e.pos,i=e.posMax;if(38!==e.src.charCodeAt(s))return!1;if(s+1<i)if(35===e.src.charCodeAt(s+1)){if(o=e.src.slice(s).match(Ae))return t||(r=\"x\"===o[1][0].toLowerCase()?parseInt(o[1].slice(1),16):parseInt(o[1],10),e.pending+=l(r)?c(r):c(65533)),e.pos+=o[0].length,!0}else if(o=e.src.slice(s).match(ye)){var a=n(o[1]);if(o[1]!==a)return t||(e.pending+=a),e.pos+=o[0].length,!0}return t||(e.pending+=\"&\"),e.pos++,!0}]];function we(){this.ruler=new C;for(var e=0;e<xe.length;e++)this.ruler.push(xe[e][0],xe[e][1]);this.validateLink=Ce}function Ce(e){var t=e.trim().toLowerCase();return-1===(t=g(t)).indexOf(\":\")||-1===[\"vbscript\",\"javascript\",\"file\",\"data\"].indexOf(t.split(\":\")[0])}we.prototype.skipToken=function(e){var t,r,n=this.ruler.getRules(\"\"),o=n.length,s=e.pos;if((r=e.cacheGet(s))>0)e.pos=r;else{for(t=0;t<o;t++)if(n[t](e,!0))return void e.cacheSet(s,e.pos);e.pos++,e.cacheSet(s,e.pos)}},we.prototype.tokenize=function(e){for(var t,r,n=this.ruler.getRules(\"\"),o=n.length,s=e.posMax;e.pos<s;){for(r=0;r<o&&!(t=n[r](e,!1));r++);if(t){if(e.pos>=s)break}else e.pending+=e.src[e.pos++]}e.pending&&e.pushPending()},we.prototype.parse=function(e,t,r,n){var o=new E(e,this,t,r,n);this.tokenize(o)};var Ee={default:{options:{html:!1,xhtmlOut:!1,breaks:!1,langPrefix:\"language-\",linkTarget:\"\",typographer:!1,quotes:\"“”‘’\",highlight:null,maxNesting:20},components:{core:{rules:[\"block\",\"inline\",\"references\",\"replacements\",\"smartquotes\",\"references\",\"abbr2\",\"footnote_tail\"]},block:{rules:[\"blockquote\",\"code\",\"fences\",\"footnote\",\"heading\",\"hr\",\"htmlblock\",\"lheading\",\"list\",\"paragraph\",\"table\"]},inline:{rules:[\"autolink\",\"backticks\",\"del\",\"emphasis\",\"entity\",\"escape\",\"footnote_ref\",\"htmltag\",\"links\",\"newline\",\"text\"]}}},full:{options:{html:!1,xhtmlOut:!1,breaks:!1,langPrefix:\"language-\",linkTarget:\"\",typographer:!1,quotes:\"“”‘’\",highlight:null,maxNesting:20},components:{core:{},block:{},inline:{}}},commonmark:{options:{html:!0,xhtmlOut:!0,breaks:!1,langPrefix:\"language-\",linkTarget:\"\",typographer:!1,quotes:\"“”‘’\",highlight:null,maxNesting:20},components:{core:{rules:[\"block\",\"inline\",\"references\",\"abbr2\"]},block:{rules:[\"blockquote\",\"code\",\"fences\",\"heading\",\"hr\",\"htmlblock\",\"lheading\",\"list\",\"paragraph\"]},inline:{rules:[\"autolink\",\"backticks\",\"emphasis\",\"entity\",\"escape\",\"htmltag\",\"links\",\"newline\",\"text\"]}}}};function De(e,t,r){this.src=t,this.env=r,this.options=e.options,this.tokens=[],this.inlineMode=!1,this.inline=e.inline,this.block=e.block,this.renderer=e.renderer,this.typographer=e.typographer}function _e(e,t){\"string\"!=typeof e&&(t=e,e=\"default\"),t&&null!=t.linkify&&console.warn(\"linkify option is removed. Use linkify plugin instead:\\n\\nimport Remarkable from 'remarkable';\\nimport linkify from 'remarkable/linkify';\\nnew Remarkable().use(linkify)\\n\"),this.inline=new we,this.block=new te,this.core=new G,this.renderer=new w,this.ruler=new C,this.options={},this.configure(Ee[e]),this.set(t||{})}function Be(e,t){if(Array.prototype.indexOf)return e.indexOf(t);for(var r=0,n=e.length;r<n;r++)if(e[r]===t)return r;return-1}function qe(e,t){for(var r=e.length-1;r>=0;r--)!0===t(e[r])&&e.splice(r,1)}function Fe(e){throw new Error(\"Unhandled case for value: '\"+e+\"'\")}_e.prototype.set=function(e){i(this.options,e)},_e.prototype.configure=function(e){var t=this;if(!e)throw new Error(\"Wrong `remarkable` preset, check name/content\");e.options&&t.set(e.options),e.components&&Object.keys(e.components).forEach(function(r){e.components[r].rules&&t[r].ruler.enable(e.components[r].rules,!0)})},_e.prototype.use=function(e,t){return e(this,t),this},_e.prototype.parse=function(e,t){var r=new De(this,e,t);return this.core.process(r),r.tokens},_e.prototype.render=function(e,t){return t=t||{},this.renderer.render(this.parse(e,t),this.options,t)},_e.prototype.parseInline=function(e,t){var r=new De(this,e,t);return r.inlineMode=!0,this.core.process(r),r.tokens},_e.prototype.renderInline=function(e,t){return t=t||{},this.renderer.render(this.parseInline(e,t),this.options,t)};var Me=function(){function e(e){void 0===e&&(e={}),this.tagName=\"\",this.attrs={},this.innerHTML=\"\",this.whitespaceRegex=/\\s+/,this.tagName=e.tagName||\"\",this.attrs=e.attrs||{},this.innerHTML=e.innerHtml||e.innerHTML||\"\"}return e.prototype.setTagName=function(e){return this.tagName=e,this},e.prototype.getTagName=function(){return this.tagName||\"\"},e.prototype.setAttr=function(e,t){return this.getAttrs()[e]=t,this},e.prototype.getAttr=function(e){return this.getAttrs()[e]},e.prototype.setAttrs=function(e){return Object.assign(this.getAttrs(),e),this},e.prototype.getAttrs=function(){return this.attrs||(this.attrs={})},e.prototype.setClass=function(e){return this.setAttr(\"class\",e)},e.prototype.addClass=function(e){for(var t,r=this.getClass(),n=this.whitespaceRegex,o=r?r.split(n):[],s=e.split(n);t=s.shift();)-1===Be(o,t)&&o.push(t);return this.getAttrs().class=o.join(\" \"),this},e.prototype.removeClass=function(e){for(var t,r=this.getClass(),n=this.whitespaceRegex,o=r?r.split(n):[],s=e.split(n);o.length&&(t=s.shift());){var i=Be(o,t);-1!==i&&o.splice(i,1)}return this.getAttrs().class=o.join(\" \"),this},e.prototype.getClass=function(){return this.getAttrs().class||\"\"},e.prototype.hasClass=function(e){return-1!==(\" \"+this.getClass()+\" \").indexOf(\" \"+e+\" \")},e.prototype.setInnerHTML=function(e){return this.innerHTML=e,this},e.prototype.setInnerHtml=function(e){return this.setInnerHTML(e)},e.prototype.getInnerHTML=function(){return this.innerHTML||\"\"},e.prototype.getInnerHtml=function(){return this.getInnerHTML()},e.prototype.toAnchorString=function(){var e=this.getTagName(),t=this.buildAttrsStr();return[\"<\",e,t=t?\" \"+t:\"\",\">\",this.getInnerHtml(),\"</\",e,\">\"].join(\"\")},e.prototype.buildAttrsStr=function(){if(!this.attrs)return\"\";var e=this.getAttrs(),t=[];for(var r in e)e.hasOwnProperty(r)&&t.push(r+'=\"'+e[r]+'\"');return t.join(\" \")},e}();var Se=function(){function e(e){void 0===e&&(e={}),this.newWindow=!1,this.truncate={},this.className=\"\",this.newWindow=e.newWindow||!1,this.truncate=e.truncate||{},this.className=e.className||\"\"}return e.prototype.build=function(e){return new Me({tagName:\"a\",attrs:this.createAttrs(e),innerHtml:this.processAnchorText(e.getAnchorText())})},e.prototype.createAttrs=function(e){var t={href:e.getAnchorHref()},r=this.createCssClass(e);return r&&(t.class=r),this.newWindow&&(t.target=\"_blank\",t.rel=\"noopener noreferrer\"),this.truncate&&this.truncate.length&&this.truncate.length<e.getAnchorText().length&&(t.title=e.getAnchorHref()),t},e.prototype.createCssClass=function(e){var t=this.className;if(t){for(var r=[t],n=e.getCssClassSuffixes(),o=0,s=n.length;o<s;o++)r.push(t+\"-\"+n[o]);return r.join(\" \")}return\"\"},e.prototype.processAnchorText=function(e){return e=this.doTruncate(e)},e.prototype.doTruncate=function(e){var t=this.truncate;if(!t||!t.length)return e;var r=t.length,n=t.location;return\"smart\"===n?function(e,t,r){var n,o;null==r?(r=\"&hellip;\",o=3,n=8):(o=r.length,n=r.length);var s=function(e){var t=\"\";return e.scheme&&e.host&&(t+=e.scheme+\"://\"),e.host&&(t+=e.host),e.path&&(t+=\"/\"+e.path),e.query&&(t+=\"?\"+e.query),e.fragment&&(t+=\"#\"+e.fragment),t},i=function(e,t){var n=t/2,o=Math.ceil(n),s=-1*Math.floor(n),i=\"\";return s<0&&(i=e.substr(s)),e.substr(0,o)+r+i};if(e.length<=t)return e;var a=t-o,u=function(e){var t={},r=e,n=r.match(/^([a-z]+):\\/\\//i);return n&&(t.scheme=n[1],r=r.substr(n[0].length)),(n=r.match(/^(.*?)(?=(\\?|#|\\/|$))/i))&&(t.host=n[1],r=r.substr(n[0].length)),(n=r.match(/^\\/(.*?)(?=(\\?|#|$))/i))&&(t.path=n[1],r=r.substr(n[0].length)),(n=r.match(/^\\?(.*?)(?=(#|$))/i))&&(t.query=n[1],r=r.substr(n[0].length)),(n=r.match(/^#(.*?)$/i))&&(t.fragment=n[1]),t}(e);if(u.query){var l=u.query.match(/^(.*?)(?=(\\?|\\#))(.*?)$/i);l&&(u.query=u.query.substr(0,l[1].length),e=s(u))}if(e.length<=t)return e;if(u.host&&(u.host=u.host.replace(/^www\\./,\"\"),e=s(u)),e.length<=t)return e;var c=\"\";if(u.host&&(c+=u.host),c.length>=a)return u.host.length==t?(u.host.substr(0,t-o)+r).substr(0,a+n):i(c,a).substr(0,a+n);var p=\"\";if(u.path&&(p+=\"/\"+u.path),u.query&&(p+=\"?\"+u.query),p){if((c+p).length>=a)return(c+p).length==t?(c+p).substr(0,t):(c+i(p,a-c.length)).substr(0,a+n);c+=p}if(u.fragment){var h=\"#\"+u.fragment;if((c+h).length>=a)return(c+h).length==t?(c+h).substr(0,t):(c+i(h,a-c.length)).substr(0,a+n);c+=h}if(u.scheme&&u.host){var f=u.scheme+\"://\";if((c+f).length<a)return(f+c).substr(0,t)}if(c.length<=t)return c;var g=\"\";return a>0&&(g=c.substr(-1*Math.floor(a/2))),(c.substr(0,Math.ceil(a/2))+r+g).substr(0,a+n)}(e,r):\"middle\"===n?function(e,t,r){if(e.length<=t)return e;var n,o;null==r?(r=\"&hellip;\",n=8,o=3):(n=r.length,o=r.length);var s=t-o,i=\"\";return s>0&&(i=e.substr(-1*Math.floor(s/2))),(e.substr(0,Math.ceil(s/2))+r+i).substr(0,s+n)}(e,r):function(e,t,r){return function(e,t,r){var n;return e.length>t&&(null==r?(r=\"&hellip;\",n=3):n=r.length,e=e.substring(0,t-n)+r),e}(e,t,r)}(e,r)},e}(),Te=function(){function e(e){this.__jsduckDummyDocProp=null,this.matchedText=\"\",this.offset=0,this.tagBuilder=e.tagBuilder,this.matchedText=e.matchedText,this.offset=e.offset}return e.prototype.getMatchedText=function(){return this.matchedText},e.prototype.setOffset=function(e){this.offset=e},e.prototype.getOffset=function(){return this.offset},e.prototype.getCssClassSuffixes=function(){return[this.getType()]},e.prototype.buildTag=function(){return this.tagBuilder.build(this)},e}(),Le=function(e,t){return(Le=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r])})(e,t)};function Re(e,t){function r(){this.constructor=e}Le(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)}var Ne=function(){return(Ne=Object.assign||function(e){for(var t,r=1,n=arguments.length;r<n;r++)for(var o in t=arguments[r])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e}).apply(this,arguments)},ze=function(e){function t(t){var r=e.call(this,t)||this;return r.email=\"\",r.email=t.email,r}return Re(t,e),t.prototype.getType=function(){return\"email\"},t.prototype.getEmail=function(){return this.email},t.prototype.getAnchorHref=function(){return\"mailto:\"+this.email},t.prototype.getAnchorText=function(){return this.email},t}(Te),Pe=function(e){function t(t){var r=e.call(this,t)||this;return r.serviceName=\"\",r.hashtag=\"\",r.serviceName=t.serviceName,r.hashtag=t.hashtag,r}return Re(t,e),t.prototype.getType=function(){return\"hashtag\"},t.prototype.getServiceName=function(){return this.serviceName},t.prototype.getHashtag=function(){return this.hashtag},t.prototype.getAnchorHref=function(){var e=this.serviceName,t=this.hashtag;switch(e){case\"twitter\":return\"https://twitter.com/hashtag/\"+t;case\"facebook\":return\"https://www.facebook.com/hashtag/\"+t;case\"instagram\":return\"https://instagram.com/explore/tags/\"+t;default:throw new Error(\"Unknown service name to point hashtag to: \"+e)}},t.prototype.getAnchorText=function(){return\"#\"+this.hashtag},t}(Te),je=function(e){function t(t){var r=e.call(this,t)||this;return r.serviceName=\"twitter\",r.mention=\"\",r.mention=t.mention,r.serviceName=t.serviceName,r}return Re(t,e),t.prototype.getType=function(){return\"mention\"},t.prototype.getMention=function(){return this.mention},t.prototype.getServiceName=function(){return this.serviceName},t.prototype.getAnchorHref=function(){switch(this.serviceName){case\"twitter\":return\"https://twitter.com/\"+this.mention;case\"instagram\":return\"https://instagram.com/\"+this.mention;case\"soundcloud\":return\"https://soundcloud.com/\"+this.mention;default:throw new Error(\"Unknown service name to point mention to: \"+this.serviceName)}},t.prototype.getAnchorText=function(){return\"@\"+this.mention},t.prototype.getCssClassSuffixes=function(){var t=e.prototype.getCssClassSuffixes.call(this),r=this.getServiceName();return r&&t.push(r),t},t}(Te),Ie=function(e){function t(t){var r=e.call(this,t)||this;return r.number=\"\",r.plusSign=!1,r.number=t.number,r.plusSign=t.plusSign,r}return Re(t,e),t.prototype.getType=function(){return\"phone\"},t.prototype.getPhoneNumber=function(){return this.number},t.prototype.getNumber=function(){return this.getPhoneNumber()},t.prototype.getAnchorHref=function(){return\"tel:\"+(this.plusSign?\"+\":\"\")+this.number},t.prototype.getAnchorText=function(){return this.matchedText},t}(Te),Oe=function(e){function t(t){var r=e.call(this,t)||this;return r.url=\"\",r.urlMatchType=\"scheme\",r.protocolUrlMatch=!1,r.protocolRelativeMatch=!1,r.stripPrefix={scheme:!0,www:!0},r.stripTrailingSlash=!0,r.decodePercentEncoding=!0,r.schemePrefixRegex=/^(https?:\\/\\/)?/i,r.wwwPrefixRegex=/^(https?:\\/\\/)?(www\\.)?/i,r.protocolRelativeRegex=/^\\/\\//,r.protocolPrepended=!1,r.urlMatchType=t.urlMatchType,r.url=t.url,r.protocolUrlMatch=t.protocolUrlMatch,r.protocolRelativeMatch=t.protocolRelativeMatch,r.stripPrefix=t.stripPrefix,r.stripTrailingSlash=t.stripTrailingSlash,r.decodePercentEncoding=t.decodePercentEncoding,r}return Re(t,e),t.prototype.getType=function(){return\"url\"},t.prototype.getUrlMatchType=function(){return this.urlMatchType},t.prototype.getUrl=function(){var e=this.url;return this.protocolRelativeMatch||this.protocolUrlMatch||this.protocolPrepended||(e=this.url=\"http://\"+e,this.protocolPrepended=!0),e},t.prototype.getAnchorHref=function(){return this.getUrl().replace(/&amp;/g,\"&\")},t.prototype.getAnchorText=function(){var e=this.getMatchedText();return this.protocolRelativeMatch&&(e=this.stripProtocolRelativePrefix(e)),this.stripPrefix.scheme&&(e=this.stripSchemePrefix(e)),this.stripPrefix.www&&(e=this.stripWwwPrefix(e)),this.stripTrailingSlash&&(e=this.removeTrailingSlash(e)),this.decodePercentEncoding&&(e=this.removePercentEncoding(e)),e},t.prototype.stripSchemePrefix=function(e){return e.replace(this.schemePrefixRegex,\"\")},t.prototype.stripWwwPrefix=function(e){return e.replace(this.wwwPrefixRegex,\"$1\")},t.prototype.stripProtocolRelativePrefix=function(e){return e.replace(this.protocolRelativeRegex,\"\")},t.prototype.removeTrailingSlash=function(e){return\"/\"===e.charAt(e.length-1)&&(e=e.slice(0,-1)),e},t.prototype.removePercentEncoding=function(e){var t=e.replace(/%22/gi,\"&quot;\").replace(/%26/gi,\"&amp;\").replace(/%27/gi,\"&#39;\").replace(/%3C/gi,\"&lt;\").replace(/%3E/gi,\"&gt;\");try{return decodeURIComponent(t)}catch(e){return t}},t}(Te),Ue=function(e){this.__jsduckDummyDocProp=null,this.tagBuilder=e.tagBuilder},He=/[A-Za-z]/,Ve=/[0-9]/,Ge=/\\s/,$e=/['\"]/,Ze=/[\\x00-\\x1F\\x7F]/,We=/A-Za-z\\xAA\\xB5\\xBA\\xC0-\\xD6\\xD8-\\xF6\\xF8-\\u02C1\\u02C6-\\u02D1\\u02E0-\\u02E4\\u02EC\\u02EE\\u0370-\\u0374\\u0376\\u0377\\u037A-\\u037D\\u037F\\u0386\\u0388-\\u038A\\u038C\\u038E-\\u03A1\\u03A3-\\u03F5\\u03F7-\\u0481\\u048A-\\u052F\\u0531-\\u0556\\u0559\\u0561-\\u0587\\u05D0-\\u05EA\\u05F0-\\u05F2\\u0620-\\u064A\\u066E\\u066F\\u0671-\\u06D3\\u06D5\\u06E5\\u06E6\\u06EE\\u06EF\\u06FA-\\u06FC\\u06FF\\u0710\\u0712-\\u072F\\u074D-\\u07A5\\u07B1\\u07CA-\\u07EA\\u07F4\\u07F5\\u07FA\\u0800-\\u0815\\u081A\\u0824\\u0828\\u0840-\\u0858\\u08A0-\\u08B4\\u08B6-\\u08BD\\u0904-\\u0939\\u093D\\u0950\\u0958-\\u0961\\u0971-\\u0980\\u0985-\\u098C\\u098F\\u0990\\u0993-\\u09A8\\u09AA-\\u09B0\\u09B2\\u09B6-\\u09B9\\u09BD\\u09CE\\u09DC\\u09DD\\u09DF-\\u09E1\\u09F0\\u09F1\\u0A05-\\u0A0A\\u0A0F\\u0A10\\u0A13-\\u0A28\\u0A2A-\\u0A30\\u0A32\\u0A33\\u0A35\\u0A36\\u0A38\\u0A39\\u0A59-\\u0A5C\\u0A5E\\u0A72-\\u0A74\\u0A85-\\u0A8D\\u0A8F-\\u0A91\\u0A93-\\u0AA8\\u0AAA-\\u0AB0\\u0AB2\\u0AB3\\u0AB5-\\u0AB9\\u0ABD\\u0AD0\\u0AE0\\u0AE1\\u0AF9\\u0B05-\\u0B0C\\u0B0F\\u0B10\\u0B13-\\u0B28\\u0B2A-\\u0B30\\u0B32\\u0B33\\u0B35-\\u0B39\\u0B3D\\u0B5C\\u0B5D\\u0B5F-\\u0B61\\u0B71\\u0B83\\u0B85-\\u0B8A\\u0B8E-\\u0B90\\u0B92-\\u0B95\\u0B99\\u0B9A\\u0B9C\\u0B9E\\u0B9F\\u0BA3\\u0BA4\\u0BA8-\\u0BAA\\u0BAE-\\u0BB9\\u0BD0\\u0C05-\\u0C0C\\u0C0E-\\u0C10\\u0C12-\\u0C28\\u0C2A-\\u0C39\\u0C3D\\u0C58-\\u0C5A\\u0C60\\u0C61\\u0C80\\u0C85-\\u0C8C\\u0C8E-\\u0C90\\u0C92-\\u0CA8\\u0CAA-\\u0CB3\\u0CB5-\\u0CB9\\u0CBD\\u0CDE\\u0CE0\\u0CE1\\u0CF1\\u0CF2\\u0D05-\\u0D0C\\u0D0E-\\u0D10\\u0D12-\\u0D3A\\u0D3D\\u0D4E\\u0D54-\\u0D56\\u0D5F-\\u0D61\\u0D7A-\\u0D7F\\u0D85-\\u0D96\\u0D9A-\\u0DB1\\u0DB3-\\u0DBB\\u0DBD\\u0DC0-\\u0DC6\\u0E01-\\u0E30\\u0E32\\u0E33\\u0E40-\\u0E46\\u0E81\\u0E82\\u0E84\\u0E87\\u0E88\\u0E8A\\u0E8D\\u0E94-\\u0E97\\u0E99-\\u0E9F\\u0EA1-\\u0EA3\\u0EA5\\u0EA7\\u0EAA\\u0EAB\\u0EAD-\\u0EB0\\u0EB2\\u0EB3\\u0EBD\\u0EC0-\\u0EC4\\u0EC6\\u0EDC-\\u0EDF\\u0F00\\u0F40-\\u0F47\\u0F49-\\u0F6C\\u0F88-\\u0F8C\\u1000-\\u102A\\u103F\\u1050-\\u1055\\u105A-\\u105D\\u1061\\u1065\\u1066\\u106E-\\u1070\\u1075-\\u1081\\u108E\\u10A0-\\u10C5\\u10C7\\u10CD\\u10D0-\\u10FA\\u10FC-\\u1248\\u124A-\\u124D\\u1250-\\u1256\\u1258\\u125A-\\u125D\\u1260-\\u1288\\u128A-\\u128D\\u1290-\\u12B0\\u12B2-\\u12B5\\u12B8-\\u12BE\\u12C0\\u12C2-\\u12C5\\u12C8-\\u12D6\\u12D8-\\u1310\\u1312-\\u1315\\u1318-\\u135A\\u1380-\\u138F\\u13A0-\\u13F5\\u13F8-\\u13FD\\u1401-\\u166C\\u166F-\\u167F\\u1681-\\u169A\\u16A0-\\u16EA\\u16F1-\\u16F8\\u1700-\\u170C\\u170E-\\u1711\\u1720-\\u1731\\u1740-\\u1751\\u1760-\\u176C\\u176E-\\u1770\\u1780-\\u17B3\\u17D7\\u17DC\\u1820-\\u1877\\u1880-\\u1884\\u1887-\\u18A8\\u18AA\\u18B0-\\u18F5\\u1900-\\u191E\\u1950-\\u196D\\u1970-\\u1974\\u1980-\\u19AB\\u19B0-\\u19C9\\u1A00-\\u1A16\\u1A20-\\u1A54\\u1AA7\\u1B05-\\u1B33\\u1B45-\\u1B4B\\u1B83-\\u1BA0\\u1BAE\\u1BAF\\u1BBA-\\u1BE5\\u1C00-\\u1C23\\u1C4D-\\u1C4F\\u1C5A-\\u1C7D\\u1C80-\\u1C88\\u1CE9-\\u1CEC\\u1CEE-\\u1CF1\\u1CF5\\u1CF6\\u1D00-\\u1DBF\\u1E00-\\u1F15\\u1F18-\\u1F1D\\u1F20-\\u1F45\\u1F48-\\u1F4D\\u1F50-\\u1F57\\u1F59\\u1F5B\\u1F5D\\u1F5F-\\u1F7D\\u1F80-\\u1FB4\\u1FB6-\\u1FBC\\u1FBE\\u1FC2-\\u1FC4\\u1FC6-\\u1FCC\\u1FD0-\\u1FD3\\u1FD6-\\u1FDB\\u1FE0-\\u1FEC\\u1FF2-\\u1FF4\\u1FF6-\\u1FFC\\u2071\\u207F\\u2090-\\u209C\\u2102\\u2107\\u210A-\\u2113\\u2115\\u2119-\\u211D\\u2124\\u2126\\u2128\\u212A-\\u212D\\u212F-\\u2139\\u213C-\\u213F\\u2145-\\u2149\\u214E\\u2183\\u2184\\u2C00-\\u2C2E\\u2C30-\\u2C5E\\u2C60-\\u2CE4\\u2CEB-\\u2CEE\\u2CF2\\u2CF3\\u2D00-\\u2D25\\u2D27\\u2D2D\\u2D30-\\u2D67\\u2D6F\\u2D80-\\u2D96\\u2DA0-\\u2DA6\\u2DA8-\\u2DAE\\u2DB0-\\u2DB6\\u2DB8-\\u2DBE\\u2DC0-\\u2DC6\\u2DC8-\\u2DCE\\u2DD0-\\u2DD6\\u2DD8-\\u2DDE\\u2E2F\\u3005\\u3006\\u3031-\\u3035\\u303B\\u303C\\u3041-\\u3096\\u309D-\\u309F\\u30A1-\\u30FA\\u30FC-\\u30FF\\u3105-\\u312D\\u3131-\\u318E\\u31A0-\\u31BA\\u31F0-\\u31FF\\u3400-\\u4DB5\\u4E00-\\u9FD5\\uA000-\\uA48C\\uA4D0-\\uA4FD\\uA500-\\uA60C\\uA610-\\uA61F\\uA62A\\uA62B\\uA640-\\uA66E\\uA67F-\\uA69D\\uA6A0-\\uA6E5\\uA717-\\uA71F\\uA722-\\uA788\\uA78B-\\uA7AE\\uA7B0-\\uA7B7\\uA7F7-\\uA801\\uA803-\\uA805\\uA807-\\uA80A\\uA80C-\\uA822\\uA840-\\uA873\\uA882-\\uA8B3\\uA8F2-\\uA8F7\\uA8FB\\uA8FD\\uA90A-\\uA925\\uA930-\\uA946\\uA960-\\uA97C\\uA984-\\uA9B2\\uA9CF\\uA9E0-\\uA9E4\\uA9E6-\\uA9EF\\uA9FA-\\uA9FE\\uAA00-\\uAA28\\uAA40-\\uAA42\\uAA44-\\uAA4B\\uAA60-\\uAA76\\uAA7A\\uAA7E-\\uAAAF\\uAAB1\\uAAB5\\uAAB6\\uAAB9-\\uAABD\\uAAC0\\uAAC2\\uAADB-\\uAADD\\uAAE0-\\uAAEA\\uAAF2-\\uAAF4\\uAB01-\\uAB06\\uAB09-\\uAB0E\\uAB11-\\uAB16\\uAB20-\\uAB26\\uAB28-\\uAB2E\\uAB30-\\uAB5A\\uAB5C-\\uAB65\\uAB70-\\uABE2\\uAC00-\\uD7A3\\uD7B0-\\uD7C6\\uD7CB-\\uD7FB\\uF900-\\uFA6D\\uFA70-\\uFAD9\\uFB00-\\uFB06\\uFB13-\\uFB17\\uFB1D\\uFB1F-\\uFB28\\uFB2A-\\uFB36\\uFB38-\\uFB3C\\uFB3E\\uFB40\\uFB41\\uFB43\\uFB44\\uFB46-\\uFBB1\\uFBD3-\\uFD3D\\uFD50-\\uFD8F\\uFD92-\\uFDC7\\uFDF0-\\uFDFB\\uFE70-\\uFE74\\uFE76-\\uFEFC\\uFF21-\\uFF3A\\uFF41-\\uFF5A\\uFF66-\\uFFBE\\uFFC2-\\uFFC7\\uFFCA-\\uFFCF\\uFFD2-\\uFFD7\\uFFDA-\\uFFDC/.source,Je=We+/\\u00a9\\u00ae\\u2000-\\u3300\\ud83c\\ud000-\\udfff\\ud83d\\ud000-\\udfff\\ud83e\\ud000-\\udfff/.source+/\\u0300-\\u036F\\u0483-\\u0489\\u0591-\\u05BD\\u05BF\\u05C1\\u05C2\\u05C4\\u05C5\\u05C7\\u0610-\\u061A\\u064B-\\u065F\\u0670\\u06D6-\\u06DC\\u06DF-\\u06E4\\u06E7\\u06E8\\u06EA-\\u06ED\\u0711\\u0730-\\u074A\\u07A6-\\u07B0\\u07EB-\\u07F3\\u0816-\\u0819\\u081B-\\u0823\\u0825-\\u0827\\u0829-\\u082D\\u0859-\\u085B\\u08D4-\\u08E1\\u08E3-\\u0903\\u093A-\\u093C\\u093E-\\u094F\\u0951-\\u0957\\u0962\\u0963\\u0981-\\u0983\\u09BC\\u09BE-\\u09C4\\u09C7\\u09C8\\u09CB-\\u09CD\\u09D7\\u09E2\\u09E3\\u0A01-\\u0A03\\u0A3C\\u0A3E-\\u0A42\\u0A47\\u0A48\\u0A4B-\\u0A4D\\u0A51\\u0A70\\u0A71\\u0A75\\u0A81-\\u0A83\\u0ABC\\u0ABE-\\u0AC5\\u0AC7-\\u0AC9\\u0ACB-\\u0ACD\\u0AE2\\u0AE3\\u0B01-\\u0B03\\u0B3C\\u0B3E-\\u0B44\\u0B47\\u0B48\\u0B4B-\\u0B4D\\u0B56\\u0B57\\u0B62\\u0B63\\u0B82\\u0BBE-\\u0BC2\\u0BC6-\\u0BC8\\u0BCA-\\u0BCD\\u0BD7\\u0C00-\\u0C03\\u0C3E-\\u0C44\\u0C46-\\u0C48\\u0C4A-\\u0C4D\\u0C55\\u0C56\\u0C62\\u0C63\\u0C81-\\u0C83\\u0CBC\\u0CBE-\\u0CC4\\u0CC6-\\u0CC8\\u0CCA-\\u0CCD\\u0CD5\\u0CD6\\u0CE2\\u0CE3\\u0D01-\\u0D03\\u0D3E-\\u0D44\\u0D46-\\u0D48\\u0D4A-\\u0D4D\\u0D57\\u0D62\\u0D63\\u0D82\\u0D83\\u0DCA\\u0DCF-\\u0DD4\\u0DD6\\u0DD8-\\u0DDF\\u0DF2\\u0DF3\\u0E31\\u0E34-\\u0E3A\\u0E47-\\u0E4E\\u0EB1\\u0EB4-\\u0EB9\\u0EBB\\u0EBC\\u0EC8-\\u0ECD\\u0F18\\u0F19\\u0F35\\u0F37\\u0F39\\u0F3E\\u0F3F\\u0F71-\\u0F84\\u0F86\\u0F87\\u0F8D-\\u0F97\\u0F99-\\u0FBC\\u0FC6\\u102B-\\u103E\\u1056-\\u1059\\u105E-\\u1060\\u1062-\\u1064\\u1067-\\u106D\\u1071-\\u1074\\u1082-\\u108D\\u108F\\u109A-\\u109D\\u135D-\\u135F\\u1712-\\u1714\\u1732-\\u1734\\u1752\\u1753\\u1772\\u1773\\u17B4-\\u17D3\\u17DD\\u180B-\\u180D\\u1885\\u1886\\u18A9\\u1920-\\u192B\\u1930-\\u193B\\u1A17-\\u1A1B\\u1A55-\\u1A5E\\u1A60-\\u1A7C\\u1A7F\\u1AB0-\\u1ABE\\u1B00-\\u1B04\\u1B34-\\u1B44\\u1B6B-\\u1B73\\u1B80-\\u1B82\\u1BA1-\\u1BAD\\u1BE6-\\u1BF3\\u1C24-\\u1C37\\u1CD0-\\u1CD2\\u1CD4-\\u1CE8\\u1CED\\u1CF2-\\u1CF4\\u1CF8\\u1CF9\\u1DC0-\\u1DF5\\u1DFB-\\u1DFF\\u20D0-\\u20F0\\u2CEF-\\u2CF1\\u2D7F\\u2DE0-\\u2DFF\\u302A-\\u302F\\u3099\\u309A\\uA66F-\\uA672\\uA674-\\uA67D\\uA69E\\uA69F\\uA6F0\\uA6F1\\uA802\\uA806\\uA80B\\uA823-\\uA827\\uA880\\uA881\\uA8B4-\\uA8C5\\uA8E0-\\uA8F1\\uA926-\\uA92D\\uA947-\\uA953\\uA980-\\uA983\\uA9B3-\\uA9C0\\uA9E5\\uAA29-\\uAA36\\uAA43\\uAA4C\\uAA4D\\uAA7B-\\uAA7D\\uAAB0\\uAAB2-\\uAAB4\\uAAB7\\uAAB8\\uAABE\\uAABF\\uAAC1\\uAAEB-\\uAAEF\\uAAF5\\uAAF6\\uABE3-\\uABEA\\uABEC\\uABED\\uFB1E\\uFE00-\\uFE0F\\uFE20-\\uFE2F/.source,Ye=/0-9\\u0660-\\u0669\\u06F0-\\u06F9\\u07C0-\\u07C9\\u0966-\\u096F\\u09E6-\\u09EF\\u0A66-\\u0A6F\\u0AE6-\\u0AEF\\u0B66-\\u0B6F\\u0BE6-\\u0BEF\\u0C66-\\u0C6F\\u0CE6-\\u0CEF\\u0D66-\\u0D6F\\u0DE6-\\u0DEF\\u0E50-\\u0E59\\u0ED0-\\u0ED9\\u0F20-\\u0F29\\u1040-\\u1049\\u1090-\\u1099\\u17E0-\\u17E9\\u1810-\\u1819\\u1946-\\u194F\\u19D0-\\u19D9\\u1A80-\\u1A89\\u1A90-\\u1A99\\u1B50-\\u1B59\\u1BB0-\\u1BB9\\u1C40-\\u1C49\\u1C50-\\u1C59\\uA620-\\uA629\\uA8D0-\\uA8D9\\uA900-\\uA909\\uA9D0-\\uA9D9\\uA9F0-\\uA9F9\\uAA50-\\uAA59\\uABF0-\\uABF9\\uFF10-\\uFF19/.source,Ke=Je+Ye,Qe=Je+Ye,Xe=\"(?:[\"+Ye+\"]{1,3}\\\\.){3}[\"+Ye+\"]{1,3}\",et=\"[\"+Qe+\"](?:[\"+Qe+\"\\\\-]{0,61}[\"+Qe+\"])?\",tt=function(e){return\"(?=(\"+et+\"))\\\\\"+e},rt=function(e){return\"(?:\"+tt(e)+\"(?:\\\\.\"+tt(e+1)+\"){0,126}|\"+Xe+\")\"},nt=new RegExp(\"[\"+Qe+\"]\"),ot=/(?:xn--vermgensberatung-pwb|xn--vermgensberater-ctb|xn--clchc0ea0b2g2a9gcd|xn--w4r85el8fhu5dnra|northwesternmutual|travelersinsurance|vermögensberatung|xn--3oq18vl8pn36a|xn--5su34j936bgsg|xn--bck1b9a5dre4c|xn--mgbai9azgqp6j|xn--mgberp4a5d4ar|xn--xkc2dl3a5ee0h|vermögensberater|xn--fzys8d69uvgm|xn--mgba7c0bbn0a|xn--xkc2al3hye2a|americanexpress|kerryproperties|sandvikcoromant|xn--i1b6b1a6a2e|xn--kcrx77d1x4a|xn--lgbbat1ad8j|xn--mgba3a4f16a|xn--mgbaakc7dvf|xn--mgbc0a9azcg|xn--nqv7fs00ema|afamilycompany|americanfamily|bananarepublic|cancerresearch|cookingchannel|kerrylogistics|weatherchannel|xn--54b7fta0cc|xn--6qq986b3xl|xn--80aqecdr1a|xn--b4w605ferd|xn--fiq228c5hs|xn--h2breg3eve|xn--jlq61u9w7b|xn--mgba3a3ejt|xn--mgbaam7a8h|xn--mgbayh7gpa|xn--mgbb9fbpob|xn--mgbbh1a71e|xn--mgbca7dzdo|xn--mgbi4ecexp|xn--mgbx4cd0ab|xn--rvc1e0am3e|international|lifeinsurance|spreadbetting|travelchannel|wolterskluwer|xn--eckvdtc9d|xn--fpcrj9c3d|xn--fzc2c9e2c|xn--h2brj9c8c|xn--tiq49xqyj|xn--yfro4i67o|xn--ygbi2ammx|construction|lplfinancial|scholarships|versicherung|xn--3e0b707e|xn--45br5cyl|xn--80adxhks|xn--80asehdb|xn--8y0a063a|xn--gckr3f0f|xn--mgb9awbf|xn--mgbab2bd|xn--mgbgu82a|xn--mgbpl2fh|xn--mgbt3dhd|xn--mk1bu44c|xn--ngbc5azd|xn--ngbe9e0a|xn--ogbpf8fl|xn--qcka1pmc|accountants|barclaycard|blackfriday|blockbuster|bridgestone|calvinklein|contractors|creditunion|engineering|enterprises|foodnetwork|investments|kerryhotels|lamborghini|motorcycles|olayangroup|photography|playstation|productions|progressive|redumbrella|rightathome|williamhill|xn--11b4c3d|xn--1ck2e1b|xn--1qqw23a|xn--2scrj9c|xn--3bst00m|xn--3ds443g|xn--3hcrj9c|xn--42c2d9a|xn--45brj9c|xn--55qw42g|xn--6frz82g|xn--80ao21a|xn--9krt00a|xn--cck2b3b|xn--czr694b|xn--d1acj3b|xn--efvy88h|xn--estv75g|xn--fct429k|xn--fjq720a|xn--flw351e|xn--g2xx48c|xn--gecrj9c|xn--gk3at1e|xn--h2brj9c|xn--hxt814e|xn--imr513n|xn--j6w193g|xn--jvr189m|xn--kprw13d|xn--kpry57d|xn--kpu716f|xn--mgbbh1a|xn--mgbtx2b|xn--mix891f|xn--nyqy26a|xn--otu796d|xn--pbt977c|xn--pgbs0dh|xn--q9jyb4c|xn--rhqv96g|xn--rovu88b|xn--s9brj9c|xn--ses554g|xn--t60b56a|xn--vuq861b|xn--w4rs40l|xn--xhq521b|xn--zfr164b|சிங்கப்பூர்|accountant|apartments|associates|basketball|bnpparibas|boehringer|capitalone|consulting|creditcard|cuisinella|eurovision|extraspace|foundation|healthcare|immobilien|industries|management|mitsubishi|nationwide|newholland|nextdirect|onyourside|properties|protection|prudential|realestate|republican|restaurant|schaeffler|swiftcover|tatamotors|technology|telefonica|university|vistaprint|vlaanderen|volkswagen|xn--30rr7y|xn--3pxu8k|xn--45q11c|xn--4gbrim|xn--55qx5d|xn--5tzm5g|xn--80aswg|xn--90a3ac|xn--9dbq2a|xn--9et52u|xn--c2br7g|xn--cg4bki|xn--czrs0t|xn--czru2d|xn--fiq64b|xn--fiqs8s|xn--fiqz9s|xn--io0a7i|xn--kput3i|xn--mxtq1m|xn--o3cw4h|xn--pssy2u|xn--unup4y|xn--wgbh1c|xn--wgbl6a|xn--y9a3aq|accenture|alfaromeo|allfinanz|amsterdam|analytics|aquarelle|barcelona|bloomberg|christmas|community|directory|education|equipment|fairwinds|financial|firestone|fresenius|frontdoor|fujixerox|furniture|goldpoint|hisamitsu|homedepot|homegoods|homesense|honeywell|institute|insurance|kuokgroup|ladbrokes|lancaster|landrover|lifestyle|marketing|marshalls|melbourne|microsoft|panasonic|passagens|pramerica|richardli|scjohnson|shangrila|solutions|statebank|statefarm|stockholm|travelers|vacations|xn--90ais|xn--c1avg|xn--d1alf|xn--e1a4c|xn--fhbei|xn--j1aef|xn--j1amh|xn--l1acc|xn--ngbrx|xn--nqv7f|xn--p1acf|xn--tckwe|xn--vhquv|yodobashi|abudhabi|airforce|allstate|attorney|barclays|barefoot|bargains|baseball|boutique|bradesco|broadway|brussels|budapest|builders|business|capetown|catering|catholic|chrysler|cipriani|cityeats|cleaning|clinique|clothing|commbank|computer|delivery|deloitte|democrat|diamonds|discount|discover|download|engineer|ericsson|esurance|etisalat|everbank|exchange|feedback|fidelity|firmdale|football|frontier|goodyear|grainger|graphics|guardian|hdfcbank|helsinki|holdings|hospital|infiniti|ipiranga|istanbul|jpmorgan|lighting|lundbeck|marriott|maserati|mckinsey|memorial|merckmsd|mortgage|movistar|observer|partners|pharmacy|pictures|plumbing|property|redstone|reliance|saarland|samsclub|security|services|shopping|showtime|softbank|software|stcgroup|supplies|symantec|training|uconnect|vanguard|ventures|verisign|woodside|xn--90ae|xn--node|xn--p1ai|xn--qxam|yokohama|السعودية|abogado|academy|agakhan|alibaba|android|athleta|auction|audible|auspost|avianca|banamex|bauhaus|bentley|bestbuy|booking|brother|bugatti|capital|caravan|careers|cartier|channel|charity|chintai|citadel|clubmed|college|cologne|comcast|company|compare|contact|cooking|corsica|country|coupons|courses|cricket|cruises|dentist|digital|domains|exposed|express|farmers|fashion|ferrari|ferrero|finance|fishing|fitness|flights|florist|flowers|forsale|frogans|fujitsu|gallery|genting|godaddy|grocery|guitars|hamburg|hangout|hitachi|holiday|hosting|hoteles|hotmail|hyundai|iselect|ismaili|jewelry|juniper|kitchen|komatsu|lacaixa|lancome|lanxess|lasalle|latrobe|leclerc|liaison|limited|lincoln|markets|metlife|monster|netbank|netflix|network|neustar|okinawa|oldnavy|organic|origins|philips|pioneer|politie|realtor|recipes|rentals|reviews|rexroth|samsung|sandvik|schmidt|schwarz|science|shiksha|shriram|singles|staples|starhub|storage|support|surgery|systems|temasek|theater|theatre|tickets|tiffany|toshiba|trading|walmart|wanggou|watches|weather|website|wedding|whoswho|windows|winners|xfinity|yamaxun|youtube|zuerich|католик|اتصالات|الجزائر|العليان|پاکستان|كاثوليك|موبايلي|இந்தியா|abarth|abbott|abbvie|active|africa|agency|airbus|airtel|alipay|alsace|alstom|anquan|aramco|author|bayern|beauty|berlin|bharti|blanco|bostik|boston|broker|camera|career|caseih|casino|center|chanel|chrome|church|circle|claims|clinic|coffee|comsec|condos|coupon|credit|cruise|dating|datsun|dealer|degree|dental|design|direct|doctor|dunlop|dupont|durban|emerck|energy|estate|events|expert|family|flickr|futbol|gallup|garden|george|giving|global|google|gratis|health|hermes|hiphop|hockey|hotels|hughes|imamat|insure|intuit|jaguar|joburg|juegos|kaufen|kinder|kindle|kosher|lancia|latino|lawyer|lefrak|living|locker|london|luxury|madrid|maison|makeup|market|mattel|mobile|mobily|monash|mormon|moscow|museum|mutual|nagoya|natura|nissan|nissay|norton|nowruz|office|olayan|online|oracle|orange|otsuka|pfizer|photos|physio|piaget|pictet|quebec|racing|realty|reisen|repair|report|review|rocher|rogers|ryukyu|safety|sakura|sanofi|school|schule|search|secure|select|shouji|soccer|social|stream|studio|supply|suzuki|swatch|sydney|taipei|taobao|target|tattoo|tennis|tienda|tjmaxx|tkmaxx|toyota|travel|unicom|viajes|viking|villas|virgin|vision|voting|voyage|vuelos|walter|warman|webcam|xihuan|yachts|yandex|zappos|москва|онлайн|ابوظبي|ارامكو|الاردن|المغرب|امارات|فلسطين|مليسيا|भारतम्|இலங்கை|ファッション|actor|adult|aetna|amfam|amica|apple|archi|audio|autos|azure|baidu|beats|bible|bingo|black|boats|bosch|build|canon|cards|chase|cheap|cisco|citic|click|cloud|coach|codes|crown|cymru|dabur|dance|deals|delta|dodge|drive|dubai|earth|edeka|email|epost|epson|faith|fedex|final|forex|forum|gallo|games|gifts|gives|glade|glass|globo|gmail|green|gripe|group|gucci|guide|homes|honda|horse|house|hyatt|ikano|intel|irish|iveco|jetzt|koeln|kyoto|lamer|lease|legal|lexus|lilly|linde|lipsy|lixil|loans|locus|lotte|lotto|lupin|macys|mango|media|miami|money|mopar|movie|nadex|nexus|nikon|ninja|nokia|nowtv|omega|osaka|paris|parts|party|phone|photo|pizza|place|poker|praxi|press|prime|promo|quest|radio|rehab|reise|ricoh|rocks|rodeo|rugby|salon|sener|seven|sharp|shell|shoes|skype|sling|smart|smile|solar|space|sport|stada|store|study|style|sucks|swiss|tatar|tires|tirol|tmall|today|tokyo|tools|toray|total|tours|trade|trust|tunes|tushu|ubank|vegas|video|vodka|volvo|wales|watch|weber|weibo|works|world|xerox|yahoo|zippo|ایران|بازار|بھارت|سودان|سورية|همراه|भारोत|संगठन|বাংলা|భారత్|ഭാരതം|嘉里大酒店|aarp|able|adac|aero|aigo|akdn|ally|amex|arab|army|arpa|arte|asda|asia|audi|auto|baby|band|bank|bbva|beer|best|bike|bing|blog|blue|bofa|bond|book|buzz|cafe|call|camp|care|cars|casa|case|cash|cbre|cern|chat|citi|city|club|cool|coop|cyou|data|date|dclk|deal|dell|desi|diet|dish|docs|doha|duck|duns|dvag|erni|fage|fail|fans|farm|fast|fiat|fido|film|fire|fish|flir|food|ford|free|fund|game|gbiz|gent|ggee|gift|gmbh|gold|golf|goog|guge|guru|hair|haus|hdfc|help|here|hgtv|host|hsbc|icbc|ieee|imdb|immo|info|itau|java|jeep|jobs|jprs|kddi|kiwi|kpmg|kred|land|lego|lgbt|lidl|life|like|limo|link|live|loan|loft|love|ltda|luxe|maif|meet|meme|menu|mini|mint|mobi|moda|moto|name|navy|news|next|nico|nike|ollo|open|page|pars|pccw|pics|ping|pink|play|plus|pohl|porn|post|prod|prof|qpon|raid|read|reit|rent|rest|rich|rmit|room|rsvp|ruhr|safe|sale|sarl|save|saxo|scor|scot|seat|seek|sexy|shaw|shia|shop|show|silk|sina|site|skin|sncf|sohu|song|sony|spot|star|surf|talk|taxi|team|tech|teva|tiaa|tips|town|toys|tube|vana|visa|viva|vivo|vote|voto|wang|weir|wien|wiki|wine|work|xbox|yoga|zara|zero|zone|дети|сайт|بارت|بيتك|ڀارت|تونس|شبكة|عراق|عمان|موقع|भारत|ভারত|ভাৰত|ਭਾਰਤ|ભારત|ଭାରତ|ಭಾರತ|ලංකා|グーグル|クラウド|ポイント|大众汽车|组织机构|電訊盈科|香格里拉|aaa|abb|abc|aco|ads|aeg|afl|aig|anz|aol|app|art|aws|axa|bar|bbc|bbt|bcg|bcn|bet|bid|bio|biz|bms|bmw|bnl|bom|boo|bot|box|buy|bzh|cab|cal|cam|car|cat|cba|cbn|cbs|ceb|ceo|cfa|cfd|com|crs|csc|dad|day|dds|dev|dhl|diy|dnp|dog|dot|dtv|dvr|eat|eco|edu|esq|eus|fan|fit|fly|foo|fox|frl|ftr|fun|fyi|gal|gap|gdn|gea|gle|gmo|gmx|goo|gop|got|gov|hbo|hiv|hkt|hot|how|ibm|ice|icu|ifm|inc|ing|ink|int|ist|itv|jcb|jcp|jio|jll|jmp|jnj|jot|joy|kfh|kia|kim|kpn|krd|lat|law|lds|llc|lol|lpl|ltd|man|map|mba|med|men|mil|mit|mlb|mls|mma|moe|moi|mom|mov|msd|mtn|mtr|nab|nba|nec|net|new|nfl|ngo|nhk|now|nra|nrw|ntt|nyc|obi|off|one|ong|onl|ooo|org|ott|ovh|pay|pet|phd|pid|pin|pnc|pro|pru|pub|pwc|qvc|red|ren|ril|rio|rip|run|rwe|sap|sas|sbi|sbs|sca|scb|ses|sew|sex|sfr|ski|sky|soy|srl|srt|stc|tab|tax|tci|tdk|tel|thd|tjx|top|trv|tui|tvs|ubs|uno|uol|ups|vet|vig|vin|vip|wed|win|wme|wow|wtc|wtf|xin|xxx|xyz|you|yun|zip|бел|ком|қаз|мкд|мон|орг|рус|срб|укр|հայ|קום|عرب|قطر|كوم|مصر|कॉम|नेट|คอม|ไทย|ストア|セール|みんな|中文网|天主教|我爱你|新加坡|淡马锡|诺基亚|飞利浦|ac|ad|ae|af|ag|ai|al|am|ao|aq|ar|as|at|au|aw|ax|az|ba|bb|bd|be|bf|bg|bh|bi|bj|bm|bn|bo|br|bs|bt|bv|bw|by|bz|ca|cc|cd|cf|cg|ch|ci|ck|cl|cm|cn|co|cr|cu|cv|cw|cx|cy|cz|de|dj|dk|dm|do|dz|ec|ee|eg|er|es|et|eu|fi|fj|fk|fm|fo|fr|ga|gb|gd|ge|gf|gg|gh|gi|gl|gm|gn|gp|gq|gr|gs|gt|gu|gw|gy|hk|hm|hn|hr|ht|hu|id|ie|il|im|in|io|iq|ir|is|it|je|jm|jo|jp|ke|kg|kh|ki|km|kn|kp|kr|kw|ky|kz|la|lb|lc|li|lk|lr|ls|lt|lu|lv|ly|ma|mc|md|me|mg|mh|mk|ml|mm|mn|mo|mp|mq|mr|ms|mt|mu|mv|mw|mx|my|mz|na|nc|ne|nf|ng|ni|nl|no|np|nr|nu|nz|om|pa|pe|pf|pg|ph|pk|pl|pm|pn|pr|ps|pt|pw|py|qa|re|ro|rs|ru|rw|sa|sb|sc|sd|se|sg|sh|si|sj|sk|sl|sm|sn|so|sr|st|su|sv|sx|sy|sz|tc|td|tf|tg|th|tj|tk|tl|tm|tn|to|tr|tt|tv|tw|tz|ua|ug|uk|us|uy|uz|va|vc|ve|vg|vi|vn|vu|wf|ws|ye|yt|za|zm|zw|ελ|бг|ею|рф|გე|닷넷|닷컴|삼성|한국|コム|世界|中信|中国|中國|企业|佛山|信息|健康|八卦|公司|公益|台湾|台灣|商城|商店|商标|嘉里|在线|大拿|娱乐|家電|工行|广东|微博|慈善|手机|手表|招聘|政务|政府|新闻|时尚|書籍|机构|游戏|澳門|点看|珠宝|移动|网址|网店|网站|网络|联通|谷歌|购物|通販|集团|食品|餐厅|香港)/,st=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t.localPartCharRegex=new RegExp(\"[\"+Qe+\"!#$%&'*+/=?^_`{|}~-]\"),t.strictTldRegex=new RegExp(\"^\"+ot.source+\"$\"),t}return Re(t,e),t.prototype.parseMatches=function(e){for(var t=this.tagBuilder,r=this.localPartCharRegex,n=this.strictTldRegex,o=[],s=e.length,i=new it,a={m:\"a\",a:\"i\",i:\"l\",l:\"t\",t:\"o\",o:\":\"},u=0,l=0,c=i;u<s;){var p=e.charAt(u);switch(l){case 0:h(p);break;case 1:f(e.charAt(u-1),p);break;case 2:g(p);break;case 3:d(p);break;case 4:m(p);break;case 5:b(p);break;case 6:v(p);break;case 7:k(p);break;default:Fe(l)}u++}return x(),o;function h(e){\"m\"===e?A(1):r.test(e)&&A()}function f(e,t){\":\"===e?r.test(t)?(l=2,c=new it(Ne({},c,{hasMailtoPrefix:!0}))):y():a[e]===t||(r.test(t)?l=2:\".\"===t?l=3:\"@\"===t?l=4:y())}function g(e){\".\"===e?l=3:\"@\"===e?l=4:r.test(e)||y()}function d(e){\".\"===e?y():\"@\"===e?y():r.test(e)?l=2:y()}function m(e){nt.test(e)?l=5:y()}function b(e){\".\"===e?l=7:\"-\"===e?l=6:nt.test(e)||x()}function v(e){\"-\"===e||\".\"===e?x():nt.test(e)?l=5:x()}function k(e){\".\"===e||\"-\"===e?x():nt.test(e)?(l=5,c=new it(Ne({},c,{hasDomainDot:!0}))):x()}function A(e){void 0===e&&(e=2),l=e,c=new it({idx:u})}function y(){l=0,c=i}function x(){if(c.hasDomainDot){var r=e.slice(c.idx,u);/[-.]$/.test(r)&&(r=r.slice(0,-1));var s=c.hasMailtoPrefix?r.slice(\"mailto:\".length):r;(function(e){var t=(e.split(\".\").pop()||\"\").toLowerCase();return n.test(t)})(s)&&o.push(new ze({tagBuilder:t,matchedText:r,offset:c.idx,email:s}))}y()}},t}(Ue),it=function(e){void 0===e&&(e={}),this.idx=void 0!==e.idx?e.idx:-1,this.hasMailtoPrefix=!!e.hasMailtoPrefix,this.hasDomainDot=!!e.hasDomainDot},at=function(){function e(){}return e.isValid=function(e,t){return!(t&&!this.isValidUriScheme(t)||this.urlMatchDoesNotHaveProtocolOrDot(e,t)||this.urlMatchDoesNotHaveAtLeastOneWordChar(e,t)&&!this.isValidIpAddress(e)||this.containsMultipleDots(e))},e.isValidIpAddress=function(e){var t=new RegExp(this.hasFullProtocolRegex.source+this.ipRegex.source);return null!==e.match(t)},e.containsMultipleDots=function(e){var t=e;return this.hasFullProtocolRegex.test(e)&&(t=e.split(\"://\")[1]),t.split(\"/\")[0].indexOf(\"..\")>-1},e.isValidUriScheme=function(e){var t=e.match(this.uriSchemeRegex),r=t&&t[0].toLowerCase();return\"javascript:\"!==r&&\"vbscript:\"!==r},e.urlMatchDoesNotHaveProtocolOrDot=function(e,t){return!(!e||t&&this.hasFullProtocolRegex.test(t)||-1!==e.indexOf(\".\"))},e.urlMatchDoesNotHaveAtLeastOneWordChar=function(e,t){return!(!e||!t)&&!this.hasWordCharAfterProtocolRegex.test(e)},e.hasFullProtocolRegex=/^[A-Za-z][-.+A-Za-z0-9]*:\\/\\//,e.uriSchemeRegex=/^[A-Za-z][-.+A-Za-z0-9]*:/,e.hasWordCharAfterProtocolRegex=new RegExp(\":[^\\\\s]*?[\"+We+\"]\"),e.ipRegex=/[0-9][0-9]?[0-9]?\\.[0-9][0-9]?[0-9]?\\.[0-9][0-9]?[0-9]?\\.[0-9][0-9]?[0-9]?(:[0-9]*)?\\/?$/,e}(),ut=function(e){function t(t){var r,n=e.call(this,t)||this;return n.stripPrefix={scheme:!0,www:!0},n.stripTrailingSlash=!0,n.decodePercentEncoding=!0,n.matcherRegex=(r=new RegExp(\"[/?#](?:[\"+Qe+\"\\\\-+&@#/%=~_()|'$*\\\\[\\\\]?!:,.;✓]*[\"+Qe+\"\\\\-+&@#/%=~_()|'$*\\\\[\\\\]✓])?\"),new RegExp([\"(?:\",\"(\",/(?:[A-Za-z][-.+A-Za-z0-9]{0,63}:(?![A-Za-z][-.+A-Za-z0-9]{0,63}:\\/\\/)(?!\\d+\\/?)(?:\\/\\/)?)/.source,rt(2),\")\",\"|\",\"(\",\"(//)?\",/(?:www\\.)/.source,rt(6),\")\",\"|\",\"(\",\"(//)?\",rt(10)+\"\\\\.\",ot.source,\"(?![-\"+Ke+\"])\",\")\",\")\",\"(?::[0-9]+)?\",\"(?:\"+r.source+\")?\"].join(\"\"),\"gi\")),n.wordCharRegExp=new RegExp(\"[\"+Qe+\"]\"),n.stripPrefix=t.stripPrefix,n.stripTrailingSlash=t.stripTrailingSlash,n.decodePercentEncoding=t.decodePercentEncoding,n}return Re(t,e),t.prototype.parseMatches=function(e){for(var t,r=this.matcherRegex,n=this.stripPrefix,o=this.stripTrailingSlash,s=this.decodePercentEncoding,i=this.tagBuilder,a=[],u=function(){var r=t[0],u=t[1],c=t[4],p=t[5],h=t[9],f=t.index,g=p||h,d=e.charAt(f-1);if(!at.isValid(r,u))return\"continue\";if(f>0&&\"@\"===d)return\"continue\";if(f>0&&g&&l.wordCharRegExp.test(d))return\"continue\";if(/\\?$/.test(r)&&(r=r.substr(0,r.length-1)),l.matchHasUnbalancedClosingParen(r))r=r.substr(0,r.length-1);else{var m=l.matchHasInvalidCharAfterTld(r,u);m>-1&&(r=r.substr(0,m))}var b=[\"http://\",\"https://\"].find(function(e){return!!u&&-1!==u.indexOf(e)});if(b){var v=r.indexOf(b);r=r.substr(v),u=u.substr(v),f+=v}var k=u?\"scheme\":c?\"www\":\"tld\",A=!!u;a.push(new Oe({tagBuilder:i,matchedText:r,offset:f,urlMatchType:k,url:r,protocolUrlMatch:A,protocolRelativeMatch:!!g,stripPrefix:n,stripTrailingSlash:o,decodePercentEncoding:s}))},l=this;null!==(t=r.exec(e));)u();return a},t.prototype.matchHasUnbalancedClosingParen=function(e){var t,r=e.charAt(e.length-1);if(\")\"===r)t=\"(\";else{if(\"]\"!==r)return!1;t=\"[\"}for(var n=0,o=0,s=e.length-1;o<s;o++){var i=e.charAt(o);i===t?n++:i===r&&(n=Math.max(n-1,0))}return 0===n},t.prototype.matchHasInvalidCharAfterTld=function(e,t){if(!e)return-1;var r=0;t&&(r=e.indexOf(\":\"),e=e.slice(r));var n=new RegExp(\"^((.?//)?[-.\"+Qe+\"]*[-\"+Qe+\"]\\\\.[-\"+Qe+\"]+)\").exec(e);return null===n?-1:(r+=n[1].length,e=e.slice(n[1].length),/^[^-.A-Za-z0-9:\\/?#]/.test(e)?r:-1)},t}(Ue),lt=function(e){function t(t){var r=e.call(this,t)||this;return r.serviceName=\"twitter\",r.matcherRegex=new RegExp(\"#[_\"+Qe+\"]{1,139}(?![_\"+Qe+\"])\",\"g\"),r.nonWordCharRegex=new RegExp(\"[^\"+Qe+\"]\"),r.serviceName=t.serviceName,r}return Re(t,e),t.prototype.parseMatches=function(e){for(var t,r=this.matcherRegex,n=this.nonWordCharRegex,o=this.serviceName,s=this.tagBuilder,i=[];null!==(t=r.exec(e));){var a=t.index,u=e.charAt(a-1);if(0===a||n.test(u)){var l=t[0],c=t[0].slice(1);i.push(new Pe({tagBuilder:s,matchedText:l,offset:a,serviceName:o,hashtag:c}))}}return i},t}(Ue),ct=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t.matcherRegex=/(?:(?:(?:(\\+)?\\d{1,3}[-\\040.]?)?\\(?\\d{3}\\)?[-\\040.]?\\d{3}[-\\040.]?\\d{4})|(?:(\\+)(?:9[976]\\d|8[987530]\\d|6[987]\\d|5[90]\\d|42\\d|3[875]\\d|2[98654321]\\d|9[8543210]|8[6421]|6[6543210]|5[87654321]|4[987654310]|3[9643210]|2[70]|7|1)[-\\040.]?(?:\\d[-\\040.]?){6,12}\\d+))([,;]+[0-9]+#?)*/g,t}return Re(t,e),t.prototype.parseMatches=function(e){for(var t,r=this.matcherRegex,n=this.tagBuilder,o=[];null!==(t=r.exec(e));){var s=t[0],i=s.replace(/[^0-9,;#]/g,\"\"),a=!(!t[1]&&!t[2]),u=0==t.index?\"\":e.substr(t.index-1,1),l=e.substr(t.index+s.length,1),c=!u.match(/\\d/)&&!l.match(/\\d/);this.testMatch(t[3])&&this.testMatch(s)&&c&&o.push(new Ie({tagBuilder:n,matchedText:s,offset:t.index,number:i,plusSign:a}))}return o},t.prototype.testMatch=function(e){return/\\D/.test(e)},t}(Ue),pt=function(e){function t(t){var r=e.call(this,t)||this;return r.serviceName=\"twitter\",r.matcherRegexes={twitter:new RegExp(\"@[_\"+Qe+\"]{1,50}(?![_\"+Qe+\"])\",\"g\"),instagram:new RegExp(\"@[_.\"+Qe+\"]{1,30}(?![_\"+Qe+\"])\",\"g\"),soundcloud:new RegExp(\"@[-_.\"+Qe+\"]{1,50}(?![-_\"+Qe+\"])\",\"g\")},r.nonWordCharRegex=new RegExp(\"[^\"+Qe+\"]\"),r.serviceName=t.serviceName,r}return Re(t,e),t.prototype.parseMatches=function(e){var t,r=this.serviceName,n=this.matcherRegexes[this.serviceName],o=this.nonWordCharRegex,s=this.tagBuilder,i=[];if(!n)return i;for(;null!==(t=n.exec(e));){var a=t.index,u=e.charAt(a-1);if(0===a||o.test(u)){var l=t[0].replace(/\\.+$/g,\"\"),c=l.slice(1);i.push(new je({tagBuilder:s,matchedText:l,offset:a,serviceName:r,mention:c}))}}return i},t}(Ue);function ht(e,t){for(var r=t.onOpenTag,n=t.onCloseTag,o=t.onText,s=t.onComment,i=t.onDoctype,a=new ft,u=0,l=e.length,c=0,p=0,h=a;u<l;){var f=e.charAt(u);switch(c){case 0:g(f);break;case 1:d(f);break;case 2:b(f);break;case 3:m(f);break;case 4:v(f);break;case 5:k(f);break;case 6:A(f);break;case 7:y(f);break;case 8:x(f);break;case 9:w(f);break;case 10:C(f);break;case 11:E(f);break;case 12:D(f);break;case 13:_();break;case 14:B(f);break;case 15:q(f);break;case 16:F(f);break;case 17:M(f);break;case 18:S(f);break;case 19:T(f);break;case 20:L(f);break;default:Fe(c)}u++}function g(e){\"<\"===e&&N()}function d(e){\"!\"===e?c=13:\"/\"===e?(c=2,h=new ft(Ne({},h,{isClosing:!0}))):\"<\"===e?N():He.test(e)?(c=3,h=new ft(Ne({},h,{isOpening:!0}))):(c=0,h=a)}function m(e){Ge.test(e)?(h=new ft(Ne({},h,{name:P()})),c=4):\"<\"===e?N():\"/\"===e?(h=new ft(Ne({},h,{name:P()})),c=12):\">\"===e?(h=new ft(Ne({},h,{name:P()})),z()):He.test(e)||Ve.test(e)||\":\"===e||R()}function b(e){\">\"===e?R():He.test(e)?c=3:R()}function v(e){Ge.test(e)||(\"/\"===e?c=12:\">\"===e?z():\"<\"===e?N():\"=\"===e||$e.test(e)||Ze.test(e)?R():c=5)}function k(e){Ge.test(e)?c=6:\"/\"===e?c=12:\"=\"===e?c=7:\">\"===e?z():\"<\"===e?N():$e.test(e)&&R()}function A(e){Ge.test(e)||(\"/\"===e?c=12:\"=\"===e?c=7:\">\"===e?z():\"<\"===e?N():$e.test(e)?R():c=5)}function y(e){Ge.test(e)||('\"'===e?c=8:\"'\"===e?c=9:/[>=`]/.test(e)?R():\"<\"===e?N():c=10)}function x(e){'\"'===e&&(c=11)}function w(e){\"'\"===e&&(c=11)}function C(e){Ge.test(e)?c=4:\">\"===e?z():\"<\"===e&&N()}function E(e){Ge.test(e)?c=4:\"/\"===e?c=12:\">\"===e?z():\"<\"===e?N():(c=4,u--)}function D(e){\">\"===e?(h=new ft(Ne({},h,{isClosing:!0})),z()):c=4}function _(t){\"--\"===e.substr(u,2)?(u+=2,h=new ft(Ne({},h,{type:\"comment\"})),c=14):\"DOCTYPE\"===e.substr(u,7).toUpperCase()?(u+=7,h=new ft(Ne({},h,{type:\"doctype\"})),c=20):R()}function B(e){\"-\"===e?c=15:\">\"===e?R():c=16}function q(e){\"-\"===e?c=18:\">\"===e?R():c=16}function F(e){\"-\"===e&&(c=17)}function M(e){c=\"-\"===e?18:16}function S(e){\">\"===e?z():\"!\"===e?c=19:\"-\"===e||(c=16)}function T(e){\"-\"===e?c=17:\">\"===e?z():c=16}function L(e){\">\"===e?z():\"<\"===e&&N()}function R(){c=0,h=a}function N(){c=1,h=new ft({idx:u})}function z(){var t=e.slice(p,h.idx);t&&o(t,p),\"comment\"===h.type?s(h.idx):\"doctype\"===h.type?i(h.idx):(h.isOpening&&r(h.name,h.idx),h.isClosing&&n(h.name,h.idx)),R(),p=u+1}function P(){var t=h.idx+(h.isClosing?2:1);return e.slice(t,u).toLowerCase()}p<u&&function(){var t=e.slice(p,u);o(t,p),p=u+1}()}var ft=function(e){void 0===e&&(e={}),this.idx=void 0!==e.idx?e.idx:-1,this.type=e.type||\"tag\",this.name=e.name||\"\",this.isOpening=!!e.isOpening,this.isClosing=!!e.isClosing},gt=function(){function e(t){void 0===t&&(t={}),this.version=e.version,this.urls={},this.email=!0,this.phone=!0,this.hashtag=!1,this.mention=!1,this.newWindow=!0,this.stripPrefix={scheme:!0,www:!0},this.stripTrailingSlash=!0,this.decodePercentEncoding=!0,this.truncate={length:0,location:\"end\"},this.className=\"\",this.replaceFn=null,this.context=void 0,this.matchers=null,this.tagBuilder=null,this.urls=this.normalizeUrlsCfg(t.urls),this.email=\"boolean\"==typeof t.email?t.email:this.email,this.phone=\"boolean\"==typeof t.phone?t.phone:this.phone,this.hashtag=t.hashtag||this.hashtag,this.mention=t.mention||this.mention,this.newWindow=\"boolean\"==typeof t.newWindow?t.newWindow:this.newWindow,this.stripPrefix=this.normalizeStripPrefixCfg(t.stripPrefix),this.stripTrailingSlash=\"boolean\"==typeof t.stripTrailingSlash?t.stripTrailingSlash:this.stripTrailingSlash,this.decodePercentEncoding=\"boolean\"==typeof t.decodePercentEncoding?t.decodePercentEncoding:this.decodePercentEncoding;var r=this.mention;if(!1!==r&&\"twitter\"!==r&&\"instagram\"!==r&&\"soundcloud\"!==r)throw new Error(\"invalid `mention` cfg - see docs\");var n=this.hashtag;if(!1!==n&&\"twitter\"!==n&&\"facebook\"!==n&&\"instagram\"!==n)throw new Error(\"invalid `hashtag` cfg - see docs\");this.truncate=this.normalizeTruncateCfg(t.truncate),this.className=t.className||this.className,this.replaceFn=t.replaceFn||this.replaceFn,this.context=t.context||this}return e.link=function(t,r){return new e(r).link(t)},e.parse=function(t,r){return new e(r).parse(t)},e.prototype.normalizeUrlsCfg=function(e){return null==e&&(e=!0),\"boolean\"==typeof e?{schemeMatches:e,wwwMatches:e,tldMatches:e}:{schemeMatches:\"boolean\"!=typeof e.schemeMatches||e.schemeMatches,wwwMatches:\"boolean\"!=typeof e.wwwMatches||e.wwwMatches,tldMatches:\"boolean\"!=typeof e.tldMatches||e.tldMatches}},e.prototype.normalizeStripPrefixCfg=function(e){return null==e&&(e=!0),\"boolean\"==typeof e?{scheme:e,www:e}:{scheme:\"boolean\"!=typeof e.scheme||e.scheme,www:\"boolean\"!=typeof e.www||e.www}},e.prototype.normalizeTruncateCfg=function(e){return\"number\"==typeof e?{length:e,location:\"end\"}:function(e,t){for(var r in t)t.hasOwnProperty(r)&&void 0===e[r]&&(e[r]=t[r]);return e}(e||{},{length:Number.POSITIVE_INFINITY,location:\"end\"})},e.prototype.parse=function(e){var t=this,r=[\"a\",\"style\",\"script\"],n=0,o=[];return ht(e,{onOpenTag:function(e){r.indexOf(e)>=0&&n++},onText:function(e,r){if(0===n){var s=function(e,t){if(!t.global)throw new Error(\"`splitRegex` must have the 'g' flag set\");for(var r,n=[],o=0;r=t.exec(e);)n.push(e.substring(o,r.index)),n.push(r[0]),o=r.index+r[0].length;return n.push(e.substring(o)),n}(e,/(&nbsp;|&#160;|&lt;|&#60;|&gt;|&#62;|&quot;|&#34;|&#39;)/gi),i=r;s.forEach(function(e,r){if(r%2==0){var n=t.parseText(e,i);o.push.apply(o,n)}i+=e.length})}},onCloseTag:function(e){r.indexOf(e)>=0&&(n=Math.max(n-1,0))},onComment:function(e){},onDoctype:function(e){}}),o=this.compactMatches(o),o=this.removeUnwantedMatches(o)},e.prototype.compactMatches=function(e){e.sort(function(e,t){return e.getOffset()-t.getOffset()});for(var t=0;t<e.length-1;t++){var r=e[t],n=r.getOffset(),o=r.getMatchedText().length,s=n+o;if(t+1<e.length){if(e[t+1].getOffset()===n){var i=e[t+1].getMatchedText().length>o?t:t+1;e.splice(i,1);continue}e[t+1].getOffset()<s&&e.splice(t+1,1)}}return e},e.prototype.removeUnwantedMatches=function(e){return this.hashtag||qe(e,function(e){return\"hashtag\"===e.getType()}),this.email||qe(e,function(e){return\"email\"===e.getType()}),this.phone||qe(e,function(e){return\"phone\"===e.getType()}),this.mention||qe(e,function(e){return\"mention\"===e.getType()}),this.urls.schemeMatches||qe(e,function(e){return\"url\"===e.getType()&&\"scheme\"===e.getUrlMatchType()}),this.urls.wwwMatches||qe(e,function(e){return\"url\"===e.getType()&&\"www\"===e.getUrlMatchType()}),this.urls.tldMatches||qe(e,function(e){return\"url\"===e.getType()&&\"tld\"===e.getUrlMatchType()}),e},e.prototype.parseText=function(e,t){void 0===t&&(t=0),t=t||0;for(var r=this.getMatchers(),n=[],o=0,s=r.length;o<s;o++){for(var i=r[o].parseMatches(e),a=0,u=i.length;a<u;a++)i[a].setOffset(t+i[a].getOffset());n.push.apply(n,i)}return n},e.prototype.link=function(e){if(!e)return\"\";for(var t=this.parse(e),r=[],n=0,o=0,s=t.length;o<s;o++){var i=t[o];r.push(e.substring(n,i.getOffset())),r.push(this.createMatchReturnVal(i)),n=i.getOffset()+i.getMatchedText().length}return r.push(e.substring(n)),r.join(\"\")},e.prototype.createMatchReturnVal=function(e){var t;return this.replaceFn&&(t=this.replaceFn.call(this.context,e)),\"string\"==typeof t?t:!1===t?e.getMatchedText():t instanceof Me?t.toAnchorString():e.buildTag().toAnchorString()},e.prototype.getMatchers=function(){if(this.matchers)return this.matchers;var e=this.getTagBuilder(),t=[new lt({tagBuilder:e,serviceName:this.hashtag}),new st({tagBuilder:e}),new ct({tagBuilder:e}),new pt({tagBuilder:e,serviceName:this.mention}),new ut({tagBuilder:e,stripPrefix:this.stripPrefix,stripTrailingSlash:this.stripTrailingSlash,decodePercentEncoding:this.decodePercentEncoding})];return this.matchers=t},e.prototype.getTagBuilder=function(){var e=this.tagBuilder;return e||(e=this.tagBuilder=new Se({newWindow:this.newWindow,truncate:this.truncate,className:this.className})),e},e.version=\"3.11.0\",e.AnchorTagBuilder=Se,e.HtmlTag=Me,e.matcher={Email:st,Hashtag:lt,Matcher:Ue,Mention:pt,Phone:ct,Url:ut},e.match={Email:ze,Hashtag:Pe,Match:Te,Mention:je,Phone:Ie,Url:Oe},e}(),dt=/www|@|\\:\\/\\//;function mt(e){return/^<\\/a\\s*>/i.test(e)}function bt(){var e=[],t=new gt({stripPrefix:!1,url:!0,email:!0,replaceFn:function(t){switch(t.getType()){case\"url\":e.push({text:t.matchedText,url:t.getUrl()});break;case\"email\":e.push({text:t.matchedText,url:\"mailto:\"+t.getEmail().replace(/^mailto:/i,\"\")})}return!1}});return{links:e,autolinker:t}}function vt(e){var t,r,n,o,s,i,a,u,l,c,p,h,f,g,d=e.tokens,m=null;for(r=0,n=d.length;r<n;r++)if(\"inline\"===d[r].type)for(p=0,t=(o=d[r].children).length-1;t>=0;t--)if(\"link_close\"!==(s=o[t]).type){if(\"htmltag\"===s.type&&(g=s.content,/^<a[>\\s]/i.test(g)&&p>0&&p--,mt(s.content)&&p++),!(p>0)&&\"text\"===s.type&&dt.test(s.content)){if(m||(h=(m=bt()).links,f=m.autolinker),i=s.content,h.length=0,f.link(i),!h.length)continue;for(a=[],c=s.level,u=0;u<h.length;u++)e.inline.validateLink(h[u].url)&&((l=i.indexOf(h[u].text))&&a.push({type:\"text\",content:i.slice(0,l),level:c}),a.push({type:\"link_open\",href:h[u].url,title:\"\",level:c++}),a.push({type:\"text\",content:h[u].text,level:c}),a.push({type:\"link_close\",level:--c}),i=i.slice(l+h[u].text.length));i.length&&a.push({type:\"text\",content:i,level:c}),d[r].children=o=[].concat(o.slice(0,t),a,o.slice(t+1))}}else for(t--;o[t].level!==s.level&&\"link_open\"!==o[t].type;)t--}e.Remarkable=_e,e.linkify=function(e){e.core.ruler.push(\"linkify\",vt)},e.utils=A,Object.defineProperty(e,\"__esModule\",{value:!0})});\n",
            "type": "application/javascript",
            "title": "$:/plugins/tiddlywiki/markdown/remarkable.js",
            "module-type": "library"
        },
        "$:/plugins/tiddlywiki/markdown/images/new-markdown-button": {
            "title": "$:/plugins/tiddlywiki/markdown/images/new-markdown-button",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-new-markdown-button tc-image-button\" viewBox=\"0 0 128 128\" width=\"22pt\" height=\"22pt\">\n    <g fill-rule=\"evenodd\">\n        <rect x=\"80\" y=\"96\" width=\"48\" height=\"16\" rx=\"8\"></rect>\n        <rect x=\"96\" y=\"80\" width=\"16\" height=\"48\" rx=\"8\"></rect>\n        <path d=\"M3.23876972,39.5396716 C3.23876972,35.9653274 6.13586353,33.0691646 9.7141757,33.0691646 L98.1283744,33.0691646 C101.706101,33.0691646 104.60378,35.9646626 104.60378,39.5396716 L104.60378,84.8296213 C104.60378,88.4039654 101.706687,91.3001282 98.1283744,91.3001282 L9.7141757,91.3001282 C6.13644944,91.3001282 3.23876972,88.4046302 3.23876972,84.8296213 L3.23876972,39.5396716 L3.23876972,39.5396716 Z M-2.15298617,39.5396716 L-2.15298617,84.8296213 C-2.15298617,91.3833243 3.15957363,96.6918841 9.7141757,96.6918841 L98.1283744,96.6918841 C104.684083,96.6918841 109.995536,91.382138 109.995536,84.8296213 L109.995536,39.5396716 C109.995536,32.9859686 104.682977,27.6774087 98.1283744,27.6774087 L9.7141757,27.6774087 C3.15846686,27.6774087 -2.15298617,32.9871549 -2.15298617,39.5396716 Z M14.0222815,80.5166164 L14.0222815,43.8526764 L24.8057933,43.8526764 L35.589305,57.3320661 L46.3728168,43.8526764 L57.1563286,43.8526764 L57.1563286,80.5166164 L46.3728168,80.5166164 L46.3728168,59.4887685 L35.589305,72.9681582 L24.8057933,59.4887685 L24.8057933,80.5166164 L14.0222815,80.5166164 Z M81.4192301,80.5166164 L65.2439624,62.723822 L76.0274742,62.723822 L76.0274742,43.8526764 L86.810986,43.8526764 L86.810986,62.723822 L97.5944978,62.723822 L81.4192301,80.5166164 Z\"transform=\"translate(53.921275, 62.184646) rotate(-60.000000) translate(-53.921275, -62.184646) \"></path>\n    </g>\n</svg>"
        },
        "$:/plugins/tiddlywiki/markdown/new-markdown-button": {
            "title": "$:/plugins/tiddlywiki/markdown/new-markdown-button",
            "tags": "$:/tags/PageControls",
            "caption": "{{$:/plugins/tiddlywiki/markdown/images/new-markdown-button}} {{$:/language/Buttons/NewMarkdown/Caption}}",
            "description": "{{$:/language/Buttons/NewMarkdown/Hint}}",
            "list-after": "$:/core/ui/Buttons/new-tiddler",
            "text": "\\whitespace trim\n<$button tooltip={{$:/language/Buttons/NewMarkdown/Hint}} aria-label={{$:/language/Buttons/NewMarkdown/Caption}} class=<<tv-config-toolbar-class>>>\n<$action-sendmessage $message=\"tm-new-tiddler\" type=\"text/x-markdown\"/>\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/plugins/tiddlywiki/markdown/images/new-markdown-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/NewMarkdown/Caption}}/></span>\n</$list>\n</$button>\n"
        },
        "$:/plugins/tiddlywiki/markdown/readme": {
            "title": "$:/plugins/tiddlywiki/markdown/readme",
            "text": "This is a TiddlyWiki plugin for parsing Markdown text, using the [[Remarkable|https://github.com/jonschlinkert/remarkable]] library.\n\nIt is completely self-contained, and doesn't need an Internet connection in order to work. It works both in the browser and under Node.js.\n\n[[Source code|https://github.com/Jermolene/TiddlyWiki5/blob/master/plugins/tiddlywiki/markdown]]\n"
        },
        "$:/plugins/tiddlywiki/markdown/usage": {
            "title": "$:/plugins/tiddlywiki/markdown/usage",
            "text": "! Plugin Configuration\n\n|!Config |!Default |!Description |\n| <code>[[breaks|$:/config/markdown/breaks]]</code>| ``false``|Remarkable library config: Convert '\\n' in paragraphs into ``<br>`` |\n| <code>[[linkify|$:/config/markdown/linkify]]</code>| ``false``|Remarkable library config: Autoconvert URL-like text to links |\n| <code>[[linkNewWindow|$:/config/markdown/linkNewWindow]]</code>| ``true``|For external links, should clicking on them open a new window/tab automatically? |\n| <code>[[quotes|$:/config/markdown/quotes]]</code>| ``“”‘’``|Remarkable library config: Double + single quotes replacement pairs, when ``typographer`` enabled |\n| <code>[[renderWikiText|$:/config/markdown/renderWikiText]]</code>| ``true``|After Markdown is parsed, should any text elements be handed off to the ~WikiText parser for further processing? |\n| <code>[[renderWikiTextPragma|$:/config/markdown/renderWikiTextPragma]]</code>| ``\\rules only html image macrocallinline syslink transcludeinline wikilink filteredtranscludeblock macrocallblock transcludeblock``|When handing off to the ~WikiText parser, what pragma rules should it follow? |\n| <code>[[typographer|$:/config/markdown/typographer]]</code>| ``false``|Remarkable library config: Enable some language-neutral replacement + quotes beautification |\n\n! Creating ~WikiLinks\n\nCreate wiki links with the usual Markdown link syntax targeting `#` and the target tiddler title:\n\n```\n[link text](#TiddlerTitle)\n```\n\nIf the target tiddler has a space in its name, that name must be URL-escaped to be detected as a URL:\n\n```\n[link text](#Test%20Tiddler)\n```\n\n! Images\n\nMarkdown image syntax can be used to reference images by tiddler title or an external URI. For example:\n\n```\n![alt text](/path/to/img.jpg \"Title\")\n\n![alt text](Motovun Jack.jpg \"Title\")\n```\n"
        },
        "$:/plugins/tiddlywiki/markdown/wrapper.js": {
            "title": "$:/plugins/tiddlywiki/markdown/wrapper.js",
            "text": "/*\\\ntitle: $:/plugins/tiddlywiki/markdown/wrapper.js\ntype: application/javascript\nmodule-type: parser\n\nWraps up the remarkable parser for use as a Parser in TiddlyWiki\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar r = require(\"$:/plugins/tiddlywiki/markdown/remarkable.js\");\n\nvar Remarkable = r.Remarkable,\n\tlinkify = r.linkify,\n\tutils = r.utils;\n\n///// Set up configuration options /////\nfunction parseAsBoolean(tiddlerName) {\n\treturn $tw.wiki.getTiddlerText(tiddlerName).toLowerCase() === \"true\";\n}\nvar pluginOpts = {\n\tlinkNewWindow: parseAsBoolean(\"$:/config/markdown/linkNewWindow\"),\n\trenderWikiText: parseAsBoolean(\"$:/config/markdown/renderWikiText\"),\n\trenderWikiTextPragma: $tw.wiki.getTiddlerText(\"$:/config/markdown/renderWikiTextPragma\").trim()\n};\nvar remarkableOpts = {\n\tbreaks: parseAsBoolean(\"$:/config/markdown/breaks\"),\n\tquotes: $tw.wiki.getTiddlerText(\"$:/config/markdown/quotes\"),\n\ttypographer: parseAsBoolean(\"$:/config/markdown/typographer\")\n};\nvar accumulatingTypes = {\n\t\"text\": true,\n\t\"softbreak\": true\n};\n\nvar md = new Remarkable(remarkableOpts);\n\nif (parseAsBoolean(\"$:/config/markdown/linkify\")) {\n\tmd = md.use(linkify);\n}\n\nfunction findTagWithType(nodes, startPoint, type, level) {\n\tfor (var i = startPoint; i < nodes.length; i++) {\n\t\tif (nodes[i].type === type && nodes[i].level === level) {\n\t\t\treturn i;\n\t\t}\n\t}\n\treturn false;\n}\n\n/**\n * Remarkable creates nodes that look like:\n * [\n *   { type: 'paragraph_open'},\n *   { type: 'inline', content: 'Hello World', children:[{type: 'text', content: 'Hello World'}]},\n *   { type: 'paragraph_close'}\n * ]\n *\n * But TiddlyWiki wants the Parser (https://tiddlywiki.com/dev/static/Parser.html) to emit nodes like:\n *\n * [\n *   { type: 'element', tag: 'p', children: [{type: 'text', text: 'Hello World'}]}\n * ]\n */\nfunction convertNodes(remarkableTree, isStartOfInline) {\n\tlet out = [];\n\tvar accumulatedText = '';\n\tfunction withChildren(currentIndex, currentLevel, closingType, nodes, callback) {\n\t\tvar j = findTagWithType(nodes, currentIndex + 1, closingType, currentLevel);\n\t\tif (j === false) {\n\t\t\tconsole.error(\"Failed to find a \" + closingType + \" node after position \" + currentIndex);\n\t\t\tconsole.log(nodes);\n\t\t\treturn currentIndex + 1;\n\t\t}\n\t\tlet children = convertNodes(nodes.slice(currentIndex + 1, j));\n\t\tcallback(children);\n\t\treturn j;\n\t}\n\tfunction wrappedElement(elementTag, currentIndex, currentLevel, closingType, nodes) {\n\t\treturn withChildren(currentIndex, currentLevel, closingType, nodes, function(children) {\n\t\t\tout.push({\n\t\t\t\ttype: \"element\",\n\t\t\t\ttag: elementTag,\n\t\t\t\tchildren: children\n\t\t\t});\n\t\t});\n\t}\n\n\tfor (var i = 0; i < remarkableTree.length; i++) {\n\t\tvar currentNode = remarkableTree[i];\n\t\tswitch (currentNode.type) {\n\t\tcase \"paragraph_open\":\n\t\t\ti = wrappedElement(\"p\", i, currentNode.level, \"paragraph_close\", remarkableTree);\n\t\t\tbreak;\n\n\t\tcase \"heading_open\":\n\t\t\ti = wrappedElement(\"h\" + currentNode.hLevel, i, currentNode.level, \"heading_close\", remarkableTree);\n\t\t\tbreak;\n\n\t\tcase \"bullet_list_open\":\n\t\t\ti = wrappedElement(\"ul\", i, currentNode.level, \"bullet_list_close\", remarkableTree);\n\t\t\tbreak;\n\n\t\tcase \"ordered_list_open\":\n\t\t\ti = wrappedElement('ol', i, currentNode.level,'ordered_list_close', remarkableTree);\n\t\t\tbreak;\n\n\t\tcase \"list_item_open\":\n\t\t\ti = wrappedElement(\"li\", i, currentNode.level, \"list_item_close\", remarkableTree);\n\t\t\tbreak;\n\n\t\tcase \"link_open\":\n\t\t\ti = withChildren(i, currentNode.level, \"link_close\", remarkableTree, function(children) {\n\t\t\t\tif (currentNode.href[0] !== \"#\") {\n\t\t\t\t\t// External link\n\t\t\t\t\tvar attributes = {\n\t\t\t\t\t\tclass: { type: \"string\", value: \"tc-tiddlylink-external\" },\n\t\t\t\t\t\thref: { type: \"string\", value: currentNode.href },\n\t\t\t\t\t\trel: { type: \"string\", value: \"noopener noreferrer\" }\n\t\t\t\t\t};\n\t\t\t\t\tif (pluginOpts.linkNewWindow) {\n\t\t\t\t\t\tattributes.target = { type: \"string\", value: \"_blank\" };\n\t\t\t\t\t}\n\t\t\t\t\tout.push({\n\t\t\t\t\t\ttype: \"element\",\n\t\t\t\t\t\ttag: \"a\",\n\t\t\t\t\t\tattributes: attributes,\n\t\t\t\t\t\tchildren: children\n\t\t\t\t\t});\n\t\t\t\t} else {\n\t\t\t\t\t// Internal link\n\t\t\t\t\tout.push({\n\t\t\t\t\t\ttype: \"link\",\n\t\t\t\t\t\tattributes: {\n\t\t\t\t\t\t\tto: { type: \"string\", value: decodeURI(currentNode.href.substr(1)) }\n\t\t\t\t\t\t},\n\t\t\t\t\t\tchildren: children\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t});\n\t\t\tbreak;\n\n\t\tcase \"code\":\n\t\t\tout.push({\n\t\t\t\ttype: \"element\",\n\t\t\t\ttag: currentNode.block ? \"pre\" : \"code\",\n\t\t\t\tchildren: [{ type: \"text\", text: currentNode.content }]\n\t\t\t});\n\t\t\tbreak;\n\n\t\tcase \"fence\":\n\t\t\tout.push({\n\t\t\t\ttype: \"codeblock\",\n\t\t\t\tattributes: {\n\t\t\t\t\tlanguage: { type: \"string\", value: currentNode.params },\n\t\t\t\t\tcode: { type: \"string\", value: currentNode.content }\n\t\t\t\t}\n\t\t\t});\n\t\t\tbreak;\n\n\t\tcase \"image\":\n\t\t\tout.push({\n\t\t\t\ttype: \"image\",\n\t\t\t\tattributes: {\n\t\t\t\t\ttooltip: { type: \"string\", value: currentNode.alt },\n\t\t\t\t\tsource: { type: \"string\", value: decodeURIComponent(currentNode.src) }\n\t\t\t\t}\n\t\t\t});\n\t\t\tbreak;\n\n\t\tcase \"softbreak\":\n\t\t\tif (remarkableOpts.breaks) {\n\t\t\t\tout.push({\n\t\t\t\t\ttype: \"element\",\n\t\t\t\t\ttag: \"br\",\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\taccumulatedText = accumulatedText + '\\n';\n\t\t\t}\n\t\t\tbreak;\n\n\t\tcase \"hardbreak\":\n\t\t\tout.push({\n\t\t\t\ttype: \"element\",\n\t\t\t\ttag: \"br\",\n\t\t\t});\n\t\t\tbreak;\n\n\t\tcase \"th_open\":\n\t\tcase \"td_open\":\n\t\t\tvar elementTag = currentNode.type.slice(0, 2);\n\t\t\ti = withChildren(i, currentNode.level, elementTag + \"_close\", remarkableTree, function(children) {\n\t\t\t\tvar attributes = {};\n\t\t\t\tif (currentNode.align) {\n\t\t\t\t\tattributes.style = { type: \"string\", value: \"text-align:\" + currentNode.align };\n\t\t\t\t}\n\t\t\t\tout.push({\n\t\t\t\t\ttype: \"element\",\n\t\t\t\t\ttag: elementTag,\n\t\t\t\t\tattributes: attributes,\n\t\t\t\t\tchildren: children\n\t\t\t\t});\n\t\t\t});\n\t\t\tbreak;\n\n\t\tcase \"hr\":\n\t\t\tout.push({\n\t\t\t\ttype: 'element',\n\t\t\t\ttag: 'hr',\n\t\t\t});\n\t\t\tbreak;\n\n\t\tcase \"inline\":\n\t\t\tout = out.concat(convertNodes(currentNode.children, true));\n\t\t\tbreak;\n\n\t\tcase \"text\":\n\t\t\t// We need to merge this text block with the upcoming text block and parse it all together.\n\t\t\taccumulatedText = accumulatedText + currentNode.content;\n\t\t\tbreak;\n\n\t\tdefault:\n\t\t\tif (currentNode.type.substr(currentNode.type.length - 5) === \"_open\") {\n\t\t\t\tvar tagName = currentNode.type.substr(0, currentNode.type.length - 5);\n\t\t\t\ti = wrappedElement(tagName, i, currentNode.level, tagName + \"_close\", remarkableTree);\n\t\t\t} else {\n\t\t\t\tconsole.error(\"Unknown node type: \" + currentNode.type, currentNode);\n\t\t\t\tout.push({\n\t\t\t\t\ttype: \"text\",\n\t\t\t\t\ttext: currentNode.content\n\t\t\t\t});\n\t\t\t}\n\t\t\tbreak;\n\t\t}\n\t\t// We test to see if we process the block now, or if there's\n\t\t// more to accumulate first.\n\t\tif (accumulatedText\n\t\t\t&& (\n\t\t\t\tremarkableOpts.breaks ||\n\t\t\t\t(i+1) >= remarkableTree.length ||\n\t\t\t\t!accumulatingTypes[remarkableTree[i+1].type]\n\t\t\t)\n\t\t) {\n\t\t\t// The Markdown compiler thinks this is just text.\n\t\t\t// Hand off to the WikiText parser to see if there's more to render\n\t\t\t// But only if it's configured to, and we have more than whitespace\n\t\t\tif (!pluginOpts.renderWikiText || accumulatedText.match(/^\\s*$/)) {\n\t\t\t\tout.push({\n\t\t\t\t\ttype: \"text\",\n\t\t\t\t\ttext: accumulatedText\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\t// If we're inside a block element (div, p, td, h1), and this is the first child in the tree,\n\t\t\t\t// handle as a block-level parse. Otherwise not.\n\t\t\t\tvar parseAsInline = !(isStartOfInline && i === 0);\n\t\t\t\tvar textToParse = accumulatedText;\n\t\t\t\tif (pluginOpts.renderWikiTextPragma !== \"\") {\n\t\t\t\t\ttextToParse = pluginOpts.renderWikiTextPragma + \"\\n\" + textToParse;\n\t\t\t\t}\n\t\t\t\tvar wikiParser = $tw.wiki.parseText(\"text/vnd.tiddlywiki\", textToParse, {\n\t\t\t\t\tparseAsInline: parseAsInline\n\t\t\t\t});\n\t\t\t\tvar rs = wikiParser.tree;\n\n\t\t\t\t// If we parsed as a block, but the root element the WikiText parser gave is a paragraph,\n\t\t\t\t// we should discard the paragraph, since the way Remarkable nests its nodes, this \"inline\"\n\t\t\t\t// node is always inside something else that's a block-level element\n\t\t\t\tif (!parseAsInline\n\t\t\t\t\t&& rs.length === 1\n\t\t\t\t\t&& rs[0].type === \"element\"\n\t\t\t\t\t&& rs[0].tag === \"p\"\n\t\t\t\t) {\n\t\t\t\t\trs = rs[0].children;\n\t\t\t\t}\n\n\t\t\t\t// If the original text element started with a space, add it back in\n\t\t\t\tif (rs.length > 0\n\t\t\t\t\t&& rs[0].type === \"text\"\n\t\t\t\t\t&& (accumulatedText[0] === \" \" || accumulatedText[0] === \"\\n\")\n\t\t\t\t) {\n\t\t\t\t\trs[0].text = \" \" + rs[0].text;\n\t\t\t\t}\n\t\t\t\tout = out.concat(rs);\n\t\t\t}\n\t\t\taccumulatedText = '';\n\t\t}\n\t}\n\treturn out;\n}\n\nvar MarkdownParser = function(type, text, options) {\n\tvar tree = md.parse(text, {});\n\t//console.debug(tree);\n\ttree = convertNodes(tree);\n\t//console.debug(tree);\n\n\tthis.tree = tree;\n};\n\nexports[\"text/x-markdown\"] = MarkdownParser;\n\n})();\n",
            "type": "application/javascript",
            "module-type": "parser"
        }
    }
}
記錄艦これ的種種
艦これ wiki
yes
yes
yes
yes
no
$:/config/OfficialPluginLibrary
$:/core/ui/AdvancedSearch/Filter
show
show
show
show
show
$:/core/ui/EditTemplate/body/preview/output
show
show
show
show
show
show
hide
show
show
show
show
hide
show
hide
hide
show

restored
contents
config
yes
readme
no
contents
yes
no
yes
$:/core/ui/TiddlerInfo/Tools
$:/core/ui/TiddlerInfo/References
$:/core/ui/ControlPanel/Plugins/Add/Plugins
$:/core/ui/AdvancedSearch/Filter
$:/core/ui/TiddlerInfo/Tools
$:/core/ui/ControlPanel/Palette
$:/core/ui/ControlPanel/Basics
$:/core/ui/ControlPanel/Plugins/Installed/Plugins
$:/core/ui/ControlPanel/TiddlerFields
$:/core/ui/MoreSideBar/Plugins/Theme
$:/core/ui/TiddlerInfo/Tools
$:/core/ui/ControlPanel/Plugins
$:/core/ui/ControlPanel/Saving/General
$:/core/ui/TiddlerInfo/Tools
$:/core/ui/TiddlerInfo/Tagging
$:/plugins/tiddlywiki/help/HelpPanel/Support
$:/core/ui/MoreSideBar/Tags
目錄
closed
closed
closed
closed
open
close
close
open
open
open
open
open
open
open
open
close
open
open
close
close
yes
沙華

$:/themes/tiddlywiki/vanilla
{
    "tiddlers": {
        "$:/themes/tiddlywiki/snowwhite/base": {
            "title": "$:/themes/tiddlywiki/snowwhite/base",
            "tags": "[[$:/tags/Stylesheet]]",
            "text": "\\define sidebarbreakpoint-minus-one()\n<$text text={{{ [{$:/themes/tiddlywiki/vanilla/metrics/sidebarbreakpoint}removesuffix[px]subtract[1]addsuffix[px]] ~[{$:/themes/tiddlywiki/vanilla/metrics/sidebarbreakpoint}] }}}/>\n\\end\n\n\\rules only filteredtranscludeinline transcludeinline macrodef macrocallinline\n\n.tc-sidebar-header {\n\ttext-shadow: 0 1px 0 <<colour sidebar-foreground-shadow>>;\n}\n\n.tc-tiddler-info {\n\t<<box-shadow \"inset 1px 2px 3px rgba(0,0,0,0.1)\">>\n}\n\n@media screen {\n\t.tc-tiddler-frame {\n\t\t<<box-shadow \"1px 1px 5px rgba(0, 0, 0, 0.3)\">>\n\t}\n}\n\n@media (max-width: <<sidebarbreakpoint-minus-one>>) {\n\t.tc-tiddler-frame {\n\t\t<<box-shadow none>>\n\t}\n}\n\n.tc-page-controls button svg, .tc-tiddler-controls button svg, .tc-topbar button svg {\n\t<<transition \"fill 150ms ease-in-out\">>\n}\n\n.tc-tiddler-controls button.tc-selected,\n.tc-page-controls button.tc-selected {\n\t<<filter \"drop-shadow(0px -1px 2px rgba(0,0,0,0.25))\">>\n}\n\n.tc-tiddler-frame input.tc-edit-texteditor {\n\t<<box-shadow \"inset 0 1px 8px rgba(0, 0, 0, 0.15)\">>\n}\n\n.tc-edit-tags {\n\t<<box-shadow \"inset 0 1px 8px rgba(0, 0, 0, 0.15)\">>\n}\n\n.tc-tiddler-frame .tc-edit-tags input.tc-edit-texteditor {\n\t<<box-shadow \"none\">>\n\tborder: none;\n\toutline: none;\n}\n\ntextarea.tc-edit-texteditor {\n\tfont-family: {{$:/themes/tiddlywiki/vanilla/settings/editorfontfamily}};\n}\n\ncanvas.tc-edit-bitmapeditor  {\n\t<<box-shadow \"2px 2px 5px rgba(0, 0, 0, 0.5)\">>\n}\n\n.tc-drop-down {\n\tborder-radius: 4px;\n\t<<box-shadow \"2px 2px 10px rgba(0, 0, 0, 0.5)\">>\n}\n\n.tc-block-dropdown {\n\tborder-radius: 4px;\n\t<<box-shadow \"2px 2px 10px rgba(0, 0, 0, 0.5)\">>\n}\n\n.tc-modal {\n\tborder-radius: 6px;\n\t<<box-shadow \"0 3px 7px rgba(0,0,0,0.3)\">>\n}\n\n.tc-modal-footer {\n\tborder-radius: 0 0 6px 6px;\n\t<<box-shadow \"inset 0 1px 0 #fff\">>;\n}\n\n\n.tc-alert {\n\tborder-radius: 6px;\n\t<<box-shadow \"0 3px 7px rgba(0,0,0,0.6)\">>\n}\n\n.tc-notification {\n\tborder-radius: 6px;\n\t<<box-shadow \"0 3px 7px rgba(0,0,0,0.3)\">>\n\ttext-shadow: 0 1px 0 rgba(255,255,255, 0.8);\n}\n\n.tc-sidebar-lists .tc-tab-set .tc-tab-divider {\n\tborder-top: none;\n\theight: 1px;\n\t<<background-linear-gradient \"left, rgba(0,0,0,0.15) 0%, rgba(0,0,0,0.0) 100%\">>\n}\n\n.tc-more-sidebar > .tc-tab-set > .tc-tab-buttons > button {\n\t<<background-linear-gradient \"left, rgba(0,0,0,0.01) 0%, rgba(0,0,0,0.1) 100%\">>\n}\n\n.tc-more-sidebar > .tc-tab-set > .tc-tab-buttons > button.tc-tab-selected {\n\t<<background-linear-gradient \"left, rgba(0,0,0,0.05) 0%, rgba(255,255,255,0.05) 100%\">>\n}\n\n.tc-message-box img {\n\t<<box-shadow \"1px 1px 3px rgba(0,0,0,0.5)\">>\n}\n\n.tc-plugin-info {\n\t<<box-shadow \"1px 1px 3px rgba(0,0,0,0.5)\">>\n}\n"
        }
    }
}
{
    "tiddlers": {
        "$:/themes/tiddlywiki/vanilla/themetweaks": {
            "title": "$:/themes/tiddlywiki/vanilla/themetweaks",
            "tags": "$:/tags/ControlPanel/Appearance",
            "caption": "{{$:/language/ThemeTweaks/ThemeTweaks}}",
            "text": "\\define lingo-base() $:/language/ThemeTweaks/\n\n\\define replacement-text()\n[img[$(imageTitle)$]]\n\\end\n\n\\define backgroundimage-dropdown()\n<div class=\"tc-drop-down-wrapper\">\n<$button popup=<<qualify \"$:/state/popup/themetweaks/backgroundimage\">> class=\"tc-btn-invisible tc-btn-dropdown\">{{$:/core/images/down-arrow}}</$button>\n<$reveal state=<<qualify \"$:/state/popup/themetweaks/backgroundimage\">> type=\"popup\" position=\"belowleft\" text=\"\" default=\"\">\n<div class=\"tc-drop-down\">\n<$macrocall $name=\"image-picker\" actions=\"\"\"\n\n<$action-setfield\n\t$tiddler=\"$:/themes/tiddlywiki/vanilla/settings/backgroundimage\"\n\t$value=<<imageTitle>>\n/>\n\n\"\"\"/>\n</div>\n</$reveal>\n</div>\n\\end\n\n\\define backgroundimageattachment-dropdown()\n<$select tiddler=\"$:/themes/tiddlywiki/vanilla/settings/backgroundimageattachment\" default=\"scroll\">\n<option value=\"scroll\"><<lingo Settings/BackgroundImageAttachment/Scroll>></option>\n<option value=\"fixed\"><<lingo Settings/BackgroundImageAttachment/Fixed>></option>\n</$select>\n\\end\n\n\\define backgroundimagesize-dropdown()\n<$select tiddler=\"$:/themes/tiddlywiki/vanilla/settings/backgroundimagesize\" default=\"scroll\">\n<option value=\"auto\"><<lingo Settings/BackgroundImageSize/Auto>></option>\n<option value=\"cover\"><<lingo Settings/BackgroundImageSize/Cover>></option>\n<option value=\"contain\"><<lingo Settings/BackgroundImageSize/Contain>></option>\n</$select>\n\\end\n\n<<lingo ThemeTweaks/Hint>>\n\n! <<lingo Options>>\n\n|<$link to=\"$:/themes/tiddlywiki/vanilla/options/sidebarlayout\"><<lingo Options/SidebarLayout>></$link> |<$select tiddler=\"$:/themes/tiddlywiki/vanilla/options/sidebarlayout\"><option value=\"fixed-fluid\"><<lingo Options/SidebarLayout/Fixed-Fluid>></option><option value=\"fluid-fixed\"><<lingo Options/SidebarLayout/Fluid-Fixed>></option></$select> |\n|<$link to=\"$:/themes/tiddlywiki/vanilla/options/stickytitles\"><<lingo Options/StickyTitles>></$link><br>//<<lingo Options/StickyTitles/Hint>>// |<$select tiddler=\"$:/themes/tiddlywiki/vanilla/options/stickytitles\"><option value=\"no\">{{$:/language/No}}</option><option value=\"yes\">{{$:/language/Yes}}</option></$select> |\n|<$link to=\"$:/themes/tiddlywiki/vanilla/options/codewrapping\"><<lingo Options/CodeWrapping>></$link> |<$select tiddler=\"$:/themes/tiddlywiki/vanilla/options/codewrapping\"><option value=\"pre\">{{$:/language/No}}</option><option value=\"pre-wrap\">{{$:/language/Yes}}</option></$select> |\n\n! <<lingo Settings>>\n\n|<$link to=\"$:/themes/tiddlywiki/vanilla/settings/fontfamily\"><<lingo Settings/FontFamily>></$link> |<$edit-text tiddler=\"$:/themes/tiddlywiki/vanilla/settings/fontfamily\" default=\"\" tag=\"input\"/> | |\n|<$link to=\"$:/themes/tiddlywiki/vanilla/settings/codefontfamily\"><<lingo Settings/CodeFontFamily>></$link> |<$edit-text tiddler=\"$:/themes/tiddlywiki/vanilla/settings/codefontfamily\" default=\"\" tag=\"input\"/> | |\n|<$link to=\"$:/themes/tiddlywiki/vanilla/settings/editorfontfamily\"><<lingo Settings/EditorFontFamily>></$link> |<$edit-text tiddler=\"$:/themes/tiddlywiki/vanilla/settings/editorfontfamily\" default=\"\" tag=\"input\"/> | |\n|<$link to=\"$:/themes/tiddlywiki/vanilla/settings/backgroundimage\"><<lingo Settings/BackgroundImage>></$link> |<$edit-text tiddler=\"$:/themes/tiddlywiki/vanilla/settings/backgroundimage\" default=\"\" tag=\"input\"/> |<<backgroundimage-dropdown>> |\n|<$link to=\"$:/themes/tiddlywiki/vanilla/settings/backgroundimageattachment\"><<lingo Settings/BackgroundImageAttachment>></$link> |<<backgroundimageattachment-dropdown>> | |\n|<$link to=\"$:/themes/tiddlywiki/vanilla/settings/backgroundimagesize\"><<lingo Settings/BackgroundImageSize>></$link> |<<backgroundimagesize-dropdown>> | |\n\n! <<lingo Metrics>>\n\n|<$link to=\"$:/themes/tiddlywiki/vanilla/metrics/fontsize\"><<lingo Metrics/FontSize>></$link> |<$edit-text tiddler=\"$:/themes/tiddlywiki/vanilla/metrics/fontsize\" default=\"\" tag=\"input\"/> |\n|<$link to=\"$:/themes/tiddlywiki/vanilla/metrics/lineheight\"><<lingo Metrics/LineHeight>></$link> |<$edit-text tiddler=\"$:/themes/tiddlywiki/vanilla/metrics/lineheight\" default=\"\" tag=\"input\"/> |\n|<$link to=\"$:/themes/tiddlywiki/vanilla/metrics/bodyfontsize\"><<lingo Metrics/BodyFontSize>></$link> |<$edit-text tiddler=\"$:/themes/tiddlywiki/vanilla/metrics/bodyfontsize\" default=\"\" tag=\"input\"/> |\n|<$link to=\"$:/themes/tiddlywiki/vanilla/metrics/bodylineheight\"><<lingo Metrics/BodyLineHeight>></$link> |<$edit-text tiddler=\"$:/themes/tiddlywiki/vanilla/metrics/bodylineheight\" default=\"\" tag=\"input\"/> |\n|<$link to=\"$:/themes/tiddlywiki/vanilla/metrics/storyleft\"><<lingo Metrics/StoryLeft>></$link><br>//<<lingo Metrics/StoryLeft/Hint>>// |^<$edit-text tiddler=\"$:/themes/tiddlywiki/vanilla/metrics/storyleft\" default=\"\" tag=\"input\"/> |\n|<$link to=\"$:/themes/tiddlywiki/vanilla/metrics/storytop\"><<lingo Metrics/StoryTop>></$link><br>//<<lingo Metrics/StoryTop/Hint>>// |^<$edit-text tiddler=\"$:/themes/tiddlywiki/vanilla/metrics/storytop\" default=\"\" tag=\"input\"/> |\n|<$link to=\"$:/themes/tiddlywiki/vanilla/metrics/storyright\"><<lingo Metrics/StoryRight>></$link><br>//<<lingo Metrics/StoryRight/Hint>>// |^<$edit-text tiddler=\"$:/themes/tiddlywiki/vanilla/metrics/storyright\" default=\"\" tag=\"input\"/> |\n|<$link to=\"$:/themes/tiddlywiki/vanilla/metrics/storywidth\"><<lingo Metrics/StoryWidth>></$link><br>//<<lingo Metrics/StoryWidth/Hint>>// |^<$edit-text tiddler=\"$:/themes/tiddlywiki/vanilla/metrics/storywidth\" default=\"\" tag=\"input\"/> |\n|<$link to=\"$:/themes/tiddlywiki/vanilla/metrics/tiddlerwidth\"><<lingo Metrics/TiddlerWidth>></$link><br>//<<lingo Metrics/TiddlerWidth/Hint>>//<br> |^<$edit-text tiddler=\"$:/themes/tiddlywiki/vanilla/metrics/tiddlerwidth\" default=\"\" tag=\"input\"/> |\n|<$link to=\"$:/themes/tiddlywiki/vanilla/metrics/sidebarbreakpoint\"><<lingo Metrics/SidebarBreakpoint>></$link><br>//<<lingo Metrics/SidebarBreakpoint/Hint>>// |^<$edit-text tiddler=\"$:/themes/tiddlywiki/vanilla/metrics/sidebarbreakpoint\" default=\"\" tag=\"input\"/> |\n|<$link to=\"$:/themes/tiddlywiki/vanilla/metrics/sidebarwidth\"><<lingo Metrics/SidebarWidth>></$link><br>//<<lingo Metrics/SidebarWidth/Hint>>// |^<$edit-text tiddler=\"$:/themes/tiddlywiki/vanilla/metrics/sidebarwidth\" default=\"\" tag=\"input\"/> |\n"
        },
        "$:/themes/tiddlywiki/vanilla/base": {
            "title": "$:/themes/tiddlywiki/vanilla/base",
            "tags": "[[$:/tags/Stylesheet]]",
            "text": "\\define custom-background-datauri()\n<$set name=\"background\" value={{$:/themes/tiddlywiki/vanilla/settings/backgroundimage}}>\n<$list filter=\"[<background>is[image]]\">\n`background: url(`\n<$list filter=\"[<background>!has[_canonical_uri]]\">\n`\"`<$macrocall $name=\"datauri\" title={{$:/themes/tiddlywiki/vanilla/settings/backgroundimage}}/>`\"`\n</$list>\n<$list filter=\"[<background>has[_canonical_uri]]\">\n`\"`<$view tiddler={{$:/themes/tiddlywiki/vanilla/settings/backgroundimage}} field=\"_canonical_uri\"/>`\"`\n</$list>\n`) center center;`\n`background-attachment: `{{$:/themes/tiddlywiki/vanilla/settings/backgroundimageattachment}}`;\n-webkit-background-size:` {{$:/themes/tiddlywiki/vanilla/settings/backgroundimagesize}}`;\n-moz-background-size:` {{$:/themes/tiddlywiki/vanilla/settings/backgroundimagesize}}`;\n-o-background-size:` {{$:/themes/tiddlywiki/vanilla/settings/backgroundimagesize}}`;\nbackground-size:` {{$:/themes/tiddlywiki/vanilla/settings/backgroundimagesize}}`;`\n</$list>\n</$set>\n\\end\n\n\\define sidebarbreakpoint()\n<$text text={{$:/themes/tiddlywiki/vanilla/metrics/sidebarbreakpoint}}/>\n\\end\n\n\\define sidebarbreakpoint-minus-one()\n<$text text={{{ [{$:/themes/tiddlywiki/vanilla/metrics/sidebarbreakpoint}removesuffix[px]subtract[1]addsuffix[px]] ~[{$:/themes/tiddlywiki/vanilla/metrics/sidebarbreakpoint}] }}}/>\n\\end\n\n\\define if-fluid-fixed(text,hiddenSidebarText)\n<$reveal state=\"$:/themes/tiddlywiki/vanilla/options/sidebarlayout\" type=\"match\" text=\"fluid-fixed\">\n$text$\n<$reveal state=\"$:/state/sidebar\" type=\"nomatch\" text=\"yes\" default=\"yes\">\n$hiddenSidebarText$\n</$reveal>\n</$reveal>\n\\end\n\n\\define if-editor-height-fixed(then,else)\n<$reveal state=\"$:/config/TextEditor/EditorHeight/Mode\" type=\"match\" text=\"fixed\">\n$then$\n</$reveal>\n<$reveal state=\"$:/config/TextEditor/EditorHeight/Mode\" type=\"match\" text=\"auto\">\n$else$\n</$reveal>\n\\end\n\n\\define set-type-selector-min-width()\n<$set name=\"typeLength\" value={{{ [all[shadows+tiddlers]prefix[$:/language/Docs/Types/]get[name]length[]maxall[]] }}}>\n\n\t.tc-type-selector-dropdown-wrapper {\n\t\tmin-width: calc(<<typeLength>>ch + 4em);\n\t}\n\n\t.tc-type-selector-dropdown-wrapper input.tc-edit-typeeditor {\n\t\tmin-width: <<typeLength>>ch;\n\t}\n\n</$set>\n\\end\n\n\\rules only filteredtranscludeinline transcludeinline macrodef macrocallinline macrocallblock\n\n/*\n** Start with the normalize CSS reset, and then belay some of its effects\n*/\n\n{{$:/themes/tiddlywiki/vanilla/reset}}\n\n*, input[type=\"search\"] {\n\tbox-sizing: border-box;\n\t-moz-box-sizing: border-box;\n\t-webkit-box-sizing: border-box;\n}\n\ninput[type=\"search\"] {\n  outline-offset: initial;\n}\n\nhtml button {\n\tline-height: 1.2;\n\tcolor: <<colour button-foreground>>;\n\tfill: <<colour button-foreground>>;\n\tbackground: <<colour button-background>>;\n\tborder-color: <<colour button-border>>;\n}\n\n/*\n** Basic element styles\n*/\n\nhtml, body {\n\tfont-family: {{$:/themes/tiddlywiki/vanilla/settings/fontfamily}};\n\ttext-rendering: optimizeLegibility; /* Enables kerning and ligatures etc. */\n\t-webkit-font-smoothing: antialiased;\n\t-moz-osx-font-smoothing: grayscale;\n}\n\nhtml:-webkit-full-screen {\n\tbackground-color: <<colour page-background>>;\n}\n\nbody.tc-body {\n\tfont-size: {{$:/themes/tiddlywiki/vanilla/metrics/fontsize}};\n\tline-height: {{$:/themes/tiddlywiki/vanilla/metrics/lineheight}};\n\tword-wrap: break-word;\n\t<<custom-background-datauri>>\n\tcolor: <<colour foreground>>;\n\tbackground-color: <<colour page-background>>;\n\tfill: <<colour foreground>>;\n}\n\n<<if-background-attachment \"\"\"\n\nbody.tc-body {\n        background-color: transparent;\n}\n\n\"\"\">>\n\n/**\n * Correct the font size and margin on `h1` elements within `section` and\n * `article` contexts in Chrome, Firefox, and Safari.\n */\n\nh1 {\n\tfont-size: 2em;\n}\n\nh1, h2, h3, h4, h5, h6 {\n\tline-height: 1.2;\n\tfont-weight: 300;\n}\n\npre {\n\tdisplay: block;\n\tmargin-top: 1em;\n\tmargin-bottom: 1em;\n\tword-break: normal;\n\tword-wrap: break-word;\n\twhite-space: {{$:/themes/tiddlywiki/vanilla/options/codewrapping}};\n\tbackground-color: <<colour pre-background>>;\n\tborder: 1px solid <<colour pre-border>>;\n\tpadding: 0 3px 2px;\n\tborder-radius: 3px;\n\tfont-family: {{$:/themes/tiddlywiki/vanilla/settings/codefontfamily}};\n}\n\ncode {\n\tcolor: <<colour code-foreground>>;\n\tbackground-color: <<colour code-background>>;\n\tborder: 1px solid <<colour code-border>>;\n\twhite-space: {{$:/themes/tiddlywiki/vanilla/options/codewrapping}};\n\tpadding: 0 3px 2px;\n\tborder-radius: 3px;\n\tfont-family: {{$:/themes/tiddlywiki/vanilla/settings/codefontfamily}};\n}\n\nblockquote {\n\tborder-left: 5px solid <<colour blockquote-bar>>;\n\tmargin-left: 25px;\n\tpadding-left: 10px;\n\tquotes: \"\\201C\"\"\\201D\"\"\\2018\"\"\\2019\";\n}\n\nblockquote > div {\n\tmargin-top: 1em;\n\tmargin-bottom: 1em;\n}\n\nblockquote.tc-big-quote {\n\tfont-family: Georgia, serif;\n\tposition: relative;\n\tbackground: <<colour pre-background>>;\n\tborder-left: none;\n\tmargin-left: 50px;\n\tmargin-right: 50px;\n\tpadding: 10px;\n    border-radius: 8px;\n}\n\nblockquote.tc-big-quote cite:before {\n\tcontent: \"\\2014 \\2009\";\n}\n\nblockquote.tc-big-quote:before {\n\tfont-family: Georgia, serif;\n\tcolor: <<colour blockquote-bar>>;\n\tcontent: open-quote;\n\tfont-size: 8em;\n\tline-height: 0.1em;\n\tmargin-right: 0.25em;\n\tvertical-align: -0.4em;\n\tposition: absolute;\n    left: -50px;\n    top: 42px;\n}\n\nblockquote.tc-big-quote:after {\n\tfont-family: Georgia, serif;\n\tcolor: <<colour blockquote-bar>>;\n\tcontent: close-quote;\n\tfont-size: 8em;\n\tline-height: 0.1em;\n\tmargin-right: 0.25em;\n\tvertical-align: -0.4em;\n\tposition: absolute;\n    right: -80px;\n    bottom: -20px;\n}\n\ndl dt {\n\tfont-weight: bold;\n\tmargin-top: 6px;\n}\n\nbutton, textarea, input, select {\n\toutline-color: <<colour primary>>;\n}\n\ntextarea,\ninput[type=text],\ninput[type=search],\ninput[type=\"\"],\ninput:not([type]) {\n\tcolor: <<colour foreground>>;\n\tbackground: <<colour background>>;\n}\n\ninput[type=\"checkbox\"] {\n  vertical-align: middle;\n}\n\ninput[type=\"search\"]::-webkit-search-decoration,\ninput[type=\"search\"]::-webkit-search-cancel-button,\ninput[type=\"search\"]::-webkit-search-results-button,\ninput[type=\"search\"]::-webkit-search-results-decoration {\n\t-webkit-appearance:none;\n}\n\n.tc-muted {\n\tcolor: <<colour muted-foreground>>;\n}\n\nsvg.tc-image-button {\n\tpadding: 0px 1px 1px 0px;\n}\n\n.tc-icon-wrapper > svg {\n\twidth: 1em;\n\theight: 1em;\n}\n\nkbd {\n\tdisplay: inline-block;\n\tpadding: 3px 5px;\n\tfont-size: 0.8em;\n\tline-height: 1.2;\n\tcolor: <<colour foreground>>;\n\tvertical-align: middle;\n\tbackground-color: <<colour background>>;\n\tborder: solid 1px <<colour muted-foreground>>;\n\tborder-bottom-color: <<colour muted-foreground>>;\n\tborder-radius: 3px;\n\tbox-shadow: inset 0 -1px 0 <<colour muted-foreground>>;\n}\n\n::selection {\n\tbackground-color: Highlight;\n\tcolor: HighlightText;\n\tbackground-color: <<colour selection-background>>;\n\tcolor: <<colour selection-foreground>>;\n}\n\n/*\nMarkdown likes putting code elements inside pre elements\n*/\npre > code {\n\tpadding: 0;\n\tborder: none;\n\tbackground-color: inherit;\n\tcolor: inherit;\n}\n\ntable {\n\tborder: 1px solid <<colour table-border>>;\n\twidth: auto;\n\tmax-width: 100%;\n\tcaption-side: bottom;\n\tmargin-top: 1em;\n\tmargin-bottom: 1em;\n\t/* next 2 elements needed, since normalize 8.0.1 */\n\tborder-collapse: collapse;\n\tborder-spacing: 0;\n}\n\ntable th, table td {\n\tpadding: 0 7px 0 7px;\n\tborder-top: 1px solid <<colour table-border>>;\n\tborder-left: 1px solid <<colour table-border>>;\n}\n\ntable thead tr td, table th {\n\tbackground-color: <<colour table-header-background>>;\n\tfont-weight: bold;\n}\n\ntable tfoot tr td {\n\tbackground-color: <<colour table-footer-background>>;\n}\n\n.tc-csv-table {\n\twhite-space: nowrap;\n}\n\n.tc-tiddler-frame img,\n.tc-tiddler-frame svg,\n.tc-tiddler-frame canvas,\n.tc-tiddler-frame embed,\n.tc-tiddler-frame iframe {\n\tmax-width: 100%;\n}\n\n.tc-tiddler-body > embed,\n.tc-tiddler-body > iframe {\n\twidth: 100%;\n\theight: 600px;\n}\n\n/*\n** Links\n*/\n\nbutton.tc-tiddlylink,\na.tc-tiddlylink {\n\ttext-decoration: none;\n\tfont-weight: 500;\n\tcolor: <<colour tiddler-link-foreground>>;\n\t-webkit-user-select: inherit; /* Otherwise the draggable attribute makes links impossible to select */\n}\n\n.tc-sidebar-lists a.tc-tiddlylink {\n\tcolor: <<colour sidebar-tiddler-link-foreground>>;\n}\n\n.tc-sidebar-lists a.tc-tiddlylink:hover {\n\tcolor: <<colour sidebar-tiddler-link-foreground-hover>>;\n}\n\nbutton.tc-tiddlylink:hover,\na.tc-tiddlylink:hover {\n\ttext-decoration: underline;\n}\n\na.tc-tiddlylink-resolves {\n}\n\na.tc-tiddlylink-shadow {\n\tfont-weight: bold;\n}\n\na.tc-tiddlylink-shadow.tc-tiddlylink-resolves {\n\tfont-weight: normal;\n}\n\na.tc-tiddlylink-missing {\n\tfont-style: italic;\n}\n\na.tc-tiddlylink-external {\n\ttext-decoration: underline;\n\tcolor: <<colour external-link-foreground>>;\n\tbackground-color: <<colour external-link-background>>;\n}\n\na.tc-tiddlylink-external:visited {\n\tcolor: <<colour external-link-foreground-visited>>;\n\tbackground-color: <<colour external-link-background-visited>>;\n}\n\na.tc-tiddlylink-external:hover {\n\tcolor: <<colour external-link-foreground-hover>>;\n\tbackground-color: <<colour external-link-background-hover>>;\n}\n\n.tc-drop-down a.tc-tiddlylink:hover {\n\tcolor: <<colour tiddler-link-background>>;\n}\n\n/*\n** Drag and drop styles\n*/\n\n.tc-tiddler-dragger {\n\tposition: relative;\n\tz-index: -10000;\n}\n\n.tc-tiddler-dragger-inner {\n\tposition: absolute;\n\ttop: -1000px;\n\tleft: -1000px;\n\tdisplay: inline-block;\n\tpadding: 8px 20px;\n\tfont-size: 16.9px;\n\tfont-weight: bold;\n\tline-height: 20px;\n\tcolor: <<colour dragger-foreground>>;\n\ttext-shadow: 0 1px 0 rgba(0, 0, 0, 1);\n\twhite-space: nowrap;\n\tvertical-align: baseline;\n\tbackground-color: <<colour dragger-background>>;\n\tborder-radius: 20px;\n}\n\n.tc-tiddler-dragger-cover {\n\tposition: absolute;\n\tbackground-color: <<colour page-background>>;\n}\n\n.tc-dropzone {\n\tposition: relative;\n}\n\n.tc-dropzone.tc-dragover:before {\n\tz-index: 10000;\n\tdisplay: block;\n\tposition: fixed;\n\ttop: 0;\n\tleft: 0;\n\tright: 0;\n\tbackground: <<colour dropzone-background>>;\n\ttext-align: center;\n\tcontent: \"<<lingo DropMessage>>\";\n}\n\n.tc-droppable > .tc-droppable-placeholder {\n\tdisplay: none;\n}\n\n.tc-droppable.tc-dragover > .tc-droppable-placeholder {\n\tdisplay: block;\n\tborder: 2px dashed <<colour dropzone-background>>;\n}\n\n.tc-draggable {\n\tcursor: move;\n}\n\n.tc-sidebar-tab-open .tc-droppable-placeholder, .tc-tagged-draggable-list .tc-droppable-placeholder,\n.tc-links-draggable-list .tc-droppable-placeholder {\n\tline-height: 2em;\n\theight: 2em;\n}\n\n.tc-sidebar-tab-open-item {\n\tposition: relative;\n}\n\n.tc-sidebar-tab-open .tc-btn-invisible.tc-btn-mini svg {\n\tfont-size: 0.7em;\n\tfill: <<colour muted-foreground>>;\n}\n\n/*\n** Plugin reload warning\n*/\n\n.tc-plugin-reload-warning {\n\tz-index: 1000;\n\tdisplay: block;\n\tposition: fixed;\n\ttop: 0;\n\tleft: 0;\n\tright: 0;\n\tbackground: <<colour alert-background>>;\n\ttext-align: center;\n}\n\n/*\n** Buttons\n*/\n\nbutton svg, button img, label svg, label img {\n\tvertical-align: middle;\n}\n\n.tc-btn-invisible {\n\tpadding: 0;\n\tmargin: 0;\n\tbackground: none;\n\tborder: none;\n\tcursor: pointer;\n\tcolor: <<colour foreground>>;\n\tfill: <<colour foreground>>;\n}\n\n.tc-btn-boxed {\n\tfont-size: 0.6em;\n\tpadding: 0.2em;\n\tmargin: 1px;\n\tbackground: none;\n\tborder: 1px solid <<colour tiddler-controls-foreground>>;\n\tborder-radius: 0.25em;\n}\n\nhtml body.tc-body .tc-btn-boxed svg {\n\tfont-size: 1.6666em;\n}\n\n.tc-btn-boxed:hover {\n\tbackground: <<colour muted-foreground>>;\n\tcolor: <<colour background>>;\n}\n\nhtml body.tc-body .tc-btn-boxed:hover svg {\n\tfill: <<colour background>>;\n}\n\n.tc-btn-rounded {\n\tfont-size: 0.5em;\n\tline-height: 2;\n\tpadding: 0em 0.3em 0.2em 0.4em;\n\tmargin: 1px;\n\tborder: 1px solid <<colour muted-foreground>>;\n\tbackground: <<colour muted-foreground>>;\n\tcolor: <<colour background>>;\n\tborder-radius: 2em;\n}\n\nhtml body.tc-body .tc-btn-rounded svg {\n\tfont-size: 1.6666em;\n\tfill: <<colour background>>;\n}\n\n.tc-btn-rounded:hover {\n\tborder: 1px solid <<colour muted-foreground>>;\n\tbackground: <<colour background>>;\n\tcolor: <<colour muted-foreground>>;\n}\n\nhtml body.tc-body .tc-btn-rounded:hover svg {\n\tfill: <<colour muted-foreground>>;\n}\n\n.tc-btn-icon svg {\n\theight: 1em;\n\twidth: 1em;\n\tfill: <<colour muted-foreground>>;\n}\n\n.tc-btn-text {\n\tpadding: 0;\n\tmargin: 0;\n}\n\n/* used for documentation \"fake\" buttons */\n.tc-btn-standard {\n\tline-height: 1.8;\n\tcolor: #667;\n\tbackground-color: #e0e0e0;\n\tborder: 1px solid #888;\n\tpadding: 2px 1px 2px 1px;\n\tmargin: 1px 4px 1px 4px;\n}\n\n.tc-btn-big-green {\n\tdisplay: inline-block;\n\tpadding: 8px;\n\tmargin: 4px 8px 4px 8px;\n\tbackground: <<colour download-background>>;\n\tcolor: <<colour download-foreground>>;\n\tfill: <<colour download-foreground>>;\n\tborder: none;\n\tborder-radius: 2px;\n\tfont-size: 1.2em;\n\tline-height: 1.4em;\n\ttext-decoration: none;\n}\n\n.tc-btn-big-green svg,\n.tc-btn-big-green img {\n\theight: 2em;\n\twidth: 2em;\n\tvertical-align: middle;\n\tfill: <<colour download-foreground>>;\n}\n\n.tc-primary-btn {\n \tbackground: <<colour primary>>;\n}\n\n.tc-sidebar-lists input {\n\tcolor: <<colour foreground>>;\n}\n\n.tc-sidebar-lists button {\n\tcolor: <<colour sidebar-button-foreground>>;\n\tfill: <<colour sidebar-button-foreground>>;\n}\n\n.tc-sidebar-lists button.tc-btn-mini {\n\tcolor: <<colour sidebar-muted-foreground>>;\n}\n\n.tc-sidebar-lists button.tc-btn-mini:hover {\n\tcolor: <<colour sidebar-muted-foreground-hover>>;\n}\n\n.tc-sidebar-lists button small {\n\tcolor: <<colour foreground>>;\n}\n\nbutton svg.tc-image-button, button .tc-image-button img {\n\theight: 1em;\n\twidth: 1em;\n}\n\n.tc-unfold-banner {\n\tposition: absolute;\n\tpadding: 0;\n\tmargin: 0;\n\tbackground: none;\n\tborder: none;\n\twidth: 100%;\n\twidth: calc(100% + 2px);\n\tmargin-left: -43px;\n\ttext-align: center;\n\tborder-top: 2px solid <<colour tiddler-info-background>>;\n\tmargin-top: 4px;\n}\n\n.tc-unfold-banner:hover {\n\tbackground: <<colour tiddler-info-background>>;\n\tborder-top: 2px solid <<colour tiddler-info-border>>;\n}\n\n.tc-unfold-banner svg, .tc-fold-banner svg {\n\theight: 0.75em;\n\tfill: <<colour tiddler-controls-foreground>>;\n}\n\n.tc-unfold-banner:hover svg, .tc-fold-banner:hover svg {\n\tfill: <<colour tiddler-controls-foreground-hover>>;\n}\n\n.tc-fold-banner {\n\tposition: absolute;\n\tpadding: 0;\n\tmargin: 0;\n\tbackground: none;\n\tborder: none;\n\twidth: 23px;\n\ttext-align: center;\n\tmargin-left: -35px;\n\ttop: 6px;\n\tbottom: 6px;\n}\n\n.tc-fold-banner:hover {\n\tbackground: <<colour tiddler-info-background>>;\n}\n\n@media (max-width: <<sidebarbreakpoint-minus-one>>) {\n\n\t.tc-unfold-banner {\n\t\tposition: static;\n\t\twidth: calc(100% + 59px);\n\t}\n\n\t.tc-fold-banner {\n\t\twidth: 16px;\n\t\tmargin-left: -16px;\n\t\tfont-size: 0.75em;\n\t}\n\n}\n\n/*\n** Tags and missing tiddlers\n*/\n\n.tc-tag-list-item {\n\tposition: relative;\n\tdisplay: inline-block;\n\tmargin-right: 7px;\n}\n\n.tc-tags-wrapper {\n\tmargin: 4px 0 14px 0;\n}\n\n.tc-missing-tiddler-label {\n\tfont-style: italic;\n\tfont-weight: normal;\n\tdisplay: inline-block;\n\tfont-size: 11.844px;\n\tline-height: 14px;\n\twhite-space: nowrap;\n\tvertical-align: baseline;\n}\n\n.tc-block-tags-dropdown > .tc-btn-invisible:hover {\n\tbackground-color: <<colour primary>>;\n}\n\nbutton.tc-tag-label, span.tc-tag-label {\n\tdisplay: inline-block;\n\tpadding: 0.16em 0.7em;\n\tfont-size: 0.9em;\n\tfont-weight: 400;\n\tline-height: 1.2em;\n\tcolor: <<colour tag-foreground>>;\n\twhite-space: nowrap;\n\tvertical-align: baseline;\n\tbackground-color: <<colour tag-background>>;\n\tborder-radius: 1em;\n}\n\n.tc-sidebar-scrollable .tc-tag-label {\n\ttext-shadow: none;\n}\n\n.tc-untagged-separator {\n\twidth: 10em;\n\tleft: 0;\n\tmargin-left: 0;\n\tborder: 0;\n\theight: 1px;\n\tbackground: <<colour tab-divider>>;\n}\n\nbutton.tc-untagged-label {\n\tbackground-color: <<colour untagged-background>>;\n}\n\n.tc-tag-label svg, .tc-tag-label img {\n\theight: 1em;\n\twidth: 1em;\n\tmargin-right: 3px; \n\tmargin-bottom: 1px;\n\tvertical-align: bottom;\n}\n\n.tc-edit-tags button.tc-remove-tag-button svg {\n\tfont-size: 0.7em;\n\tvertical-align: middle;\n}\n\n.tc-tag-manager-table .tc-tag-label {\n\twhite-space: normal;\n}\n\n.tc-tag-manager-tag {\n\twidth: 100%;\n}\n\nbutton.tc-btn-invisible.tc-remove-tag-button {\n\toutline: none;\n}\n\n.tc-tag-button-selected,\n.tc-list-item-selected a.tc-tiddlylink, a.tc-list-item-selected {\n\tbackground-color: <<colour primary>>;\n\tcolor: <<colour tiddler-background>>;\n}\n\n/*\n** Page layout\n*/\n\n.tc-topbar {\n\tposition: fixed;\n\tz-index: 1200;\n}\n\n.tc-topbar-left {\n\tleft: 29px;\n\ttop: 5px;\n}\n\n.tc-topbar-right {\n\ttop: 5px;\n\tright: 29px;\n}\n\n@media (max-width: <<sidebarbreakpoint-minus-one>>) {\n\n\t.tc-topbar-right {\n\t\tright: 10px;\n\t}\n\n}\n\n.tc-topbar button {\n\tpadding: 8px;\n}\n\n.tc-topbar svg {\n\tfill: <<colour muted-foreground>>;\n}\n\n.tc-topbar button:hover svg {\n\tfill: <<colour foreground>>;\n}\n\n@media (max-width: <<sidebarbreakpoint-minus-one>>) {\n\n\t.tc-show-sidebar-btn svg.tc-image-chevron-left, .tc-hide-sidebar-btn svg.tc-image-chevron-right {\n\t\ttransform: rotate(-90deg);\n\t}\n\n}\n\n.tc-sidebar-header {\n\tcolor: <<colour sidebar-foreground>>;\n\tfill: <<colour sidebar-foreground>>;\n}\n\n.tc-sidebar-header .tc-title a.tc-tiddlylink-resolves {\n\tfont-weight: 300;\n}\n\n.tc-sidebar-header .tc-sidebar-lists p {\n\tmargin-top: 3px;\n\tmargin-bottom: 3px;\n}\n\n.tc-sidebar-header .tc-missing-tiddler-label {\n\tcolor: <<colour sidebar-foreground>>;\n}\n\n.tc-advanced-search input {\n\twidth: 60%;\n}\n\n.tc-search a svg {\n\twidth: 1.2em;\n\theight: 1.2em;\n\tvertical-align: middle;\n}\n\n.tc-page-controls {\n\tmargin-top: 14px;\n\tfont-size: 1.5em;\n}\n\n.tc-page-controls .tc-drop-down {\n  font-size: 1rem;\n}\n\n.tc-page-controls button {\n\tmargin-right: 0.5em;\n}\n\n.tc-page-controls a.tc-tiddlylink:hover {\n\ttext-decoration: none;\n}\n\n.tc-page-controls img {\n\twidth: 1em;\n}\n\n.tc-page-controls svg {\n\tfill: <<colour sidebar-controls-foreground>>;\n}\n\n.tc-page-controls button:hover svg, .tc-page-controls a:hover svg {\n\tfill: <<colour sidebar-controls-foreground-hover>>;\n}\n\n.tc-sidebar-lists .tc-menu-list-item {\n\twhite-space: nowrap;\n}\n\n.tc-menu-list-count {\n\tfont-weight: bold;\n}\n\n.tc-menu-list-subitem {\n\tpadding-left: 7px;\n}\n\n.tc-story-river {\n\tposition: relative;\n}\n\n@media (max-width: <<sidebarbreakpoint-minus-one>>) {\n\n\t.tc-sidebar-header {\n\t\tpadding: 14px;\n\t\tmin-height: 32px;\n\t\tmargin-top: {{$:/themes/tiddlywiki/vanilla/metrics/storytop}};\n\t\ttransition:  min-height {{$:/config/AnimationDuration}}ms ease-in-out, padding-top {{$:/config/AnimationDuration}}ms ease-in-out, padding-bottom {{$:/config/AnimationDuration}}ms ease-in-out;\n\t}\n\t\n\t<<if-no-sidebar \"\"\"\n\n\t\t.tc-sidebar-header {\n\t\t\tmin-height: 0;\n\t\t\tpadding-top: 0;\n\t\t\tpadding-bottom: 0;\n\t\t}\n\n\t\"\"\">>\n\n\t.tc-story-river {\n\t\tposition: relative;\n\t\tpadding: 0;\n\t}\n}\n\n@media (min-width: <<sidebarbreakpoint>>) {\n\n\t.tc-message-box {\n\t\tmargin: 21px -21px 21px -21px;\n\t}\n\n\t.tc-sidebar-scrollable {\n\t\tposition: fixed;\n\t\ttop: {{$:/themes/tiddlywiki/vanilla/metrics/storytop}};\n\t\tleft: {{$:/themes/tiddlywiki/vanilla/metrics/storyright}};\n\t\tbottom: 0;\n\t\tright: 0;\n\t\toverflow-y: auto;\n\t\toverflow-x: auto;\n\t\t-webkit-overflow-scrolling: touch;\n\t\tmargin: 0 0 0 -42px;\n\t\tpadding: 71px 0 28px 42px;\n\t}\n\n\thtml[dir=\"rtl\"] .tc-sidebar-scrollable {\n\t\tleft: auto;\n\t\tright: {{$:/themes/tiddlywiki/vanilla/metrics/storyright}};\n\t}\n\n\t.tc-story-river {\n\t\tposition: relative;\n\t\tleft: {{$:/themes/tiddlywiki/vanilla/metrics/storyleft}};\n\t\ttop: {{$:/themes/tiddlywiki/vanilla/metrics/storytop}};\n\t\twidth: {{$:/themes/tiddlywiki/vanilla/metrics/storywidth}};\n\t\tpadding: 42px 42px 42px 42px;\n\t}\n\n<<if-no-sidebar \"\n\n\t.tc-story-river {\n\t\twidth: calc(100% - {{$:/themes/tiddlywiki/vanilla/metrics/storyleft}});\n\t}\n\n\">>\n\n\t.tc-story-river.tc-static-story-river {\n\t\tmargin-right: 0;\n\t\tpadding-right: 42px;\n\t}\n\n}\n\n@media print {\n\n\tbody.tc-body {\n\t\tbackground-color: transparent;\n\t}\n\n\t.tc-sidebar-header, .tc-topbar {\n\t\tdisplay: none;\n\t}\n\n\t.tc-story-river {\n\t\tmargin: 0;\n\t\tpadding: 0;\n\t}\n\n\t.tc-story-river .tc-tiddler-frame {\n\t\tmargin: 0;\n\t\tborder: none;\n\t\tpadding: 0;\n\t}\n}\n\n/*\n** Tiddler styles\n*/\n\n.tc-tiddler-frame {\n\tposition: relative;\n\tmargin-bottom: 28px;\n\tbackground-color: <<colour tiddler-background>>;\n\tborder: 1px solid <<colour tiddler-border>>;\n}\n\n{{$:/themes/tiddlywiki/vanilla/sticky}}\n\n.tc-tiddler-info {\n\tpadding: 14px 42px 14px 42px;\n\tbackground-color: <<colour tiddler-info-background>>;\n\tborder-top: 1px solid <<colour tiddler-info-border>>;\n\tborder-bottom: 1px solid <<colour tiddler-info-border>>;\n}\n\n.tc-tiddler-info p {\n\tmargin-top: 3px;\n\tmargin-bottom: 3px;\n}\n\n.tc-tiddler-info .tc-tab-buttons button.tc-tab-selected {\n\tbackground-color: <<colour tiddler-info-tab-background>>;\n\tborder-bottom: 1px solid <<colour tiddler-info-tab-background>>;\n}\n\n@media (max-width: <<sidebarbreakpoint-minus-one>>) {\n\n\t.tc-tiddler-info {\n\t\tpadding: 14px 14px 14px 14px;\n\t}\n\n}\n\n.tc-view-field-table {\n\twidth: 100%;\n}\n\n.tc-view-field-name {\n\twidth: 1%; /* Makes this column be as narrow as possible */\n\ttext-align: right;\n\tfont-style: italic;\n\tfont-weight: 200;\n}\n\n.tc-view-field-value {\n}\n\n@media (max-width: <<sidebarbreakpoint-minus-one>>) {\n\t.tc-tiddler-frame {\n\t\tpadding: 14px 14px 14px 14px;\n\t\tmargin-bottom: .5em;\n\t}\n\n\t.tc-tiddler-info {\n\t\tmargin: 0 -14px 0 -14px;\n\t}\n}\n\n@media (min-width: <<sidebarbreakpoint>>) {\n\t.tc-tiddler-frame {\n\t\tpadding: 28px 42px 42px 42px;\n\t\twidth: {{$:/themes/tiddlywiki/vanilla/metrics/tiddlerwidth}};\n\t\tborder-radius: 2px;\n\t}\n\n<<if-no-sidebar \"\n\n\t.tc-tiddler-frame {\n\t\twidth: 100%;\n\t}\n\n\">>\n\n\t.tc-tiddler-info {\n\t\tmargin: 0 -42px 0 -42px;\n\t}\n}\n\n.tc-site-title,\n.tc-titlebar {\n\tfont-weight: 300;\n\tfont-size: 2.35em;\n\tline-height: 1.35em;\n\tcolor: <<colour tiddler-title-foreground>>;\n\tmargin: 0;\n}\n\n.tc-site-title {\n\tcolor: <<colour site-title-foreground>>;\n}\n\n.tc-tiddler-title-icon {\n\tvertical-align: middle;\n\tmargin-right: .1em;\n}\n\n.tc-system-title-prefix {\n\tcolor: <<colour muted-foreground>>;\n}\n\n.tc-titlebar h2 {\n\tfont-size: 1em;\n\tdisplay: inline;\n}\n\n.tc-titlebar img {\n\theight: 1em;\n}\n\n.tc-subtitle {\n\tfont-size: 0.9em;\n\tcolor: <<colour tiddler-subtitle-foreground>>;\n\tfont-weight: 300;\n}\n\n.tc-subtitle .tc-tiddlylink {\n\tmargin-right: .3em;\n}\n\n.tc-tiddler-missing .tc-title {\n  font-style: italic;\n  font-weight: normal;\n}\n\n.tc-tiddler-frame .tc-tiddler-controls {\n\tfloat: right;\n}\n\n.tc-tiddler-controls .tc-drop-down {\n\tfont-size: 0.6em;\n}\n\n.tc-tiddler-controls .tc-drop-down .tc-drop-down {\n\tfont-size: 1em;\n}\n\n.tc-tiddler-controls > span > button,\n.tc-tiddler-controls > span > span > button,\n.tc-tiddler-controls > span > span > span > button {\n\tvertical-align: baseline;\n\tmargin-left:5px;\n}\n\n.tc-tiddler-controls button svg, .tc-tiddler-controls button img,\n.tc-search button svg, .tc-search a svg {\n\tfill: <<colour tiddler-controls-foreground>>;\n}\n\n.tc-tiddler-controls button svg, .tc-tiddler-controls button img {\n\theight: 0.75em;\n}\n\n.tc-search button svg, .tc-search a svg {\n    height: 1.2em;\n    width: 1.2em;\n    margin: 0 0.25em;\n}\n\n.tc-tiddler-controls button.tc-selected svg,\n.tc-page-controls button.tc-selected svg  {\n\tfill: <<colour tiddler-controls-foreground-selected>>;\n}\n\n.tc-tiddler-controls button.tc-btn-invisible:hover svg,\n.tc-search button:hover svg, .tc-search a:hover svg {\n\tfill: <<colour tiddler-controls-foreground-hover>>;\n}\n\n@media print {\n\t.tc-tiddler-controls {\n\t\tdisplay: none;\n\t}\n}\n\n.tc-tiddler-help { /* Help prompts within tiddler template */\n\tcolor: <<colour muted-foreground>>;\n\tmargin-top: 14px;\n}\n\n.tc-tiddler-help a.tc-tiddlylink {\n\tcolor: <<colour very-muted-foreground>>;\n}\n\n.tc-tiddler-frame .tc-edit-texteditor {\n\twidth: 100%;\n\tmargin: 4px 0 4px 0;\n}\n\n.tc-tiddler-frame input.tc-edit-texteditor,\n.tc-tiddler-frame textarea.tc-edit-texteditor,\n.tc-tiddler-frame iframe.tc-edit-texteditor {\n\tpadding: 3px 3px 3px 3px;\n\tborder: 1px solid <<colour tiddler-editor-border>>;\n\tline-height: 1.3em;\n\t-webkit-appearance: none;\n\tfont-family: {{$:/themes/tiddlywiki/vanilla/settings/editorfontfamily}};\n}\n\n.tc-tiddler-frame input.tc-edit-texteditor,\n.tc-tiddler-frame textarea.tc-edit-texteditor {\n\tbackground-color: <<colour tiddler-editor-background>>;\n}\n\n.tc-tiddler-frame iframe.tc-edit-texteditor {\n\tbackground-color: <<colour tiddler-background>>;\n}\n\n.tc-tiddler-frame .tc-binary-warning {\n\twidth: 100%;\n\theight: 5em;\n\ttext-align: center;\n\tpadding: 3em 3em 6em 3em;\n\tbackground: <<colour alert-background>>;\n\tborder: 1px solid <<colour alert-border>>;\n}\n\ncanvas.tc-edit-bitmapeditor  {\n\tborder: 6px solid <<colour tiddler-editor-border-image>>;\n\tcursor: crosshair;\n\t-moz-user-select: none;\n\t-webkit-user-select: none;\n\t-ms-user-select: none;\n\tmargin-top: 6px;\n\tmargin-bottom: 6px;\n}\n\n.tc-edit-bitmapeditor-width {\n\tdisplay: block;\n}\n\n.tc-edit-bitmapeditor-height {\n\tdisplay: block;\n}\n\n.tc-tiddler-body {\n\tclear: both;\n}\n\n.tc-tiddler-frame .tc-tiddler-body {\n\tfont-size: {{$:/themes/tiddlywiki/vanilla/metrics/bodyfontsize}};\n\tline-height: {{$:/themes/tiddlywiki/vanilla/metrics/bodylineheight}};\n}\n\n.tc-titlebar, .tc-tiddler-edit-title {\n\toverflow: hidden; /* https://github.com/Jermolene/TiddlyWiki5/issues/282 */\n}\n\nhtml body.tc-body.tc-single-tiddler-window {\n\tmargin: 1em;\n\tbackground: <<colour tiddler-background>>;\n}\n\n.tc-single-tiddler-window img,\n.tc-single-tiddler-window svg,\n.tc-single-tiddler-window canvas,\n.tc-single-tiddler-window embed,\n.tc-single-tiddler-window iframe {\n\tmax-width: 100%;\n}\n\n/*\n** Editor\n*/\n\n.tc-editor-toolbar {\n\tmargin-top: 8px;\n}\n\n.tc-editor-toolbar button {\n\tvertical-align: middle;\n\tbackground-color: <<colour tiddler-controls-foreground>>;\n\tcolor: <<colour tiddler-controls-foreground-selected>>;\n\tfill: <<colour tiddler-controls-foreground-selected>>;\n\tborder-radius: 4px;\n\tpadding: 3px;\n\tmargin: 2px 0 2px 4px;\n}\n\n.tc-editor-toolbar button.tc-text-editor-toolbar-item-adjunct {\n\tmargin-left: 1px;\n\twidth: 1em;\n\tborder-radius: 8px;\n}\n\n.tc-editor-toolbar button.tc-text-editor-toolbar-item-start-group {\n\tmargin-left: 11px;\n}\n\n.tc-editor-toolbar button.tc-selected {\n\tbackground-color: <<colour primary>>;\n}\n\n.tc-editor-toolbar button svg {\n\twidth: 1.6em;\n\theight: 1.2em;\n}\n\n.tc-editor-toolbar button:hover {\n\tbackground-color: <<colour tiddler-controls-foreground-selected>>;\n\tfill: <<colour background>>;\n\tcolor: <<colour background>>;\n}\n\n.tc-editor-toolbar .tc-text-editor-toolbar-more {\n\twhite-space: normal;\n}\n\n.tc-editor-toolbar .tc-text-editor-toolbar-more button {\n\tdisplay: inline-block;\n\tpadding: 3px;\n\twidth: auto;\n}\n\n.tc-editor-toolbar .tc-search-results {\n\tpadding: 0;\n}\n\n/*\n** Adjustments for fluid-fixed mode\n*/\n\n@media (min-width: <<sidebarbreakpoint>>) {\n\n<<if-fluid-fixed text:\"\"\"\n\n\t.tc-story-river {\n\t\tpadding-right: 0;\n\t\tposition: relative;\n\t\twidth: auto;\n\t\tleft: 0;\n\t\tmargin-left: {{$:/themes/tiddlywiki/vanilla/metrics/storyleft}};\n\t\tmargin-right: {{$:/themes/tiddlywiki/vanilla/metrics/sidebarwidth}};\n\t}\n\n\t.tc-tiddler-frame {\n\t\twidth: 100%;\n\t}\n\n\t.tc-sidebar-scrollable {\n\t\tleft: auto;\n\t\tbottom: 0;\n\t\tright: 0;\n\t\twidth: {{$:/themes/tiddlywiki/vanilla/metrics/sidebarwidth}};\n\t}\n\n\tbody.tc-body .tc-storyview-zoomin-tiddler {\n\t\twidth: 100%;\n\t\twidth: calc(100% - 42px);\n\t}\n\n\"\"\" hiddenSidebarText:\"\"\"\n\n\t.tc-story-river {\n\t\tpadding-right: 3em;\n\t\tmargin-right: 0;\n\t}\n\n\tbody.tc-body .tc-storyview-zoomin-tiddler {\n\t\twidth: 100%;\n\t\twidth: calc(100% - 84px);\n\t}\n\n\"\"\">>\n\n}\n\n/*\n** Toolbar buttons\n*/\n\n.tc-page-controls svg.tc-image-new-button {\n  fill: <<colour toolbar-new-button>>;\n}\n\n.tc-page-controls svg.tc-image-options-button {\n  fill: <<colour toolbar-options-button>>;\n}\n\n.tc-page-controls svg.tc-image-save-button {\n  fill: <<colour toolbar-save-button>>;\n}\n\n.tc-tiddler-controls button svg.tc-image-info-button {\n  fill: <<colour toolbar-info-button>>;\n}\n\n.tc-tiddler-controls button svg.tc-image-edit-button {\n  fill: <<colour toolbar-edit-button>>;\n}\n\n.tc-tiddler-controls button svg.tc-image-close-button {\n  fill: <<colour toolbar-close-button>>;\n}\n\n.tc-tiddler-controls button svg.tc-image-delete-button {\n  fill: <<colour toolbar-delete-button>>;\n}\n\n.tc-tiddler-controls button svg.tc-image-cancel-button {\n  fill: <<colour toolbar-cancel-button>>;\n}\n\n.tc-tiddler-controls button svg.tc-image-done-button {\n  fill: <<colour toolbar-done-button>>;\n}\n\n/*\n** Tiddler edit mode\n*/\n\n.tc-tiddler-edit-frame em.tc-edit {\n\tcolor: <<colour muted-foreground>>;\n\tfont-style: normal;\n}\n\n.tc-edit-type-dropdown a.tc-tiddlylink-missing {\n\tfont-style: normal;\n}\n\n.tc-type-selector .tc-edit-typeeditor {\n\twidth: auto;\n}\n\n.tc-type-selector-dropdown-wrapper {\n\tdisplay: inline-block;\n}\n\n<<set-type-selector-min-width>>\n\n.tc-edit-tags {\n\tborder: 1px solid <<colour tiddler-editor-border>>;\n\tpadding: 4px 8px 4px 8px;\n}\n\n.tc-edit-add-tag {\n\tdisplay: inline-block;\n}\n\n.tc-edit-add-tag .tc-add-tag-name input {\n\twidth: 50%;\n}\n\n.tc-edit-add-tag .tc-keyboard {\n\tdisplay:inline;\n}\n\n.tc-edit-tags .tc-tag-label {\n\tdisplay: inline-block;\n}\n\n.tc-edit-tags-list {\n\tmargin: 14px 0 14px 0;\n}\n\n.tc-remove-tag-button {\n\tpadding-left: 4px;\n}\n\n.tc-tiddler-preview {\n\toverflow: auto;\n}\n\n.tc-tiddler-preview-preview {\n\tfloat: right;\n\twidth: 49%;\n\tborder: 1px solid <<colour tiddler-editor-border>>;\n\tmargin: 4px 0 3px 3px;\n\tpadding: 3px 3px 3px 3px;\n}\n\n<<if-editor-height-fixed then:\"\"\"\n\n.tc-tiddler-preview-preview {\n\toverflow-y: scroll;\n\theight: {{$:/config/TextEditor/EditorHeight/Height}};\n}\n\n\"\"\">>\n\n.tc-tiddler-frame .tc-tiddler-preview .tc-edit-texteditor {\n\twidth: 49%;\n}\n\n.tc-tiddler-frame .tc-tiddler-preview canvas.tc-edit-bitmapeditor {\n\tmax-width: 49%;\n}\n\n.tc-edit-fields {\n\twidth: 100%;\n}\n\n.tc-edit-fields.tc-edit-fields-small {\n\tmargin-top: 0;\n\tmargin-bottom: 0;\n}\n\n.tc-edit-fields table, .tc-edit-fields tr, .tc-edit-fields td {\n\tborder: none;\n\tpadding: 4px;\n}\n\n.tc-edit-fields > tbody > .tc-edit-field:nth-child(odd) {\n\tbackground-color: <<colour tiddler-editor-fields-odd>>;\n}\n\n.tc-edit-fields > tbody > .tc-edit-field:nth-child(even) {\n\tbackground-color: <<colour tiddler-editor-fields-even>>;\n}\n\n.tc-edit-field-name {\n\ttext-align: right;\n}\n\n.tc-edit-field-value input {\n\twidth: 100%;\n}\n\n.tc-edit-field-remove {\n}\n\n.tc-edit-field-remove svg {\n\theight: 1em;\n\twidth: 1em;\n\tfill: <<colour muted-foreground>>;\n\tvertical-align: middle;\n}\n\n.tc-edit-field-add-name-wrapper input.tc-edit-texteditor {\n\twidth: auto;\n}\n\n.tc-edit-field-add-name-wrapper {\n\tdisplay: inline-block;\n}\n\n.tc-edit-field-add-value {\n\tdisplay: inline-block;\n}\n\n@media (min-width: <<sidebarbreakpoint>>) {\n\n\t.tc-edit-field-add-value {\n\t\twidth: 35%;\n\t}\n\n}\n\n.tc-edit-field-add-button {\n\tdisplay: inline-block;\n\twidth: 10%;\n}\n\n/*\n** Storyview Classes\n*/\n\n.tc-viewswitcher .tc-image-button {\n\tmargin-right: .3em;\n}\n\n.tc-storyview-zoomin-tiddler {\n\tposition: absolute;\n\tdisplay: block;\n\twidth: 100%;\n}\n\n@media (min-width: <<sidebarbreakpoint>>) {\n\n\t.tc-storyview-zoomin-tiddler {\n\t\twidth: calc(100% - 84px);\n\t}\n\n}\n\n/*\n** Dropdowns\n*/\n\n.tc-btn-dropdown {\n\ttext-align: left;\n}\n\n.tc-btn-dropdown svg, .tc-btn-dropdown img {\n\theight: 1em;\n\twidth: 1em;\n\tfill: <<colour muted-foreground>>;\n}\n\n.tc-drop-down-wrapper {\n\tposition: relative;\n}\n\n.tc-drop-down {\n\tmin-width: 380px;\n\tborder: 1px solid <<colour dropdown-border>>;\n\tbackground-color: <<colour dropdown-background>>;\n\tpadding: 7px 0 7px 0;\n\tmargin: 4px 0 0 0;\n\twhite-space: nowrap;\n\ttext-shadow: none;\n\tline-height: 1.4;\n}\n\n.tc-drop-down .tc-drop-down {\n\tmargin-left: 14px;\n}\n\n.tc-drop-down button svg, .tc-drop-down a svg  {\n\tfill: <<colour foreground>>;\n}\n\n.tc-drop-down button.tc-btn-invisible:hover svg {\n\tfill: <<colour background>>;\n}\n\n.tc-drop-down .tc-drop-down-info {\n\tpadding-left: 14px;\n}\n\n.tc-drop-down p {\n\tpadding: 0 14px 0 14px;\n}\n\n.tc-drop-down svg {\n\twidth: 1em;\n\theight: 1em;\n}\n\n.tc-drop-down img {\n\twidth: 1em;\n}\n\n.tc-drop-down a, .tc-drop-down button {\n\tdisplay: block;\n\tpadding: 0 14px 0 14px;\n\twidth: 100%;\n\ttext-align: left;\n\tcolor: <<colour foreground>>;\n\tline-height: 1.4;\n}\n\n.tc-drop-down .tc-tab-set .tc-tab-buttons button {\n\tdisplay: inline-block;\n    width: auto;\n    margin-bottom: 0px;\n    border-bottom-left-radius: 0;\n    border-bottom-right-radius: 0;\n}\n\n.tc-drop-down .tc-prompt {\n\tpadding: 0 14px;\n}\n\n.tc-drop-down .tc-chooser {\n\tborder: none;\n}\n\n.tc-drop-down .tc-chooser .tc-swatches-horiz {\n\tfont-size: 0.4em;\n\tpadding-left: 1.2em;\n}\n\n.tc-drop-down .tc-file-input-wrapper {\n\twidth: 100%;\n}\n\n.tc-drop-down .tc-file-input-wrapper button {\n\tcolor: <<colour foreground>>;\n}\n\n.tc-drop-down a:hover, .tc-drop-down button:hover, .tc-drop-down .tc-file-input-wrapper:hover button {\n\tcolor: <<colour tiddler-link-background>>;\n\tbackground-color: <<colour tiddler-link-foreground>>;\n\ttext-decoration: none;\n}\n\n.tc-drop-down .tc-tab-buttons button {\n\tbackground-color: <<colour dropdown-tab-background>>;\n}\n\n.tc-drop-down .tc-tab-buttons button.tc-tab-selected {\n\tbackground-color: <<colour dropdown-tab-background-selected>>;\n\tborder-bottom: 1px solid <<colour dropdown-tab-background-selected>>;\n}\n\n.tc-drop-down-bullet {\n\tdisplay: inline-block;\n\twidth: 0.5em;\n}\n\n.tc-drop-down .tc-tab-contents a {\n\tpadding: 0 0.5em 0 0.5em;\n}\n\n.tc-block-dropdown-wrapper {\n\tposition: relative;\n}\n\n.tc-block-dropdown {\n\tposition: absolute;\n\tmin-width: 220px;\n\tborder: 1px solid <<colour dropdown-border>>;\n\tbackground-color: <<colour dropdown-background>>;\n\tpadding: 7px 0;\n\tmargin: 4px 0 0 0;\n\twhite-space: nowrap;\n\tz-index: 1000;\n\ttext-shadow: none;\n}\n\n.tc-block-dropdown.tc-search-drop-down {\n\tmargin-left: -12px;\n}\n\n.tc-block-dropdown a {\n\tdisplay: block;\n\tpadding: 4px 14px 4px 14px;\n}\n\n.tc-block-dropdown.tc-search-drop-down a {\n\tdisplay: block;\n\tpadding: 0px 10px 0px 10px;\n}\n\n.tc-drop-down .tc-dropdown-item-plain,\n.tc-block-dropdown .tc-dropdown-item-plain {\n\tpadding: 4px 14px 4px 7px;\n}\n\n.tc-drop-down .tc-dropdown-item,\n.tc-block-dropdown .tc-dropdown-item {\n\tpadding: 4px 14px 4px 7px;\n\tcolor: <<colour muted-foreground>>;\n}\n\n.tc-block-dropdown a.tc-tiddlylink:hover {\n\tcolor: <<colour tiddler-link-background>>;\n\tbackground-color: <<colour tiddler-link-foreground>>;\n\ttext-decoration: none;\n}\n\n.tc-search-results {\n\tpadding: 0 7px 0 7px;\n}\n\n.tc-image-chooser, .tc-colour-chooser {\n\twhite-space: normal;\n}\n\n.tc-image-chooser a,\n.tc-colour-chooser a {\n\tdisplay: inline-block;\n\tvertical-align: top;\n\ttext-align: center;\n\tposition: relative;\n}\n\n.tc-image-chooser a {\n\tborder: 1px solid <<colour muted-foreground>>;\n\tpadding: 2px;\n\tmargin: 2px;\n\twidth: 4em;\n\theight: 4em;\n}\n\n.tc-colour-chooser a {\n\tpadding: 3px;\n\twidth: 2em;\n\theight: 2em;\n\tvertical-align: middle;\n}\n\n.tc-image-chooser a:hover,\n.tc-colour-chooser a:hover {\n\tbackground: <<colour primary>>;\n\tpadding: 0px;\n\tborder: 3px solid <<colour primary>>;\n}\n\n.tc-image-chooser a svg,\n.tc-image-chooser a img {\n\tdisplay: inline-block;\n\twidth: auto;\n\theight: auto;\n\tmax-width: 3.5em;\n\tmax-height: 3.5em;\n\tposition: absolute;\n\ttop: 0;\n\tbottom: 0;\n\tleft: 0;\n\tright: 0;\n\tmargin: auto;\n}\n\n/*\n** Modals\n*/\n\n.tc-modal-wrapper {\n\tposition: fixed;\n\toverflow: auto;\n\toverflow-y: scroll;\n\ttop: 0;\n\tright: 0;\n\tbottom: 0;\n\tleft: 0;\n\tz-index: 900;\n}\n\n.tc-modal-backdrop {\n\tposition: fixed;\n\ttop: 0;\n\tright: 0;\n\tbottom: 0;\n\tleft: 0;\n\tz-index: 1000;\n\tbackground-color: <<colour modal-backdrop>>;\n}\n\n.tc-modal {\n\tz-index: 1100;\n\tbackground-color: <<colour modal-background>>;\n\tborder: 1px solid <<colour modal-border>>;\n}\n\n@media (max-width: 55em) {\n\t.tc-modal {\n\t\tposition: fixed;\n\t\ttop: 1em;\n\t\tleft: 1em;\n\t\tright: 1em;\n\t}\n\n\t.tc-modal-body {\n\t\toverflow-y: auto;\n\t\tmax-height: 400px;\n\t\tmax-height: 60vh;\n\t}\n}\n\n@media (min-width: 55em) {\n\t.tc-modal {\n\t\tposition: fixed;\n\t\ttop: 2em;\n\t\tleft: 25%;\n\t\twidth: 50%;\n\t}\n\n\t.tc-modal-body {\n\t\toverflow-y: auto;\n\t\tmax-height: 400px;\n\t\tmax-height: 60vh;\n\t}\n}\n\n.tc-modal-header {\n\tpadding: 9px 15px;\n\tborder-bottom: 1px solid <<colour modal-header-border>>;\n}\n\n.tc-modal-header h3 {\n\tmargin: 0;\n\tline-height: 30px;\n}\n\n.tc-modal-header img, .tc-modal-header svg {\n\twidth: 1em;\n\theight: 1em;\n}\n\n.tc-modal-body {\n\tpadding: 15px;\n}\n\n.tc-modal-footer {\n\tpadding: 14px 15px 15px;\n\tmargin-bottom: 0;\n\ttext-align: right;\n\tbackground-color: <<colour modal-footer-background>>;\n\tborder-top: 1px solid <<colour modal-footer-border>>;\n}\n\n\n/*\n** Centered modals\n*/\n.tc-modal-centered .tc-modal {\n\twidth: auto;\n\ttop: 50%;\n\tleft: 50%;\n\ttransform: translate(-50%, -50%) !important;\n}\n\n/*\n** Notifications\n*/\n\n.tc-notification {\n\tposition: fixed;\n\ttop: 14px;\n\tright: 42px;\n\tz-index: 1300;\n\tmax-width: 280px;\n\tpadding: 0 14px 0 14px;\n\tbackground-color: <<colour notification-background>>;\n\tborder: 1px solid <<colour notification-border>>;\n}\n\n/*\n** Tabs\n*/\n\n.tc-tab-set.tc-vertical {\n\tdisplay: -webkit-flex;\n\tdisplay: flex;\n}\n\n.tc-tab-buttons {\n\tfont-size: 0.85em;\n\tpadding-top: 1em;\n\tmargin-bottom: -2px;\n}\n\n.tc-tab-buttons.tc-vertical  {\n\tz-index: 100;\n\tdisplay: block;\n\tpadding-top: 14px;\n\tvertical-align: top;\n\ttext-align: right;\n\tmargin-bottom: inherit;\n\tmargin-right: -1px;\n\tmax-width: 33%;\n\t-webkit-flex: 0 0 auto;\n\tflex: 0 0 auto;\n}\n\n.tc-tab-buttons button.tc-tab-selected {\n\tcolor: <<colour tab-foreground-selected>>;\n\tbackground-color: <<colour tab-background-selected>>;\n\tborder-left: 1px solid <<colour tab-border-selected>>;\n\tborder-top: 1px solid <<colour tab-border-selected>>;\n\tborder-right: 1px solid <<colour tab-border-selected>>;\n}\n\n.tc-tab-buttons button {\n\tcolor: <<colour tab-foreground>>;\n\tpadding: 3px 5px 3px 5px;\n\tmargin-right: 0.3em;\n\tfont-weight: 300;\n\tborder: none;\n\tbackground: inherit;\n\tbackground-color: <<colour tab-background>>;\n\tborder-left: 1px solid <<colour tab-border>>;\n\tborder-top: 1px solid <<colour tab-border>>;\n\tborder-right: 1px solid <<colour tab-border>>;\n\tborder-top-left-radius: 2px;\n\tborder-top-right-radius: 2px;\n\tborder-bottom-left-radius: 0;\n\tborder-bottom-right-radius: 0;\n}\n\n.tc-tab-buttons.tc-vertical button {\n\tdisplay: block;\n\twidth: 100%;\n\tmargin-top: 3px;\n\tmargin-right: 0;\n\ttext-align: right;\n\tbackground-color: <<colour tab-background>>;\n\tborder-left: 1px solid <<colour tab-border>>;\n\tborder-bottom: 1px solid <<colour tab-border>>;\n\tborder-right: none;\n\tborder-top-left-radius: 2px;\n\tborder-bottom-left-radius: 2px;\n\tborder-top-right-radius: 0;\n\tborder-bottom-right-radius: 0;\n}\n\n.tc-tab-buttons.tc-vertical button.tc-tab-selected {\n\tbackground-color: <<colour tab-background-selected>>;\n\tborder-right: 1px solid <<colour tab-background-selected>>;\n}\n\n.tc-tab-divider {\n\tborder-top: 1px solid <<colour tab-divider>>;\n}\n\n.tc-tab-divider.tc-vertical  {\n\tdisplay: none;\n}\n\n.tc-tab-content {\n\tmargin-top: 14px;\n}\n\n.tc-tab-content.tc-vertical  {\n\tdisplay: inline-block;\n\tvertical-align: top;\n\tpadding-top: 0;\n\tpadding-left: 14px;\n\tborder-left: 1px solid <<colour tab-border>>;\n\t-webkit-flex: 1 0 70%;\n\tflex: 1 0 70%;\n\toverflow: auto;\n}\n\n.tc-sidebar-lists .tc-tab-buttons {\n\tmargin-bottom: -1px;\n}\n\n.tc-sidebar-lists .tc-tab-buttons button.tc-tab-selected {\n\tbackground-color: <<colour sidebar-tab-background-selected>>;\n\tcolor: <<colour sidebar-tab-foreground-selected>>;\n\tborder-left: 1px solid <<colour sidebar-tab-border-selected>>;\n\tborder-top: 1px solid <<colour sidebar-tab-border-selected>>;\n\tborder-right: 1px solid <<colour sidebar-tab-border-selected>>;\n}\n\n.tc-sidebar-lists .tc-tab-buttons button {\n\tbackground-color: <<colour sidebar-tab-background>>;\n\tcolor: <<colour sidebar-tab-foreground>>;\n\tborder-left: 1px solid <<colour sidebar-tab-border>>;\n\tborder-top: 1px solid <<colour sidebar-tab-border>>;\n\tborder-right: 1px solid <<colour sidebar-tab-border>>;\n}\n\n.tc-sidebar-lists .tc-tab-divider {\n\tborder-top: 1px solid <<colour sidebar-tab-divider>>;\n}\n\n.tc-more-sidebar > .tc-tab-set > .tc-tab-buttons > button {\n\tdisplay: block;\n\twidth: 100%;\n\tbackground-color: <<colour sidebar-tab-background>>;\n\tborder-top: none;\n\tborder-left: none;\n\tborder-bottom: none;\n\tborder-right: 1px solid #ccc;\n\tmargin-bottom: inherit;\n}\n\n.tc-more-sidebar > .tc-tab-set > .tc-tab-buttons > button.tc-tab-selected {\n\tbackground-color: <<colour sidebar-tab-background-selected>>;\n\tborder: none;\n}\n\n/*\n** Manager\n*/\n\n.tc-manager-wrapper {\n\t\n}\n\n.tc-manager-controls {\n\t\n}\n\n.tc-manager-control {\n\tmargin: 0.5em 0;\n}\n\n.tc-manager-list {\n\twidth: 100%;\n\tborder-top: 1px solid <<colour muted-foreground>>;\n\tborder-left: 1px solid <<colour muted-foreground>>;\n\tborder-right: 1px solid <<colour muted-foreground>>;\n}\n\n.tc-manager-list-item {\n\n}\n\n.tc-manager-list-item-heading {\n    display: block;\n    width: 100%;\n    text-align: left;\t\n\tborder-bottom: 1px solid <<colour muted-foreground>>;\n\tpadding: 3px;\n}\n\n.tc-manager-list-item-heading-selected {\n\tfont-weight: bold;\n\tcolor: <<colour background>>;\n\tfill: <<colour background>>;\n\tbackground-color: <<colour foreground>>;\n}\n\n.tc-manager-list-item-heading:hover {\n\tbackground: <<colour primary>>;\n\tcolor: <<colour background>>;\n}\n\n.tc-manager-list-item-content {\n\tdisplay: flex;\n}\n\n.tc-manager-list-item-content-sidebar {\n    flex: 1 0;\n    background: <<colour tiddler-editor-background>>;\n    border-right: 0.5em solid <<colour muted-foreground>>;\n    border-bottom: 0.5em solid <<colour muted-foreground>>;\n    white-space: nowrap;\n}\n\n.tc-manager-list-item-content-item-heading {\n\tdisplay: block;\n\twidth: 100%;\n\ttext-align: left;\n    background: <<colour muted-foreground>>;\n\ttext-transform: uppercase;\n\tfont-size: 0.6em;\n\tfont-weight: bold;\n    padding: 0.5em 0 0.5em 0;\n}\n\n.tc-manager-list-item-content-item-body {\n\tpadding: 0 0.5em 0 0.5em;\n}\n\n.tc-manager-list-item-content-item-body > pre {\n\tmargin: 0.5em 0 0.5em 0;\n\tborder: none;\n\tbackground: inherit;\n}\n\n.tc-manager-list-item-content-tiddler {\n    flex: 3 1;\n    border-left: 0.5em solid <<colour muted-foreground>>;\n    border-right: 0.5em solid <<colour muted-foreground>>;\n    border-bottom: 0.5em solid <<colour muted-foreground>>;\n}\n\n.tc-manager-list-item-content-item-body > table {\n\tborder: none;\n\tpadding: 0;\n\tmargin: 0;\n}\n\n.tc-manager-list-item-content-item-body > table td {\n\tborder: none;\n}\n\n.tc-manager-icon-editor > button {\n\twidth: 100%;\n}\n\n.tc-manager-icon-editor > button > svg,\n.tc-manager-icon-editor > button > button {\n\twidth: 100%;\n\theight: auto;\n}\n\n/*\n** Import table\n*/\n\n.tc-import-table {\n\twidth: 100%;\n}\n\n.tc-import-table svg.tc-image-edit-button {\n\tmax-width: unset;\n}\n\n.tc-import-table th:first-of-type {\n\twidth: 10%;\n}\n\n.tc-import-table th:last-of-type {\n\twidth: 30%;\n}\n\n.tc-import-table .tc-row-disabled {\n\tbackground: <<colour very-muted-foreground>>10;\n\topacity: 0.8;\n}\n\n.tc-import-table .tc-row-warning {\n\tbackground: <<colour diff-delete-background>>50;\n}\n\n/*\n** Alerts\n*/\n\n.tc-alerts {\n\tposition: fixed;\n\ttop: 28px;\n\tleft: 0;\n\tright: 0;\n\tmax-width: 50%;\n\tz-index: 20000;\n}\n\n.tc-alert {\n\tposition: relative;\n\tmargin: 14px;\n\tpadding: 7px;\n\tborder: 1px solid <<colour alert-border>>;\n\tbackground-color: <<colour alert-background>>;\n}\n\n.tc-alert-toolbar {\n\tposition: absolute;\n\ttop: 7px;\n\tright: 7px;\n    line-height: 0;\n}\n\n.tc-alert-toolbar svg {\n\tfill: <<colour alert-muted-foreground>>;\n}\n\n.tc-alert-subtitle {\n\tcolor: <<colour alert-muted-foreground>>;\n\tfont-weight: bold;\n    font-size: 0.8em;\n    margin-bottom: 0.5em;\n}\n\n.tc-alert-body > p {\n\tmargin: 0;\n}\n\n.tc-alert-highlight {\n\tcolor: <<colour alert-highlight>>;\n}\n\n@media (min-width: <<sidebarbreakpoint>>) {\n\n\t.tc-static-alert {\n\t\tposition: relative;\n\t}\n\n\t.tc-static-alert-inner {\n\t\tposition: absolute;\n\t\tz-index: 100;\n\t}\n\n}\n\n.tc-static-alert-inner {\n\tpadding: 0 2px 2px 42px;\n\tcolor: <<colour static-alert-foreground>>;\n}\n\n/*\n** Floating drafts list\n*/\n\n.tc-drafts-list {\n\tz-index: 2000;\n\tposition: fixed;\n\tfont-size: 0.8em;\n\tleft: 0;\n\tbottom: 0;\n}\n\n.tc-drafts-list a {\n\tmargin: 0 0.5em;\n\tpadding: 4px 4px;\n\tborder-top-left-radius: 4px;\n\tborder-top-right-radius: 4px;\n\tborder: 1px solid <<colour background>>;\n\tborder-bottom-none;\n\tbackground: <<colour dirty-indicator>>;\n\tcolor: <<colour background>>;\n\tfill: <<colour background>>;\n}\n\n.tc-drafts-list a:hover {\n\ttext-decoration: none;\n\tbackground: <<colour foreground>>;\n\tcolor: <<colour background>>;\n\tfill: <<colour background>>;\n}\n\n.tc-drafts-list a svg {\n\twidth: 1em;\n\theight: 1em;\n\tvertical-align: text-bottom;\n}\n\n/*\n** Control panel\n*/\n\n.tc-control-panel td {\n\tpadding: 4px;\n}\n\n.tc-control-panel table, .tc-control-panel table input, .tc-control-panel table textarea {\n\twidth: 100%;\n}\n\n.tc-plugin-info {\n\tdisplay: flex;\n\tborder: 1px solid <<colour muted-foreground>>;\n\tfill: <<colour muted-foreground>>;\n\tbackground-color: <<colour background>>;\n\tmargin: 0.5em 0 0.5em 0;\n\tpadding: 4px;\n    align-items: center;\n}\n\n.tc-plugin-info-sub-plugins .tc-plugin-info {\n    margin: 0.5em;\n\tbackground: <<colour background>>;\n}\n\n.tc-plugin-info-sub-plugin-indicator {\n\tmargin: -16px 1em 0 2em;\n}\n\n.tc-plugin-info-sub-plugin-indicator button {\n\tcolor: <<colour background>>;\n\tbackground: <<colour foreground>>;\n\tborder-radius: 8px;\n    padding: 2px 7px;\n    font-size: 0.75em;\n}\n\n.tc-plugin-info-sub-plugins .tc-plugin-info-dropdown {\n\tmargin-left: 1em;\n\tmargin-right: 1em;\n}\n\n.tc-plugin-info-disabled {\n\tbackground: -webkit-repeating-linear-gradient(45deg, #ff0, #ff0 10px, #eee 10px, #eee 20px);\n\tbackground: repeating-linear-gradient(45deg, #ff0, #ff0 10px, #eee 10px, #eee 20px);\n}\n\n.tc-plugin-info-disabled:hover {\n\tbackground: -webkit-repeating-linear-gradient(45deg, #aa0, #aa0 10px, #888 10px, #888 20px);\n\tbackground: repeating-linear-gradient(45deg, #aa0, #aa0 10px, #888 10px, #888 20px);\n}\n\na.tc-tiddlylink.tc-plugin-info:hover {\n\ttext-decoration: none;\n\tbackground-color: <<colour primary>>;\n\tcolor: <<colour background>>;\n\tfill: <<colour foreground>>;\n}\n\na.tc-tiddlylink.tc-plugin-info:hover > .tc-plugin-info-chunk > svg {\n\tfill: <<colour background>>;\n}\n\n.tc-plugin-info-chunk {\n    margin: 2px;\n}\n\n.tc-plugin-info-chunk.tc-plugin-info-toggle {\n\tflex-grow: 0;\n\tflex-shrink: 0;\n\tline-height: 1;\n}\n\n.tc-plugin-info-chunk.tc-plugin-info-icon {\n\tflex-grow: 0;\n\tflex-shrink: 0;\n\tline-height: 1;\n}\n\n.tc-plugin-info-chunk.tc-plugin-info-description {\n\tflex-grow: 1;\n}\n\n.tc-plugin-info-chunk.tc-plugin-info-buttons {\n\tfont-size: 0.8em;\n\tline-height: 1.2;\n\tflex-grow: 0;\n\tflex-shrink: 0;\n    text-align: right;\n}\n\n.tc-plugin-info-chunk.tc-plugin-info-description h1 {\n\tfont-size: 1em;\n\tline-height: 1.2;\n\tmargin: 2px 0 2px 0;\n}\n\n.tc-plugin-info-chunk.tc-plugin-info-description h2 {\n\tfont-size: 0.8em;\n\tline-height: 1.2;\n\tmargin: 2px 0 2px 0;\n}\n\n.tc-plugin-info-chunk.tc-plugin-info-description div {\n\tfont-size: 0.7em;\n\tline-height: 1.2;\n\tmargin: 2px 0 2px 0;\n}\n\n.tc-plugin-info-chunk.tc-plugin-info-toggle img, .tc-plugin-info-chunk.tc-plugin-info-toggle svg {\n\twidth: 1em;\n\theight: 1em;\n}\n\n.tc-plugin-info-chunk.tc-plugin-info-icon img, .tc-plugin-info-chunk.tc-plugin-info-icon svg {\n\twidth: 2em;\n\theight: 2em;\n}\n\n.tc-plugin-info-dropdown {\n\tborder: 1px solid <<colour muted-foreground>>;\n\tbackground: <<colour background>>;\n\tmargin-top: -8px;\n}\n\n.tc-plugin-info-dropdown-message {\n\tbackground: <<colour message-background>>;\n\tpadding: 0.5em 1em 0.5em 1em;\n\tfont-weight: bold;\n\tfont-size: 0.8em;\n}\n\n.tc-plugin-info-dropdown-body {\n\tpadding: 1em 1em 0 1em;\n\tbackground: <<colour background>>;\n}\n\n.tc-plugin-info-sub-plugins {\n\tpadding: 0.5em;\n    margin: 0 1em 1em 1em;\n\tbackground: <<colour notification-background>>;\n}\n\n.tc-install-plugin {\n\tfont-weight: bold;\n\tbackground: green;\n\tcolor: white;\n\tfill: white;\n\tborder-radius: 4px;\n\tpadding: 3px;\n}\n\n.tc-install-plugin.tc-reinstall-downgrade {\n\tbackground: red;\n}\n\n.tc-install-plugin.tc-reinstall {\n\tbackground: blue;\n}\n\n.tc-install-plugin.tc-reinstall-upgrade {\n\tbackground: orange;\n}\n\n.tc-check-list {\n\tline-height: 2em;\n}\n\n.tc-check-list .tc-image-button {\n\theight: 1.5em;\n}\n\n/*\n** Message boxes\n*/\n\n.tc-message-box {\n\tborder: 1px solid <<colour message-border>>;\n\tbackground: <<colour message-background>>;\n\tpadding: 0px 21px 0px 21px;\n\tfont-size: 12px;\n\tline-height: 18px;\n\tcolor: <<colour message-foreground>>;\n}\n\n.tc-message-box svg {\n\twidth: 1em;\n\theight: 1em;\n    vertical-align: text-bottom;\n}\n\n/*\n** Pictures\n*/\n\n.tc-bordered-image {\n\tborder: 1px solid <<colour muted-foreground>>;\n\tpadding: 5px;\n\tmargin: 5px;\n}\n\n/*\n** Floats\n*/\n\n.tc-float-right {\n\tfloat: right;\n}\n\n/*\n** Chooser\n*/\n\n.tc-chooser {\n\tborder-right: 1px solid <<colour table-header-background>>;\n\tborder-left: 1px solid <<colour table-header-background>>;\n}\n\n\n.tc-chooser-item {\n\tborder-bottom: 1px solid <<colour table-header-background>>;\n\tborder-top: 1px solid <<colour table-header-background>>;\n\tpadding: 2px 4px 2px 14px;\n}\n\n.tc-drop-down .tc-chooser-item {\n\tpadding: 2px;\n}\n\n.tc-chosen,\n.tc-chooser-item:hover {\n\tbackground-color: <<colour table-header-background>>;\n\tborder-color: <<colour table-footer-background>>;\n}\n\n.tc-chosen .tc-tiddlylink {\n\tcursor:default;\n}\n\n.tc-chooser-item .tc-tiddlylink {\n\tdisplay: block;\n\ttext-decoration: none;\n\tbackground-color: transparent;\n}\n\n.tc-chooser-item:hover .tc-tiddlylink:hover {\n\ttext-decoration: none;\n}\n\n.tc-drop-down .tc-chosen .tc-tiddlylink,\n.tc-drop-down .tc-chooser-item .tc-tiddlylink:hover {\n\tcolor: <<colour foreground>>;\n}\n\n.tc-chosen > .tc-tiddlylink:before {\n\tmargin-left: -10px;\n\tposition: relative;\n\tcontent: \"» \";\n}\n\n.tc-chooser-item svg,\n.tc-chooser-item img{\n\twidth: 1em;\n\theight: 1em;\n\tvertical-align: middle;\n}\n\n.tc-language-chooser .tc-image-button img {\n\twidth: 2em;\n\tvertical-align: -0.15em;\n}\n\n/*\n** Palette swatches\n*/\n\n.tc-swatches-horiz {\n}\n\n.tc-swatches-horiz .tc-swatch {\n\tdisplay: inline-block;\n}\n\n.tc-swatch {\n\twidth: 2em;\n\theight: 2em;\n\tmargin: 0.4em;\n\tborder: 1px solid #888;\n}\n\ninput.tc-palette-manager-colour-input {\n\twidth: 100%;\n\tpadding: 0;\n}\n\n/*\n** Table of contents\n*/\n\n.tc-sidebar-lists .tc-table-of-contents {\n\twhite-space: nowrap;\n}\n\n.tc-table-of-contents button {\n\tcolor: <<colour sidebar-foreground>>;\n}\n\n.tc-table-of-contents svg {\n\twidth: 0.7em;\n\theight: 0.7em;\n\tvertical-align: middle;\n\tfill: <<colour sidebar-foreground>>;\n}\n\n.tc-table-of-contents ol {\n\tlist-style-type: none;\n\tpadding-left: 0;\n}\n\n.tc-table-of-contents ol ol {\n\tpadding-left: 1em;\n}\n\n.tc-table-of-contents li {\n\tfont-size: 1.0em;\n\tfont-weight: bold;\n}\n\n.tc-table-of-contents li a {\n\tfont-weight: bold;\n}\n\n.tc-table-of-contents li li {\n\tfont-size: 0.95em;\n\tfont-weight: normal;\n\tline-height: 1.4;\n}\n\n.tc-table-of-contents li li a {\n\tfont-weight: normal;\n}\n\n.tc-table-of-contents li li li {\n\tfont-size: 0.95em;\n\tfont-weight: 200;\n\tline-height: 1.5;\n}\n\n.tc-table-of-contents li li li li {\n\tfont-size: 0.95em;\n\tfont-weight: 200;\n}\n\n.tc-tabbed-table-of-contents {\n\tdisplay: -webkit-flex;\n\tdisplay: flex;\n}\n\n.tc-tabbed-table-of-contents .tc-table-of-contents {\n\tz-index: 100;\n\tdisplay: inline-block;\n\tpadding-left: 1em;\n\tmax-width: 50%;\n\t-webkit-flex: 0 0 auto;\n\tflex: 0 0 auto;\n\tbackground: <<colour tab-background>>;\n\tborder-left: 1px solid <<colour tab-border>>;\n\tborder-top: 1px solid <<colour tab-border>>;\n\tborder-bottom: 1px solid <<colour tab-border>>;\n}\n\n.tc-tabbed-table-of-contents .tc-table-of-contents .toc-item > a,\n.tc-tabbed-table-of-contents .tc-table-of-contents .toc-item-selected > a {\n\tdisplay: block;\n\tpadding: 0.12em 1em 0.12em 0.25em;\n}\n\n.tc-tabbed-table-of-contents .tc-table-of-contents .toc-item > a {\n\tborder-top: 1px solid <<colour tab-background>>;\n\tborder-left: 1px solid <<colour tab-background>>;\n\tborder-bottom: 1px solid <<colour tab-background>>;\n}\n\n.tc-tabbed-table-of-contents .tc-table-of-contents .toc-item > a:hover {\n\ttext-decoration: none;\n\tborder-top: 1px solid <<colour tab-border>>;\n\tborder-left: 1px solid <<colour tab-border>>;\n\tborder-bottom: 1px solid <<colour tab-border>>;\n\tbackground: <<colour tab-border>>;\n}\n\n.tc-tabbed-table-of-contents .tc-table-of-contents .toc-item-selected > a {\n\tborder-top: 1px solid <<colour tab-border>>;\n\tborder-left: 1px solid <<colour tab-border>>;\n\tborder-bottom: 1px solid <<colour tab-border>>;\n\tbackground: <<colour background>>;\n\tmargin-right: -1px;\n}\n\n.tc-tabbed-table-of-contents .tc-table-of-contents .toc-item-selected > a:hover {\n\ttext-decoration: none;\n}\n\n.tc-tabbed-table-of-contents .tc-tabbed-table-of-contents-content {\n\tdisplay: inline-block;\n\tvertical-align: top;\n\tpadding-left: 1.5em;\n\tpadding-right: 1.5em;\n\tborder: 1px solid <<colour tab-border>>;\n\t-webkit-flex: 1 0 50%;\n\tflex: 1 0 50%;\n}\n\n/*\n** Dirty indicator\n*/\n\nbody.tc-dirty span.tc-dirty-indicator, body.tc-dirty span.tc-dirty-indicator svg {\n\tfill: <<colour dirty-indicator>>;\n\tcolor: <<colour dirty-indicator>>;\n}\n\n/*\n** File inputs\n*/\n\n.tc-file-input-wrapper {\n\tposition: relative;\n\toverflow: hidden;\n\tdisplay: inline-block;\n\tvertical-align: middle;\n}\n\n.tc-file-input-wrapper input[type=file] {\n\tposition: absolute;\n\ttop: 0;\n\tleft: 0;\n\tright: 0;\n\tbottom: 0;\n\tfont-size: 999px;\n\tmax-width: 100%;\n\tmax-height: 100%;\n\tfilter: alpha(opacity=0);\n\topacity: 0;\n\toutline: none;\n\tbackground: white;\n\tcursor: pointer;\n\tdisplay: inline-block;\n}\n\n::-webkit-file-upload-button {\n\tcursor:pointer;\n}\n\n/*\n** Thumbnail macros\n*/\n\n.tc-thumbnail-wrapper {\n\tposition: relative;\n\tdisplay: inline-block;\n\tmargin: 6px;\n\tvertical-align: top;\n}\n\n.tc-thumbnail-right-wrapper {\n\tfloat:right;\n\tmargin: 0.5em 0 0.5em 0.5em;\n}\n\n.tc-thumbnail-image {\n\ttext-align: center;\n\toverflow: hidden;\n\tborder-radius: 3px;\n}\n\n.tc-thumbnail-image svg,\n.tc-thumbnail-image img {\n\tfilter: alpha(opacity=1);\n\topacity: 1;\n\tmin-width: 100%;\n\tmin-height: 100%;\n\tmax-width: 100%;\n}\n\n.tc-thumbnail-wrapper:hover .tc-thumbnail-image svg,\n.tc-thumbnail-wrapper:hover .tc-thumbnail-image img {\n\tfilter: alpha(opacity=0.8);\n\topacity: 0.8;\n}\n\n.tc-thumbnail-background {\n\tposition: absolute;\n\tborder-radius: 3px;\n}\n\n.tc-thumbnail-icon svg,\n.tc-thumbnail-icon img {\n\twidth: 3em;\n\theight: 3em;\n\t<<filter \"drop-shadow(2px 2px 4px rgba(0,0,0,0.3))\">>\n}\n\n.tc-thumbnail-wrapper:hover .tc-thumbnail-icon svg,\n.tc-thumbnail-wrapper:hover .tc-thumbnail-icon img {\n\tfill: #fff;\n\t<<filter \"drop-shadow(3px 3px 4px rgba(0,0,0,0.6))\">>\n}\n\n.tc-thumbnail-icon {\n\tposition: absolute;\n\ttop: 0;\n\tleft: 0;\n\tright: 0;\n\tbottom: 0;\n\tdisplay: -webkit-flex;\n\t-webkit-align-items: center;\n\t-webkit-justify-content: center;\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: center;\n}\n\n.tc-thumbnail-caption {\n\tposition: absolute;\n\tbackground-color: #777;\n\tcolor: #fff;\n\ttext-align: center;\n\tbottom: 0;\n\twidth: 100%;\n\tfilter: alpha(opacity=0.9);\n\topacity: 0.9;\n\tline-height: 1.4;\n\tborder-bottom-left-radius: 3px;\n\tborder-bottom-right-radius: 3px;\n}\n\n.tc-thumbnail-wrapper:hover .tc-thumbnail-caption {\n\tfilter: alpha(opacity=1);\n\topacity: 1;\n}\n\n/*\n** Diffs\n*/\n\n.tc-diff-equal {\n\tbackground-color: <<colour diff-equal-background>>;\n\tcolor: <<colour diff-equal-foreground>>;\n}\n\n.tc-diff-insert {\n\tbackground-color: <<colour diff-insert-background>>;\n\tcolor: <<colour diff-insert-foreground>>;\n}\n\n.tc-diff-delete {\n\tbackground-color: <<colour diff-delete-background>>;\n\tcolor: <<colour diff-delete-foreground>>;\n}\n\n.tc-diff-invisible {\n\tbackground-color: <<colour diff-invisible-background>>;\n\tcolor: <<colour diff-invisible-foreground>>;\n}\n\n.tc-diff-tiddlers th {\n\ttext-align: right;\n\tbackground: <<colour background>>;\n\tfont-weight: normal;\n\tfont-style: italic;\n}\n\n.tc-diff-tiddlers pre {\n    margin: 0;\n    padding: 0;\n    border: none;\n    background: none;\n}\n\n/*\n** Errors\n*/\n\n.tc-error {\n\tbackground: #f00;\n\tcolor: #fff;\n}\n\n/*\n** Tree macro\n*/\n\n.tc-tree div {\n    \tpadding-left: 14px;\n}\n\n.tc-tree ol {\n    \tlist-style-type: none;\n    \tpadding-left: 0;\n    \tmargin-top: 0;\n}\n\n.tc-tree ol ol {\n    \tpadding-left: 1em;    \n}\n\n.tc-tree button { \n    \tcolor: #acacac;\n}\n\n.tc-tree svg {\n     \tfill: #acacac;\n}\n\n.tc-tree span svg {\n    \twidth: 1em;\n    \theight: 1em;\n    \tvertical-align: baseline;\n}\n\n.tc-tree li span {\n    \tcolor: lightgray;\n}\n\nselect {\n        color: <<colour select-tag-foreground>>;\n        background: <<colour select-tag-background>>;\n}\n\n/*\n** Utility classes for SVG icons\n*/\n\n.tc-fill-background {\n\tfill: <<colour background>>;\n}\n\n/*\n** Flexbox utility classes\n*/\n\n.tc-flex {\n\tdisplay: -webkit-flex;\n\tdisplay: flex;\n}\n\n.tc-flex-column {\n\tflex-direction: column;\n}\n\n.tc-flex-row {\n\tflex-direction: row;\n}\n\n.tc-flex-grow-1 {\n\tflex-grow: 1;\n}\n\n.tc-flex-grow-2 {\n\tflex-grow: 2;\n}\n\n/*\n** Other utility classes\n*/\n\n.tc-small-gap {\n\tmargin-left: .5em;\n\tmargin-right: .5em;\n}\n\n.tc-small-gap-left {\n\tmargin-left: .5em;\n}\n\n.tc-small-gap-right {\n\tmargin-right: .5em;\n}\n\n.tc-big-gap {\n\tmargin-left: 1em;\n\tmargin-right: 1em;\n}\n\n.tc-big-gap-left {\n\tmargin-left: 1em;\n}\n\n.tc-big-gap-right {\n\tmargin-right: 1em;\n}\n\n.tc-word-break {\n\tword-break: break-all;\n}\n"
        },
        "$:/themes/tiddlywiki/vanilla/metrics/bodyfontsize": {
            "title": "$:/themes/tiddlywiki/vanilla/metrics/bodyfontsize",
            "text": "15px"
        },
        "$:/themes/tiddlywiki/vanilla/metrics/bodylineheight": {
            "title": "$:/themes/tiddlywiki/vanilla/metrics/bodylineheight",
            "text": "22px"
        },
        "$:/themes/tiddlywiki/vanilla/metrics/fontsize": {
            "title": "$:/themes/tiddlywiki/vanilla/metrics/fontsize",
            "text": "14px"
        },
        "$:/themes/tiddlywiki/vanilla/metrics/lineheight": {
            "title": "$:/themes/tiddlywiki/vanilla/metrics/lineheight",
            "text": "20px"
        },
        "$:/themes/tiddlywiki/vanilla/metrics/storyleft": {
            "title": "$:/themes/tiddlywiki/vanilla/metrics/storyleft",
            "text": "0px"
        },
        "$:/themes/tiddlywiki/vanilla/metrics/storytop": {
            "title": "$:/themes/tiddlywiki/vanilla/metrics/storytop",
            "text": "0px"
        },
        "$:/themes/tiddlywiki/vanilla/metrics/storyright": {
            "title": "$:/themes/tiddlywiki/vanilla/metrics/storyright",
            "text": "770px"
        },
        "$:/themes/tiddlywiki/vanilla/metrics/storywidth": {
            "title": "$:/themes/tiddlywiki/vanilla/metrics/storywidth",
            "text": "770px"
        },
        "$:/themes/tiddlywiki/vanilla/metrics/tiddlerwidth": {
            "title": "$:/themes/tiddlywiki/vanilla/metrics/tiddlerwidth",
            "text": "686px"
        },
        "$:/themes/tiddlywiki/vanilla/metrics/sidebarbreakpoint": {
            "title": "$:/themes/tiddlywiki/vanilla/metrics/sidebarbreakpoint",
            "text": "960px"
        },
        "$:/themes/tiddlywiki/vanilla/metrics/sidebarwidth": {
            "title": "$:/themes/tiddlywiki/vanilla/metrics/sidebarwidth",
            "text": "350px"
        },
        "$:/themes/tiddlywiki/vanilla/options/stickytitles": {
            "title": "$:/themes/tiddlywiki/vanilla/options/stickytitles",
            "text": "no"
        },
        "$:/themes/tiddlywiki/vanilla/options/sidebarlayout": {
            "title": "$:/themes/tiddlywiki/vanilla/options/sidebarlayout",
            "text": "fixed-fluid"
        },
        "$:/themes/tiddlywiki/vanilla/options/codewrapping": {
            "title": "$:/themes/tiddlywiki/vanilla/options/codewrapping",
            "text": "pre-wrap"
        },
        "$:/themes/tiddlywiki/vanilla/reset": {
            "title": "$:/themes/tiddlywiki/vanilla/reset",
            "type": "text/plain",
            "text": "/*! modern-normalize v1.0.0 | MIT License | https://github.com/sindresorhus/modern-normalize */\n\n/*\nDocument\n========\n*/\n\n/**\nUse a better box model (opinionated).\n*/\n\n*,\n*::before,\n*::after {\n  box-sizing: border-box;\n}\n\n/**\nUse a more readable tab size (opinionated).\n*/\n\n:root {\n  -moz-tab-size: 4;\n  tab-size: 4;\n}\n\n/**\n1. Correct the line height in all browsers.\n2. Prevent adjustments of font size after orientation changes in iOS.\n*/\n\nhtml {\n  line-height: 1.15; /* 1 */\n  -webkit-text-size-adjust: 100%; /* 2 */\n}\n\n/*\nSections\n========\n*/\n\n/**\nRemove the margin in all browsers.\n*/\n\nbody {\n  margin: 0;\n}\n\n/**\nImprove consistency of default fonts in all browsers. (https://github.com/sindresorhus/modern-normalize/issues/3)\n*/\n\nbody {\n  font-family:\n    system-ui,\n    -apple-system, /* Firefox supports this but not yet `system-ui` */\n    'Segoe UI',\n    Roboto,\n    Helvetica,\n    Arial,\n    sans-serif,\n    'Apple Color Emoji',\n    'Segoe UI Emoji';\n}\n\n/*\nGrouping content\n================\n*/\n\n/**\n1. Add the correct height in Firefox.\n2. Correct the inheritance of border color in Firefox. (https://bugzilla.mozilla.org/show_bug.cgi?id=190655)\n*/\n\nhr {\n  height: 0; /* 1 */\n  color: inherit; /* 2 */\n}\n\n/*\nText-level semantics\n====================\n*/\n\n/**\nAdd the correct text decoration in Chrome, Edge, and Safari.\n*/\n\nabbr[title] {\n  text-decoration: underline dotted;\n}\n\n/**\nAdd the correct font weight in Edge and Safari.\n*/\n\nb,\nstrong {\n  font-weight: bolder;\n}\n\n/**\n1. Improve consistency of default fonts in all browsers. (https://github.com/sindresorhus/modern-normalize/issues/3)\n2. Correct the odd 'em' font sizing in all browsers.\n*/\n\ncode,\nkbd,\nsamp,\npre {\n  font-family:\n    ui-monospace,\n    SFMono-Regular,\n    Consolas,\n    'Liberation Mono',\n    Menlo,\n    monospace; /* 1 */\n  font-size: 1em; /* 2 */\n}\n\n/**\nAdd the correct font size in all browsers.\n*/\n\nsmall {\n  font-size: 80%;\n}\n\n/**\nPrevent 'sub' and 'sup' elements from affecting the line height in all browsers.\n*/\n\nsub,\nsup {\n  font-size: 75%;\n  line-height: 0;\n  position: relative;\n  vertical-align: baseline;\n}\n\nsub {\n  bottom: -0.25em;\n}\n\nsup {\n  top: -0.5em;\n}\n\n/*\nTabular data\n============\n*/\n\n/**\n1. Remove text indentation from table contents in Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=999088, https://bugs.webkit.org/show_bug.cgi?id=201297)\n2. Correct table border color inheritance in all Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=935729, https://bugs.webkit.org/show_bug.cgi?id=195016)\n*/\n\ntable {\n  text-indent: 0; /* 1 */\n  border-color: inherit; /* 2 */\n}\n\n/*\nForms\n=====\n*/\n\n/**\n1. Change the font styles in all browsers.\n2. Remove the margin in Firefox and Safari.\n*/\n\nbutton,\ninput,\noptgroup,\nselect,\ntextarea {\n  font-family: inherit; /* 1 */\n  font-size: 100%; /* 1 */\n  line-height: 1.15; /* 1 */\n  margin: 0; /* 2 */\n}\n\n/**\nRemove the inheritance of text transform in Edge and Firefox.\n1. Remove the inheritance of text transform in Firefox.\n*/\n\nbutton,\nselect { /* 1 */\n  text-transform: none;\n}\n\n/**\nCorrect the inability to style clickable types in iOS and Safari.\n*/\n\nbutton,\n[type='button'],\n[type='reset'],\n[type='submit'] {\n  -webkit-appearance: button;\n}\n\n/**\nRemove the inner border and padding in Firefox.\n*/\n\n::-moz-focus-inner {\n  border-style: none;\n  padding: 0;\n}\n\n/**\nRestore the focus styles unset by the previous rule.\n*/\n\n:-moz-focusring {\n  outline: 1px dotted ButtonText;\n}\n\n/**\nRemove the additional ':invalid' styles in Firefox.\nSee: https://github.com/mozilla/gecko-dev/blob/2f9eacd9d3d995c937b4251a5557d95d494c9be1/layout/style/res/forms.css#L728-L737\n*/\n\n:-moz-ui-invalid {\n  box-shadow: none;\n}\n\n/**\nRemove the padding so developers are not caught out when they zero out 'fieldset' elements in all browsers.\n*/\n\nlegend {\n  padding: 0;\n}\n\n/**\nAdd the correct vertical alignment in Chrome and Firefox.\n*/\n\nprogress {\n  vertical-align: baseline;\n}\n\n/**\nCorrect the cursor style of increment and decrement buttons in Safari.\n*/\n\n::-webkit-inner-spin-button,\n::-webkit-outer-spin-button {\n  height: auto;\n}\n\n/**\n1. Correct the odd appearance in Chrome and Safari.\n2. Correct the outline style in Safari.\n*/\n\n[type='search'] {\n  -webkit-appearance: textfield; /* 1 */\n  outline-offset: -2px; /* 2 */\n}\n\n/**\nRemove the inner padding in Chrome and Safari on macOS.\n*/\n\n::-webkit-search-decoration {\n  -webkit-appearance: none;\n}\n\n/**\n1. Correct the inability to style clickable types in iOS and Safari.\n2. Change font properties to 'inherit' in Safari.\n*/\n\n::-webkit-file-upload-button {\n  -webkit-appearance: button; /* 1 */\n  font: inherit; /* 2 */\n}\n\n/*\nInteractive\n===========\n*/\n\n/*\nAdd the correct display in Chrome and Safari.\n*/\n\nsummary {\n  display: list-item;\n}\n"
        },
        "$:/themes/tiddlywiki/vanilla/settings/fontfamily": {
            "title": "$:/themes/tiddlywiki/vanilla/settings/fontfamily",
            "text": "system-ui, -apple-system, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\""
        },
        "$:/themes/tiddlywiki/vanilla/settings/codefontfamily": {
            "title": "$:/themes/tiddlywiki/vanilla/settings/codefontfamily",
            "text": "\"SFMono-Regular\",Consolas,\"Liberation Mono\",Menlo,Courier,monospace"
        },
        "$:/themes/tiddlywiki/vanilla/settings/backgroundimageattachment": {
            "title": "$:/themes/tiddlywiki/vanilla/settings/backgroundimageattachment",
            "text": "fixed"
        },
        "$:/themes/tiddlywiki/vanilla/settings/backgroundimagesize": {
            "title": "$:/themes/tiddlywiki/vanilla/settings/backgroundimagesize",
            "text": "auto"
        },
        "$:/themes/tiddlywiki/vanilla/sticky": {
            "title": "$:/themes/tiddlywiki/vanilla/sticky",
            "text": "<$reveal state=\"$:/themes/tiddlywiki/vanilla/options/stickytitles\" type=\"match\" text=\"yes\">\n``\n.tc-tiddler-title {\n\tposition: -webkit-sticky;\n\tposition: -moz-sticky;\n\tposition: -o-sticky;\n\tposition: -ms-sticky;\n\tposition: sticky;\n\ttop: 0px;\n\tbackground: ``<<colour tiddler-background>>``;\n\tz-index: 500;\n}\n\n``\n<$list filter=\"[range[100]]\">\n`.tc-story-river .tc-tiddler-frame:nth-child(100n+`<$text text=<<currentTiddler>>/>`) {\nz-index: `<$text text={{{ [[200]subtract<currentTiddler>] }}}/>`;\n}\n`\n</$list>\n</$reveal>\n"
        }
    }
}
yes
classic
! 主要資料來源

* [[夢美@NGA 的攻略|https://nga.178.com/read.php?tid=28158704&rand=720]]
* [[日本 wiki 頁面|https://wikiwiki.jp/kancolle/%E5%A2%97%E6%8F%B4%E8%BC%B8%E9%80%81%E4%BD%9C%E6%88%A6%EF%BC%81%E5%9C%B0%E4%B8%AD%E6%B5%B7%E3%81%AE%E6%88%A6%E3%81%84]]
* [[Eins 的情報整理|https://www.ptt.cc/bbs/KanColle/M.1631041396.A.FB0.html]]

! 其他完整攻略

* 
參考:[21 夏 - 増援輸送作戦!地中海の戦い - 活動攻略 - ~HackMD](https://hackmd.io/@saka/艦_21夏_活動攻略)

### 活動限定情
報
- [[活動] 2021夏活進場前提醒事宜 - 看板 ~KanColle - 批踢踢實業坊](https://www.ptt.cc/bbs/KanColle/M.1630382244.A.043.html)
- [[活動] 2021夏活中場驗證更新項目 - 看板 ~KanColle - 批踢踢實業坊](https://www.ptt.cc/bbs/KanColle/M.1630987871.A.99B.html)

#### 分析 <!-- 擊傷用船推薦 etc -->

- [Re: [閒聊] 對陸傷害計算機 - 看板 ~KanColle - 批踢踢實業坊](https://www.ptt.cc/bbs/KanColle/M.1629872730.A.144.html)
- [[活動] 2021夏活進場前提醒事宜 - 看板 ~KanColle - 批踢踢實業坊](https://www.ptt.cc/bbs/KanColle/M.1630382244.A.043.html)
- [[活動] 2021夏活中場驗證更新項目 - 看板 ~KanColle - 批踢踢實業坊](https://www.ptt.cc/bbs/KanColle/M.1630987871.A.99B.html)

#### 戰報

- [個人攻略記錄](/@saka/艦_21夏_個人記錄)
- [活動出擊編成](https://docs.google.com/spreadsheets/d/1VjHinsjJvqyL5culPq-hXZ8KqZciJesUcbsJ-y9o4cA/edit?usp=sharing)

#### 特殊編成 <!-- 撈船、刷閃 etc -->

## 總覧

<<list-links filter:"[tag[21夏]]">>
## E-1 MA3作戦

![E1-all](https://i.imgur.com/8fUM4yG.jpg)

:::spoiler 攻略流程
1. 開點 - G(P1)
   | 路線 |   甲   |   乙   | 丙  | 丁  |
   |:----:|:------:|:------:|:---:|:---:|
   |  F   |  S×2   |  S×1   | A×1 | A×1 |
   |  C2  | 到達×1 | 到達×1 |     |     |
2. P1 - 戰力
3. 解任務 - 【地中海作戦】特務艦隊、遊撃部隊編成!
   | 路線  | 甲  | 乙  | 丙  | 丁  |
   |:-----:|:---:|:---:|:---:|:---:|
   |   F   | A×1 |     |     |     |
   |   L   | A×1 |     |     |     |
   | O(P2) | A×1 |     |     |     |
0. P2 - 輸送
0. 開點 - ==V==(P3)
   | 路線 | 甲  | 乙  | 丙  | 丁  |
   |:----:|:---:|:---:|:---:|:---:|
   |  P   | S×2 | S×1 | A×1 |  -  |
0. P3
1. 解任務 - 【地中海作戦】地中海配備の敵戦力を叩け!
   | 路線 | 甲  | 乙  | 丙  | 丁  |
   |:----:|:---:|:---:|:---:|:---:|
   |  P   | A×1 |     |     |     |
   |  H   | A×1 |     |     |     |
   |  S   | A×1 |     |     |     |
:::

:::warning
2021-09-11: 建議將 E1 使用的戰艦改成**義大利**或**羅馬**,空出的黎塞留留到 E-3 P2。
:::

### 1. E-1 開點 F 點 S 勝 2 次
最後更新時間: 2021-00-00 00:00

[![E1-F](https://i.imgur.com/C0V7lbO.png)](https://aircalc.page.link/Uq1Q)

:::danger
沒有「Do 217 E-5+Hs293初期型」請換成銀河、野中等一般陸攻,**不要換成「Do 17 Z-2」**。後者完全沒有用。
:::

#### 制空

| 基地航空隊 | 行動 | 地點 |
|:----------:|:----:|:----:|
|     1      | 集中 |  F  |
#### 支援

| 目的 | 類型 | 需求程度 |
|:----:|:----:|:--------:|
| 前衛 | 砲擊 |  不需要  |
| 決戰 | 砲擊 |  不需要  |

#### 實戰經驗

- 記得要順便接任務「【地中海作戦】特務艦隊、遊撃部隊編成!」,不然到時要打很麻煩。

#### 路線

![E1-1](https://i.imgur.com/whI7du9.jpg)

:::spoiler 路線 / 參考陣形:1 A B C E F
| 路線 |   陣形   |
|:----:|:--------:|
|  A   |          |
|  B   |          |
|  C   |  ↑警戒↑  |
|  E   |  ↑警戒↑  |
|  F   | |單縱| |
:::


### 2. E-1 開點 C2 點到達 1 次

最後更新時間: 2021-00-00 00:00

[![E1-C](https://i.imgur.com/xSB2acl.png)](https://aircalc.page.link/HLda)

:::success
完成後開啟 ==G== 點(P1)。
:::

#### 制空

| 基地航空隊 | 行動 | 地點 |
|:----------:|:----:|:----:|
|     1      | 集中 |  C  |

#### 支援

| 目的 | 類型 | 需求程度 |
|:----:|:----:|:--------:|
| 前衛 | 砲擊 |  不需要  |
| 決戰 | 砲擊 |  不需要  |

#### 實戰經驗

- 一戰到 C2,旗艦帶的損管不會消耗掉。

#### 路線

![E1map-1](https://i.imgur.com/whI7du9.jpg)

:::spoiler 路線 / 參考陣形:1 A B C C2
| 路線 |   陣形   |
|:----:|:--------:|
|  A   |          |
|  B   |          |
|  C   |  ↑警戒↑  |
|  C2  |          |
:::

### 3. E-1 P1

最後更新時間: 2021-00-00 00:00

[![E1-P1](https://i.imgur.com/iQ6Ez0I.png)](https://aircalc.page.link/dVRm)

#### 制空

| 基地航空隊 | 行動 | 地點 |
|:----------:|:----:|:----:|
|     1      | 集中 |  G   |

#### 支援

| 目的 | 類型 | 需求程度 |
|:----:|:----:|:--------:|
| 前衛 | 砲擊 |  不需要  |
| 決戰 | 砲擊 |  不需要  |

#### 實戰經驗

- 可以考慮 DD 輸流旗艦。

#### 路線

![E1map-2](https://i.imgur.com/tUAkaQ8.jpg)

:::spoiler 路線 / 參考陣形:A B C E G
| 路線 |   陣形   |
|:----:|:--------:|
|  A   |          |
|  B   |          |
|  C   |  ↑警戒↑  |
|  E   |  ↑警戒↑  |
|  G   | |單縱| |
:::


### 4. E-1 解任務 L 點 A 勝 1 次

最後更新時間: 2021-00-00 00:00

[![E1-L](https://i.imgur.com/qLT8Cxp.png)](https://aircalc.page.link/3Zzz)



#### 制空

| 基地航空隊 | 行動 | 地點 |
|:----------:|:----:|:----:|
|     1      | 集中 |  L   |

#### 支援

| 目的 | 類型 | 需求程度 |
|:----:|:----:|:--------:|
| 前衛 | 砲擊 |  不需要  |
| 決戰 | 砲擊 |  不需要  |

#### 實戰經驗

:::danger
不要選用對陸艦爆
:::

{%hackmd /@saka/艦_21夏_活動攻略_飛機倍卡 %}

#### 路線

![E1map-3](https://i.imgur.com/jY0fDRf.jpg)

:::spoiler 路線 / 參考陣形:2 I J L
| 路線 |   陣形   |
|:----:|:--------:|
|  I   |  ↑警戒↑  |
|  J   |  ↑警戒↑  |
|  L   | |單縱| |
|  --  | 手動撤退 |
:::

### 5. E-1 解任務 ==O 點(P2)== A 勝 1 次

最後更新時間: 2021-00-00 00:00

[![E1-O](https://i.imgur.com/nRAQDFU.png)](https://aircalc.page.link/Y8vX)


:::success
完成後開啟遊擊艦隊。
:::

#### 制空

| 基地航空隊 | 行動 | 地點 |
|:----------:|:----:|:----:|
|     1      | 集中 |  O   | 

#### 支援

| 目的 | 類型 | 需求程度 |
|:----:|:----:|:--------:|
| 前衛 | 砲擊 |  不需要  |
| 決戰 | 砲擊 |  不需要  |

#### 實戰經驗

| 項目 | 數值 | 備註   |
| ---- | ---- | ------ |
| 索敵 | 50   | 係數 3 |

- 只求 A 勝,可以用少一隻 CA 的輸送編成
  - 但是要注意索敵和制空
- 王點也可以考慮警戒。

#### 路線

![E1map-3](https://i.imgur.com/jY0fDRf.jpg)

:::spoiler 路線 / 參考陣形:2 I N Q O
| 路線  |   陣形   |
|:-----:|:--------:|
|   I   |  ↑警戒↑  |
|   N   |          |
|   Q   |          |
| ==O== | |單縱| |
:::


### 6. E-1 P2

最後更新時間: 2021-00-00 00:00

[![E1-P2](https://i.imgur.com/bEZR45U.png)](https://aircalc.page.link/hnc9)

#### 制空

| 基地航空隊 | 行動 | 地點 |
|:----------:|:----:|:----:|
|     1      | 集中 |  O  |

#### 支援

| 目的 | 類型 | 需求程度 |
|:----:|:----:|:--------:|
| 前衛 | 砲擊 |  不需要  |
| 決戰 | 砲擊 |  不需要  |

#### 實戰經驗

| 項目 | 數值 | 備註   |
| ---- | ---- | ------ |
| 索敵 | 50   | 係數 3 |

#### 路線

![E1map-3](https://i.imgur.com/jY0fDRf.jpg)

:::spoiler 路線 / 參考陣形:2 I N Q O
| 路線  |   陣形   |
|:-----:|:--------:|
|   I   |  ↑警戒↑  |
|   N   |          |
|   Q   |          |
| ==O== | |單縱| |
:::

### 7. E-1 開點 P 點 S 勝 2 次

最後更新時間: 2021-00-00 00:00

[![E1-P](https://i.imgur.com/jYHz2NP.png)](https://aircalc.page.link/ogqR)

:::success
完成後開啟 ==V 點(P3)==。
:::

#### 制空

| 基地航空隊 | 行動 | 地點 |
|:----------:|:----:|:----:|
|     1      | 集中 |  P   | 

#### 支援

| 目的 | 類型 | 需求程度 |
|:----:|:----:|:--------:|
| 前衛 | 砲擊 |  不需要  |
| 決戰 | 砲擊 |  不需要  |

#### 實戰經驗

:::danger
不要選用對陸艦爆
:::

{%hackmd /@saka/艦_21夏_活動攻略_飛機倍卡 %}

#### 路線

![E1map-3](https://i.imgur.com/jY0fDRf.jpg)

:::spoiler 路線 / 參考陣形:2 I J P
| 路線 |   陣形   |
|:----:|:--------:|
|  I   |  ↑警戒↑  |
|  J   |  ↑警戒↑  |
|  P   | |單縱| |
:::

### 8. E-1 P3

最後更新時間: 2021-00-00 00:00

[![E1-V](https://i.imgur.com/2BMrRE6.png)](https://aircalc.page.link/WNQt)
消血編成

[![E1-V-2](https://i.imgur.com/7SNsNdn.png)](https://aircalc.page.link/KHHN)
斬殺編成

#### 制空

| 基地航空隊 | 行動 | 地點 |
|:----------:|:----:|:----:|
|     1      | 集中 |  V   |

#### 支援

| 目的 | 類型 | 需求程度 |
|:----:|:----:|:--------:|
| 前衛 | 砲擊 |  不需要  |
| 決戰 | 砲擊 |  不需要  |

#### 實戰經驗

| 項目     | 數值 | 備註            |
| -------- | ---- | --------------- |
| 索敵     | 50   | 係數 3          |
| 水上電探 | 0    | 索敵 ≥ 5 的電探 |

- 消血期 18 空確、斬殺 65 空均,需要因此調整編成。

#### 路線

![E1map-4](https://i.imgur.com/Go4iycY.jpg)

:::spoiler 路線 / 參考陣形:2 I N R T V
| 路線  |   陣形   |
|:-----:|:--------:|
|   I   |  ↑警戒↑  |
|   N   |          |
|   R   |          |
|   T   |  ↑警戒↑  |
| ==V== | |單縱| |
:::

### 9. E-1 解任務 H 點 A 勝 1 次、S 點 A 勝 1 次

最後更新時間: 2021-00-00 00:00

[![E1-H+S](https://i.imgur.com/6Pa9zxI.png)](https://aircalc.page.link/hgjj)

:::success
結束後「【地中海作戦】地中海配備の敵戦力を叩け!」完成。
:::

#### 制空

| 基地航空隊 | 行動 | 地點 |
|:----------:|:----:|:----:|
|     1      | 集中 |  I   |

#### 支援

| 目的 | 類型 | 需求程度 |
|:----:|:----:|:--------:|
| 前衛 | 砲擊 |  不需要  |
| 決戰 | 砲擊 |  不需要  |

#### 實戰經驗

- H、 I 點多 PT,需要對 PT 裝備。

#### 路線

![E1map-4](https://i.imgur.com/Go4iycY.jpg)

:::spoiler 路線 / 參考陣形:2 H I N R S
| 路線 |   陣形   |
|:----:|:--------:|
|  H   | |單縱| |
|  I   |  ↑警戒↑  |
|  N   |          |
|  R   |          |
|  S   | |單縱| |
|  --  | 手動撤退 |
:::
## E-2 カラブリア岬沖海戦

![E2all](https://i.imgur.com/iqARiKE.jpg)

:::spoiler 攻略流程

1. P1 - 遊擊艦隊 輸送
2. 開點 - ==W==(P2)
   | 路線 |   甲   |   乙   | 丙  | 丁  |
   |:----:|:------:|:------:|:---:|:---:|
   |  S   |  A×2   |  A×2   | A×2 |     |
   |  Q   |  S×1   |  S×1   |     |     |
   |  M   | 空優×1 | 空優×1 |     |     |
   |  R   | 空優×1 | 空優×1 |     |     |
0. P2 - 空母機動
0. 開點 - ==Z==(P3)
   | 路線 |   甲   |   乙   | 丙  | 丁  |
   |:----:|:------:|:------:|:---:|:---:|
   | 基地 | 空優×1 | 空優×1 |  -  |  -  |
   |  G   |  S×1   |  S×1   |  -  |  -  |
   |  H   | 到達×1 | 到達×1 |  -  |  -  |
0. P3 消血 - 空母機動 或 水上打擊
0. P3 增傷
   | 路線 |   甲   | 乙  | 丙  | 丁  |
   |:----:|:------:|:---:|:---:|:---:|
   |  G   |  S×1   | S×1 | S×1 |     |
   |  S   |  S×1   | S×1 | A×1 |     |
   |  R   | 空優×1 |  -  |  -  |  -  |
   |  Y   |  S×1   | A×1 |  -  |  -  |
   |  X   |  A×1   | A×1 | A×1 |     |
0. P3 斬殺 - 空母機動 或 水上打擊

:::

### 1. E-2 P1

最後更新時間: 2021-00-00 00:00

[![E2-P1](https://i.imgur.com/jAwYqft.png)](https://aircalc.page.link/5oDB)

:::danger
沒有「Do 217 E-5+Hs293初期型」請換成銀河、野中等一般陸攻,**不要換成「Do 17 Z-2」**。後者完全沒有用。
:::

#### 制空

| 基地航空隊 | 行動 | 地點 |
|:----------:|:----:|:----:|
|     1      | 集中 |  I   |
|     2      | 集中 |  I   |

#### 支援

| 目的 | 類型 | 需求程度 |
|:----:|:----:|:--------:|
| 前衛 | 砲擊 |  不需要  |
| 決戰 | 砲擊 |  必須  |

#### 實戰經驗

| 項目 | 數值 | 備註   |
| ---- | ---- | ------ |
| 索敵 | 72   | 係數 4 |

- 以 A 勝為目標
- 如果 1CL 6DD 可以在補強增設中帶司令部。
- 索敵建議配到退 2 船仍不會歪的程度。

#### 路線

![E2map-1](https://i.imgur.com/hOljGLI.jpg)


:::spoiler 路線 / 參考陣形:1 B C D F I
| 路線 |   陣形   |
|:----:|:--------:|
|  B   |  ↑警戒↑  |
|  C   |  ↑警戒↑  |
|  D   |  ⊚輪形⊚  |
|  F   |          |
|  I   | |單縱| |
:::

### 2. E-2 開點 S 點 A 勝 2 次

最後更新時間: 2021-00-00 00:00


[![E2-S](https://i.imgur.com/SAbYxPn.jpg)](https://aircalc.page.link/baBb)


#### 制空

| 基地航空隊 | 行動 | 地點 |
|:----------:|:----:|:----:|
|     1      | 集中 |  S   |
|     2      | 集中 |  S   |

#### 支援

| 目的 | 類型 | 需求程度 |
|:----:|:----:|:--------:|
| 前衛 | 砲擊 |  不需要  |
| 決戰 | 砲擊 |  不需要  |

#### 實戰經驗

- 能配得出圖上的對陸裝時亦可以考慮陸航炸 O 點。

#### 路線

![E2map-2](https://i.imgur.com/6OtqrNi.png)

:::spoiler 路線 / 參考陣形:2 J L O P R T S
| 路線 |   陣形   |
|:----:|:--------:|
|  J   |  ≪選擇≫  |
|  L   |  ―反潛―  |
|  O   | |戰鬥| |
|  P   |  ≪選擇≫  |
|  R   |  ⊚輪形⊚  |
|  T   | |戰鬥| |
|  S   | ﹦警戒﹦ |
:::

### 3. E-2 開點 Q 點 S 勝 1 次、R 點空優 1 次

最後更新時間: 2021-00-00 00:00

[![E2-QR](https://i.imgur.com/LwwPOAA.jpg)](https://aircalc.page.link/zAqD)

#### 制空

| 基地航空隊 | 行動 | 地點 |
|:----------:|:----:|:----:|
|     1      | 集中 |  O   |
|     2      | 集中 |  O   |

#### 支援

| 目的 | 類型 | 需求程度 |
|:----:|:----:|:--------:|
| 前衛 | 砲擊 |  不需要  |
| 決戰 | 砲擊 |  不需要  |

#### 實戰經驗

#### 路線

![E2map-2](https://i.imgur.com/6OtqrNi.png)

:::spoiler 路線 / 參考陣形:2 J L O P R Q
| 路線 |   陣形   |
|:----:|:--------:|
|  J   |  ≪選擇≫  |
|  L   |  ―反潛―  |
|  O   | |戰鬥| |
|  P   |  ≪選擇≫  |
|  R   |  ⊚輪形⊚  |
|  Q   | |戰鬥| |
:::

### 4. E-2 開點 M 點空優 1 次

最後更新時間: 2021-00-00 00:00

[![E2-M](https://i.imgur.com/zYswSig.png)](https://aircalc.page.link/WatN)

:::success
完成後開啟 ==W 點==(P2)。
:::

#### 制空

| 基地航空隊 | 行動 | 地點 |
|:----------:|:----:|:----:|
|     1      | 待機 |      |
|     2      | 待機 |      |

#### 支援

| 目的 | 類型 | 需求程度 |
|:----:|:----:|:--------:|
| 前衛 | 砲擊 |  不需要  |
| 決戰 | 砲擊 |  不需要  |

#### 實戰經驗

#### 路線

![E2map-2](https://i.imgur.com/6OtqrNi.png)

:::spoiler 路線 / 參考陣形:2 J K M
| 路線 |  陣形  |
|:----:|:------:|
|  J   | ≪選擇≫ |
|  K   | ―反潛― |
|  M   | ⊚輪形⊚ |
:::

### 5. E-2 P2

最後更新時間: 2021-00-00 00:00

[![E2-P2](https://i.imgur.com/t0VzT6m.jpg)](https://aircalc.page.link/GAVJ )

#### 制空

| 基地航空隊 | 行動 | 地點 |
|:----------:|:----:|:----:|
|     1      | 集中 |  W   |
|     2      | 集中 |  W   |

#### 支援

| 目的 | 類型 | 需求程度 |
|:----:|:----:|:--------:|
| 前衛 | 砲擊 |  不需要  |
| 決戰 | 砲擊 | 斬殺需要 |

#### 實戰經驗

- 斬殺多了 2 隻重巡ネ級改II 和消血期 S 勝難度天差地別,務必將飛機刷滿熟練再上。
  - 連彗星江草都會空的點,極推薦打不過就跳保熟練度。

#### 路線

![E2map-3](https://i.imgur.com/2aVChdj.jpg)

:::spoiler 路線 / 參考陣形:2 J K M V W
| 路線  |   陣形   |
|:-----:|:--------:|
|   J   |  ≪選擇≫  |
|   K   |  ―反潛―  |
|   M   |  ⊚輪形⊚  |
|   V   | |戰鬥| |
| ==W== | |戰鬥| |
:::

### 6. E-2 開點 G 點 S 勝 1 次、H 點到達 1 次、基地防空空優 1 次

最後更新時間: 2021-00-00 00:00

[![E2-GH](https://i.imgur.com/9BoVkwb.png)](https://aircalc.page.link/VQz6)

:::success
完成後開啟 ==Z== 點(P3)。
:::


#### 制空

| 基地航空隊 | 行動 | 地點 |
|:----------:|:----:|:----:|
|     1      | 防空 |      |
|     2      | 待機 |      |

#### 支援

| 目的 | 類型 | 需求程度 |
|:----:|:----:|:--------:|
| 前衛 | 砲擊 |  可考慮 |
| 決戰 | 砲擊 |  不需要  |

#### 實戰經驗

#### 路線

![E2map-3](https://i.imgur.com/2aVChdj.jpg)

:::spoiler 路線 / 參考陣形: 1 A C D1 E G/H
| 路線 |   陣形   |
|:----:|:--------:|
|  A   |  ↑警戒↑  |
|  C   |  ―單横―  |
|  D1  |  ↑警戒↑  |
|  E   |  ≪選擇≫  |
|  G   | |單縱| |
|  --  | 手動徹退 |
:::

### 7. E-2 P3

最後更新時間: 2021-00-00 00:00

[![E2-P3](https://i.imgur.com/BRQYxfD.jpg)](https://aircalc.page.link/xpbB)
高速+ 機動消血

[![](https://i.imgur.com/mexzU5D.jpg)](https://aircalc.page.link/6oZB)
高速+ 機動斬殺

:::spoiler 空母完全不想打洞可以用的水打編成()
:::

#### 制空

| 基地航空隊 | 行動 | 地點 |
|:----------:|:----:|:----:|
|     1      | 集中 |  Z   |
|     2      | 集中 |  Z   |

#### 支援

| 目的 | 類型 | 白字火力 |  需求程度   |
|:----:|:----:|:--------:|:-----------:|
| 前衛 | 砲擊 |   171    | 斬殺期建議  |
| 決戰 | 砲擊 |   147    | 斬殺期建議) |

:::spoiler 支援編成範例
![](https://i.imgur.com/2bfbfnP.png)
:::

#### 實戰經驗

:::info
> [P3斬殺率簡易參考](https://nga.178.com/read.php?tid=28158704&rand=671)
> 雖然 ~~不一定準~~ 一定不準,但是可以減少很多不必要的回復
> [name=_ゆめみ@NGA]

| 配置           | 輕水打 | 高速+機動 |
| -------------- | ------ | --------- |
| 基礎           | 20%    | 65%       |
| 沒閃           | ×0.8   | ×0.8      |
| 飛機熟練全清   | ×0.6   | ×0.6      |
| 不上支援       | ×0.65  | ×0.75     |
| 沒有高倍卡艦攻 | ×0.75  | ×0.65     |
| 替換餵運矢矧   | ×1.15  | ×1.05     |
| 沒有夜戰特攻   |        | ×0.9      |
| 12 洞→ 6 洞    |        | ×0.8      |
| 12 洞→ 0 洞    |        | ×0.35     |
:::

| 項目 | 數值  | 備註   |
| ---- | ----- | ------ |
| 索敵 | 70    | 係數 2 |
| BB   | ≤ 4   |        |
| CL   | ≥ 2   |        |
| 速度 | 高速+ |        |

- 打到斬殺線(930)後可開始解增傷機關
- 該次回港後有提示音表示 11. 中 [X 點 A 勝 1 次](#11-E-2-增傷-X-點-A-勝-1-次、Y-點-S-勝-1-次)已完成,不必再額外解。
- 聯合艦隊夜戰使用沒有額外迴避的舊版加成,不如使用單縱或警戒。
  - 消血期使用警戒可以考慮水打二隊的位置調整
- 推薦帶彩雲湊索敵、防 T 不利、增加開幕觸接。
- 伊勢可換航巡,但只能拿空優。

##### 打洞推薦

- 建議打洞
  - CVs:不打洞極有可能被完全打空。
  - 比叡:多帶大燈除了影響 CI 率外,也影響夜戰特攻發動率。
  - Jervis 主要輸出,不打洞無法 CI。
- 可選擇
  - 金剛 & 哥特蘭 & 歐根:建議至少打一個洞放夜偵,其他裝備可選。
  - 響:不打洞換 Janus 單格反潛
  - 由良:空母需要因應多帶艦戰。

#### 路線

![E2map-4](https://i.imgur.com/B6M9Zt1.jpg)

:::spoiler 路線 / 參考陣形:2 J L N P X Z
|  路線   |   陣形   |
|:-------:|:--------:|
|    J    |  ≪選擇≫  |
|    L    |  ―反潛―  |
|    N    | |戰鬥| |
|    P    |  ≪選擇≫  |
| X(機動) | |單縱| |
| X(水打) |  ↑警戒↑  |
|  ==Z==  | |戰鬥| |
:::

### 8. E-2 增傷 G 點 S 勝 1 次

最後更新時間: 2021-00-00 00:00

同 [6. E-2 開點 G 點 S 勝 1 次、H 點到達 1 次、基地防空空優 1 次](#6-E-2-開點-G-點-S-勝-1-次、H-點到達-1-次、基地防空空優-1-次)

### 9. E-2 增傷 S 點 S 勝 1 次

最後更新時間: 2021-00-00 00:00

同 [2. E-2 開點 S 點 A 勝 2 次](#2-E-2-開點-S-點-A-勝-2-次)

- 實戰感想要拿 S 勝不容易,建議陸航炸 S 點。
- 此時 S 點固定制空 0,可考慮全攻擊機陣容。


### 10. E-2 增傷 R 點空優 1 次

最後更新時間: 2021-00-00 00:00

陣容同 [7. E-2 P3](#7-E-2-P3)。機動不用調整,水打需要調整制空至 R 點 348 空優。

![E2map-4](https://i.imgur.com/B6M9Zt1.jpg)

:::spoiler 路線 / 參考陣形:2 J L N P R
| 路線 |   陣形   |
|:----:|:--------:|
|  J   |  ≪選擇≫  |
|  L   |  ―反潛―  |
|  N   | |戰鬥| |
|  P   |  ≪選擇≫  |
|  R   |  ⊚輪形⊚  |
|  --  | 手動退避 |
:::

### 11. E-2 增傷 X 點 A 勝 1 次、Y 點 S 勝 1 次

最後更新時間: 2021-00-00 00:00

[![](https://i.imgur.com/ztGd9rF.jpg)](https://aircalc.page.link/66qP)
Y 點

[![](https://i.imgur.com/ZGcU3gX.jpg)](https://aircalc.page.link/tHtg)
X 點專門,稍微隨便改的


:::success
:::spoiler **增傷前後立繪對比**
![](https://i.imgur.com/MtC5utg.png)
增傷前

![](https://i.imgur.com/ntla1Zy.png)
增傷後
:::

#### 制空

| 基地航空隊 | 行動 | 地點 |
|:----------:|:----:|:----:|
|     1      | 退避 |      |
|     2      | 退避 |      |

#### 支援

| 目的 | 類型 | 需求程度 |
|:----:|:----:|:--------:|
| 前衛 | 砲擊 |  不需要  |
| 決戰 | 砲擊 |  不需要  |

#### 實戰經驗

- 求穩定、不怕耗鋁可將陸航換為東海炸 Y。
- 聯合艦隊夜戰對潛依然有效。

#### 路線

![E2map-4](https://i.imgur.com/B6M9Zt1.jpg)

:::spoiler 路線 / 參考陣形:2 J L N P X Y
| 路線 |   陣形   |
|:----:|:--------:|
|  J   |  ≪選擇≫  |
|  L   |  ―反潛―  |
|  N   | |戰鬥| |
|  P   |  ≪選擇≫  |
|  X   |  ↑警戒↑  |
|  Y   |  ―反潛―  |
:::
## E-3 ペデスタル作戦


![導航圖]()

:::spoiler 攻略流程
1. P1 - 遊擊
0. P2 - 水打
0. 開點 - ==Z2==(P3)
   | 路線 | 甲  | 乙  | 丙  | 丁  |
   |:----:|:---:|:---:|:---:|:---:|
   |  B2  | 空優    |     |     |     |
0. P3 - 機動 輸送
0. 開點 - 
   | 路線 | 甲  | 乙  | 丙  | 丁  |
   |:----:|:---:|:---:|:---:|:---:|
0. P3 消血 - 
0. P3 增傷
   | 路線 | 甲  | 乙  | 丙  | 丁  |
   |:----:|:---:|:---:|:---:|:---:|
0. P4 - 水打
:::

- E3 主要就是道中難 ~~,難如上青天~~。
- 想要北非戰車的,可以先在乙難度解完任務後再切難度。 

:::info

### 飛機倍卡
![](https://i.imgur.com/KAXZzrX.png)
[艦これ wiki 上的表格](https://wikiwiki.jp/kancolle/%E5%A2%97%E6%8F%B4%E8%BC%B8%E9%80%81%E4%BD%9C%E6%88%A6%EF%BC%81%E5%9C%B0%E4%B8%AD%E6%B5%B7%E3%81%AE%E6%88%A6%E3%81%84/E3)

每架飛機都有 2 種不同的加成,皆是來自 `ABC` 族,和 `1234` 群中各取一個。

一架空母最後從裝備中拿到的總加成,是看從身上的裝備中拿到了多少種加成,每種各計一次。另外 `A` 和 `1` 的倍率都是 1,形同沒有加成。

##### 舉例

大鳳身上放了 [Fw190T改](https://wikiwiki.jp/kancolle/Fw190T%E6%94%B9 "Fw190T改")(B2)、[Seafire Mk.III改](https://wikiwiki.jp/kancolle/Seafire%20Mk.III%E6%94%B9 "Seafire Mk.III改")(C4)和 [Re.2005 改](https://wikiwiki.jp/kancolle/Re.2005%20%E6%94%B9 "Re.2005 改")(B4)時,她拿到的加成是 `BC24` 4 種,道中的加成倍率為 $1.08 \times 1.15 \times 1.05 \times 1.08 = 1.41$ 。
  
結論:**儘可能湊齊 `BC234` 5 種加成**,多的格子補制空或射擊迴避飛機。
:::

### 1. E-3 P1

最後更新時間: 2021-00-00 00:00

[![E3-P1](https://i.imgur.com/2Fm52zV.jpg)](https://aircalc.page.link/LJzV)

- E3 中的所有島風,請自行代換成最強的雷咖手,例如綾波等。

#### 制空

| 基地航空隊 | 行動 | 地點 |
|:----------:|:----:|:----:|
|     1      | 集中 |  I   |
|     2      | 集中 |  I   |
|     3      | 集中 |  I   |

#### 支援

| 目的 | 類型 | 需求程度 |
|:----:|:----:|:--------:|
| 前衛 | 砲擊 |  不需要  |
| 決戰 | 砲擊 |  不需要  |

#### 實戰經驗

| 項目 | 數值 | 備註   |
| ---- | ---- | ------ |
| 索敵 | 40   | 係數 2 |


- 島風請換成自家最強的雷咖手,例如綾波等。

##### [\_ゆめみ@NGA的分析](https://nga.178.com/read.php?tid=28158704&rand=189)

- P1 主要考對艦戰倍卡的理解,帶一架 C4 擋的艦戰  / 艦偵 + 一架 B2 / B3 擋的艦戰,最後視情況補一架 A3 / A2 擋的飛機,集齊 BC234 五擋飛機即可達到最高倍率。
- 斬殺階段會比較缺輸出,建議空母外的其他成員配夜戰 CI 
- 也可以使用正航夜母,放到旗艦的位置。不過能否打出高額輸出要看夜攻有沒有被大量擊墜,不太穩定

##### [\_ゆめみ@NGA的用船調整](https://nga.178.com/read.php?tid=28158704&rand=189)

- 倍卡飛機根據自身情況適當調整,比如 C4 擋飛機不足就只能退而求其次使用 B4 或者 A4 的飛機了
- 在攜帶 B、C 兩檔飛機的情況下,嫌 A2 / A3 檔艦攻沒有抗擊墜能力死得太快,也可以換成村田等主力飛機。
- 不喜歡 3 炮 CI 的話 BB 也可以正常配觀測


#### 路線

![E3map-1](https://i.imgur.com/l0qrvUU.jpg)

:::spoiler 路線 / 參考陣形: 1 A B B1 C1 E I
| 路線  |   陣形   |
|:-----:|:--------:|
|   A   |          |
|   B   |  ↑警戒↑  |
|  B1   |  ⊚輪形⊚  |
|  C1   |  ↑警戒↑  |
|   E   |  ↑警戒↑  |
| ==I== | |單縱| |
:::

### 2. E-3 P2

最後更新時間: 2021-00-00 00:00

[![](https://i.imgur.com/6b3n57h.jpg)](https://aircalc.page.link/cfYr)


#### 制空

| 基地航空隊 | 行動 | 地點 |
|:----------:|:----:|:----:|
|     1      | 集中 |  O   |
|     2      | 集中 |  O   |
|     3      | 集中 |  J2   |

#### 支援

| 目的 | 類型 | 需求程度 |
|:----:|:----:|:--------:|
| 前衛 | 砲擊 |  斬殺  |
| 決戰 | 砲擊 |  斬殺  |

#### 實戰經驗

- 門神最主要的勸退點是 2 隻重巡的開幕雷,而且幾乎無法被封印,消血期道中支援的效果不大(相比於資源和閃的消耗)。
- 刷熟練:E3 單 SS 刷 B 點(**半徑 6**),一次可刷 3 隊。

##### [\_ゆめみ@NGA的分析](https://nga.178.com/read.php?tid=28158704&rand=189)

- E3  最大的難點,門神勸退率極高並且沒有什麼好的針對方法,boss 點也很容易刁民。所以除納爾遜外的主力盡量放到這邊比較好,尤其是德國人
- 如果不使用損管女神,唯一的應對方案是旗艦帶司令部,即使斬殺階段也建議帶著,2 隊退避兩個人也是有機會斬的,不過 1 隊大破就直接回家吧
- 門神 12v6 的水打部隊全稱是水上打不中部隊,未婚長門可以考慮帶一門 41 系提高命中
- 空母使用一架 C4 擋艦戰 + 一架 B2 / B3 擋艦戰的配裝
- 2 隊使用龍鳳可以幫助補充制空,讓 1 隊 CV 配一些高輸出的裝備,如果夜攻沒被敵方的固定擊墜抽中,夜戰也能有一發不低的輸出
  - 注意 3N 有倍卡而 5N 沒有
- 建議斬殺階段全員閃

##### [\_ゆめみ@NGA的用船調整](https://nga.178.com/read.php?tid=28158704&rand=189)

- 龍鳳以外的 CVL 需要帶扳手打夜戰,少一架倍卡飛機輸出會損失很多,不太適合。不用龍鳳可以換成其他高夜戰輸出船,1 隊 CV 需適當提高制空
- 未婚哥特蘭如果想兩件套先反需要喂一點對潛,不想喂也可以三件套反潛,讓歐根背個夜偵

#### 路線

![E3map-2](https://i.imgur.com/WTQdKdU.jpg)

:::spoiler 路線 / 參考陣形:2 J2 L M O
| 路線  |   陣形   |
|:-----:|:--------:|
|  J2   |  ―反潛―  |
|   L   |  ⊚輪形⊚  |
|   M   | |戰鬥| |
| ==O== | ﹦警戒﹦ |
:::

### 3. E-3 開出發點 G 點 S 勝 1 次

最後更新時間: 2021-00-00 00:00

[![E3-G](https://i.imgur.com/kNWwF2a.jpg)](https://aircalc.page.link/oJU3)


#### 制空

| 基地航空隊 | 行動 | 地點 |
|:----------:|:----:|:----:|
|     1      | 集中 |  E   |
|     2      | 集中 |  E   |
|     3      | 防空 |      |

#### 支援

| 目的 | 類型 | 需求程度 |
|:----:|:----:|:--------:|
| 前衛 | 砲擊 |  不需要  |
| 決戰 | 砲擊 |  不需要  |

#### 實戰經驗

- 遊擊司令部很必要,道中蠻噁心的。 
  - 如果 B 點就退一隻會走 B B1 C1 E 路線,這點會退比較多,但是 G 點不強,可視退避船情況進擊。

##### [\_ゆめみ@NGA的分析](https://nga.178.com/read.php?tid=28158704&rand=189)

陸航根據自身火箭機的數量,需要1~2隊守家,其餘5航程炸E
本隊制空配到B2點142空均
不要帶索敵裝備就能溝到G

#### 路線

![E3map-3](https://i.imgur.com/gzqxkJl.jpg)

:::spoiler 路線 / 參考陣形: 1 A B B2 C2 E G
| 路線 |   陣形   |
|:----:|:--------:|
|  A   |          |
|  B   |  ↑警戒↑  |
|  B2  |  ⊚輪形⊚  |
|  C2  |          |
|  E   |  ↑警戒↑  |
|  G   | |單縱| |
|  --  | 手動撤退 |
:::

### 4. E-3 開出發點 F 點 A 勝 1 次
最後更新時間: 2021-00-00 00:00

[![E3-F](https://i.imgur.com/TS762K9.jpg)](https://aircalc.page.link/tuiV)

- 如果有 4 台二二甲,可以考慮改用二二甲而不是野中隊。

:::success
完成後開啟出發點 3。
:::


#### 制空

| 基地航空隊 | 行動 | 地點 |
|:----------:|:----:|:----:|
|     1      | 集中 |  F   |
|     2      | 集中 |  F   |
|     3      | 集中 |  F   |

#### 支援

| 目的 | 類型 | 需求程度 |
|:----:|:----:|:--------:|
| 前衛 | 砲擊 |  不需要  |
| 決戰 | 砲擊 |  不需要  |

#### 實戰經驗

##### [\_ゆめみ@NGA的分析](https://nga.178.com/read.php?tid=28158704&rand=189)

陸航炸 F,這個階段 F 點應該是 0 制空。
陸航開始塞高航程陸攻,接下來的戰斗低航程是飛不到的
如果上一步守家空優成功,這裡可以多一隊陸攻炸 F
本隊制空依舊配到 B2 點 142 空均
CV 帶[非對陸艦爆]清水上艦
2~3 個一拳對 DJ,其餘船雙炮+見張對 PT,如果打了孔可以多塞火箭彈對炮台


#### 路線

![E3map-3](https://i.imgur.com/gzqxkJl.jpg)

:::spoiler 路線 / 參考陣形: 1 A B B2 C2 F
| 路線 |   陣形   |
|:----:|:--------:|
|  A   |          |
|  B   |  ↑警戒↑  |
|  B2  |  ⊚輪形⊚  |
|  C2  |          |
|  F   | |單縱| |
|  --  | 手動撤退 |
:::

### 5. E-3 開點 B2 點空優 1 次

最後更新時間: 2021-00-00 00:00

[![](https://i.imgur.com/zo0p654.png)](https://aircalc.page.link/VdxE)


#### 制空

| 基地航空隊 | 行動 | 地點 |
|:----------:|:----:|:----:|
|     1      | 待機 |      |
|     2      | 待機 |      |
|     3      | 待機 |      |

#### 支援

| 目的 | 類型 | 需求程度 |
|:----:|:----:|:--------:|
| 前衛 | 砲擊 |  不需要  |
| 決戰 | 砲擊 |  不需要  |

#### 實戰經驗

##### [\_ゆめみ@NGA的分析](https://nga.178.com/read.php?tid=28158704&rand=725)

如果沒有水戰CL補充制空,可以用陸航洗空襲點

#### 路線

![E3map-3](https://i.imgur.com/H5FnSYI.jpg)

:::spoiler 路線 / 參考陣形: 1 A B B2
| 路線 |   陣形   |
|:----:|:--------:|
|  A   |          |
|  B   |  ↑警戒↑  |
|  B2  |  ⊚輪形⊚  |
|  --  | 手動撤退 |
:::

### 6. E-3 開點 T1 點 S 勝 1 次、T2 點 A 勝 1 次、T3 點 A 勝 1 次、T4 點 S 勝 1 次

最後更新時間: 2021-00-00 00:00

[![E3-T1T4](https://i.imgur.com/4A1G4wv.png)](https://aircalc.page.link/1a49)


#### 制空

| 基地航空隊 | 行動 |  地點   |
|:----------:|:----:|:-------:|
|     1      | 出擊 | T2 & T3 |
|     2      | 出擊 | T2 & T3 |
|     3      | 出擊 | T1 & T4 |

- T2/T3 只有一波很容易退,至少要有 2 波。

#### 支援

| 目的 | 類型 | 需求程度 |
|:----:|:----:|:--------:|
| 前衛 | 砲擊 |  不需要  |
| 決戰 | 砲擊 |  不需要  |

#### 實戰經驗

| 項目 | 數值 | 備註   |
| ---- | ---- | ------ |
| 索敵 | 0    | 係數 1 |

- [【地中海作戦】第10潛水戦隊作戦!](https://wikiwiki.jp/kancolle/%E4%BB%BB%E5%8B%99#id-21SuLB3)要求 T1、T4 點各 2 次 S 勝,不過開點只要一次。

##### [\_ゆめみ@NGA的分析](https://nga.178.com/read.php?tid=28158704&rand=189)

環游世界隨機溝,7船沒 AS 會貼錯條
陸航最遠是T3點 10 航程
固定去 T1 可以用 1AS + 3SS 系 + 1CL + 2 任意的帶路;
固定去 T4 可以用 1AS + 3SS 系 + 0CL + 1CV 系 + 2 任意的帶路
陸航可以考慮分散炸目標點(比如一開始可以一隊 T2,一隊 T3,一隊 T1 / T4 分散,如果先去了 T4,下一次出擊可以一隊 T2,一隊 T1,一隊退避)


#### 路線

![E3map-3](https://i.imgur.com/H5FnSYI.jpg)

:::spoiler 路線 / 參考陣形:3 Q S T2/T3 T1/T4
| 路線  |   陣形   |
|:-----:|:--------:|
|   S   |   任意   | 
| T1/T2 | |單縱| |
| T3/T4 | |單縱| |
:::

### 7. E-3 開點 P 點空優 1 次、U 點 A 勝 1 次、W 點 A 勝 1 次、X 點 S 勝 1 次

最後更新時間: 2021-00-00 00:00

[![E3-W](https://i.imgur.com/jBUK89B.jpg)](https://aircalc.page.link/zqbu)
W 點的樣子

[![E3-X](https://i.imgur.com/Dfbtinz.jpg)](https://aircalc.page.link/i6Jc)
X 點的樣子

[![編成圖]()]()
U 點的樣子

:::success
完成後開啟 ==Z2== 點(P3)。
:::


#### 制空

| 基地航空隊 | 行動 | 地點 |
|:----------:|:----:|:----:|
|     1      | 集中 | W/X  |
|     2      | 集中 | W/X  |
|     3      | 集中 |  R   |

- E-3 W 的飛機編飛不到 X,

#### 支援

| 目的 | 類型 | 需求程度 |
|:----:|:----:|:--------:|
| 前衛 | 砲擊 |  不需要  |
| 決戰 | 砲擊 |  不需要  |

#### 實戰經驗

- W、X 點做完 U 點還沒有 A 勝再去補。

##### [\_ゆめみ@NGA的分析](https://nga.178.com/read.php?tid=28158704&rand=154)

兩隊炸W,7航程98空均,一隊東海炸R點7航程
本隊制空大概400出門
1隊CV配戰爆CI(+打孔機槍)清理水上艦/PT(這裡也可以帶對陸艦爆打炮台)
其餘2船對陸,2隊主要配二連對PT
如果上邊完成了"地中海拡張作戦[第10潛水戦隊作戦]"任務,這裡可以接"地中海拡張作戦[北アフリカ作戦]",但以目前的剩餘戰力來說比較難以穩定S勝,推薦斬後回來單獨做

##### [\_ゆめみ@NGA的分析(X 點)](https://nga.178.com/read.php?tid=28158704&rand=154)

P3的配置,1隊的大發人換成對空CI,2隊的大發人配雙炮+見張

##### [\_ゆめみ@NGA的分析(U 點)](https://nga.178.com/read.php?tid=28158704&rand=154)

可在去W、X的途中完成
P點318空優
如果W、X都完成但U點沒有A,可以進行如下調整:
U點使用單縱陣,並且上道中支援
夕張第5格換成機槍
CAV的配裝調整成:3號炮(夜戰命中補正)+副炮+水爆+見張(+打孔機槍)
DD如果有打孔也可以帶機槍

#### 路線

![E3map-3](https://i.imgur.com/H5FnSYI.jpg)

:::spoiler 路線 / 參考陣形:3 P R U V W/X
| 路線  |   陣形   |
|:-----:|:--------:|
|   P   |  ⊚輪形⊚  |
|   R   |  ―反潛―  |
|   U   |  ↑警戒↑  |
|   V   |  ≪選擇≫  |
| W / X | |戰鬥| |
:::

### 8. E-3 P3

最後更新時間: 2021-00-00 00:00

[![E3-P3](https://i.imgur.com/rPJlteL.jpg)](https://aircalc.page.link/jx5p)


#### 制空

| 基地航空隊 | 行動 | 地點 |
|:----------:|:----:|:----:|
|     1      | 集中 |  Z2  |
|     2      | 集中 |  Z2  |
|     3      | 集中 |  R   |

#### 支援

| 目的 | 類型 | 需求程度 |
|:----:|:----:|:--------:|
| 前衛 | 砲擊 |  不需要  |
| 決戰 | 砲擊 |  不需要  |

#### 實戰經驗

| 項目 | 數值 | 備註   |
| ---- | ---- | ------ |
| 索敵 | 70    | 係數 2 |

##### [\_ゆめみ@NGA的分析](https://nga.178.com/read.php?tid=28158704&rand=154)

P3 運輸最關鍵的一點大概就是「不要貪」,適當多帶些戰斗裝備,不要全力運輸,否則道中會各種爆炸,boss 點也容易刁民,運輸量反而變低了
這回 P3 考大艇提航程,沒有大艇是飛不到 boss 點的,並且任何戰鬥機也飛不到,只能空喪神風
空母的飛機可以使用兩個不同的 C 檔倍卡艦戰,搭配抗擊墜的艦攻艦爆
2 隊 1~3 號位適當二連、對 PT,CAV 自帶艦種 PT 補正比 CA 稍微適合一點,有剩餘的 CAV 可以投入到這裡
2 隊 4~6 號位放 DD,夜戰點使用警戒陣迴避 buff 比較高。最前面放反潛 DD,退避時會優先判定拖船,減少 TP 損失
本想著 1 隊帶 SS 可以吸收一路上的大多數傷害,可是 boss 點的 BBV 和 CL 姬都不會反潛,並沒有多大用處

##### [\_ゆめみ@NGA的用船調整](https://nga.178.com/read.php?tid=28158704&rand=154)

 CV 的選擇上,如果確定 P4 使用納爾遜水打,可以把剩下的 CV 都投入到這裡
 1 隊的 AV 可換成任意背大發/桶的單位,搭載相對較高的塔斯特可以留給 P4 用。
 2 隊的 CAV 換成普通 CA / CLT 也行

#### 路線

![E3map-4](https://i.imgur.com/AuYXD36.jpg)

:::spoiler 路線 / 參考陣形:3 P R U V X Y Z Z2
|  路線  |   陣形   |
|:------:|:--------:|
|   P    |  ⊚輪形⊚  |
|   R    |  ―反潛―  |
|   U    |  ↑警戒↑  |
|   V    |  ≪選擇≫  |
|   X    | |戰鬥| |
|   Y    |  ⊚輪形⊚  |
|   Z    |          |
| ==Z2== | |戰鬥| |
:::

### 9. E-3 P4

最後更新時間: 2021-00-00 00:00

[![](https://i.imgur.com/vAn3K1e.jpg)](https://aircalc.page.link/9v4k)
消血期



#### 制空

| 基地航空隊 | 行動 | 地點 |
|:----------:|:----:|:----:|
|     1      | 集中 |  Z3  |
|     2      | 集中 |  Z3  |
|     3      | 集中 |  R   |

#### 支援

| 目的 | 類型 | 需求程度 |
|:----:|:----:|:--------:|
| 前衛 | 砲擊 |  不需要  |
| 決戰 | 砲擊 |  不需要  |

#### 實戰經驗

| 項目 | 數值 | 備註   |
| ---- | ---- | ------ |
| 索敵 | 80    | 係數 2 |

- 血量 ≤ 1080 時可增傷
- 刷熟練:E1 單 CV 刷 C 點(一次一隊),可順便補飛機熟練。

##### [\_ゆめみ@NGA的分析](https://nga.178.com/read.php?tid=28158704&rand=154)

- P4 機動水打是相同的路線,不過敵方對空能力很強,相對來說納爾遜水打的輸出比較穩定
- 不過水打的制空比較吃緊,拿門神空優的話,最好是用武藏帶水戰補一下制空,並且現在版本基礎火力高≈自帶倍卡
- 對空 CI 方面可以由納爾遜的 FCR +打孔砰砰炮觸發,沒有的話 2 隊也可帶對空 CI
- 2 隊盡量針對一下夜戰點的 PT,470 就不要管了,即使金剛摸也很難擊殺。
- 磨血階段為了盡量保證退避之後不會索敵溝,1 隊除了 BB 的三架水偵外,最好額外帶一架偵察機,彩雲是比較好的選擇,不過如果制空微妙的不夠的話,就讓空母帶高制空艦戰,秋津洲背個水偵
- 斬殺階段就不考慮退避了,翔鶴的彩雲可以換成噴氣機,配合艦戰的倍卡貪一發輸出
- 斬殺階段 2 隊可以減少對 PT 的配裝,全力堆輸出,刷個閃

##### [\_ゆめみ@NGA的其他調整](https://nga.178.com/read.php?tid=28158704&rand=154)

了也可以使用 bug 科羅拉多摸,道中對 BB 威脅不大,並且正好帶了可觸發 bug 的武藏,可以說是科羅拉多實裝以來最適合摸的一次了
使用 bug 摸的時候前 3 位進行如下調整:

- 旗艦科羅拉多、3 號位厭戰可以正常觀測配裝
- 2 號位武藏要打孔,孔裡不要攜帶任何裝備,帶上電探和徹甲彈,徹甲彈要放在低 5 格

![](https://i.imgur.com/ezFsXak.png)
<!--  FIXME : 需要自己補圖-->

這樣厭戰如果選中 boss,一發非死即殘,暴擊的話應該可以打出 4 位數傷害
陸航 4 陸攻配置對改修要求比較高,如果改修不足可以配陸偵提高一點制空,或者配陸戰(質量較高也可以拿空均)
如果上了道中支援,那麼道中夜戰 PT 的威脅就相對比較小,磨血階段可以讓 DD 配[電探]+[見張]的組合來提高夜戰迴避,不過要注意別配成不帶 D 炮的魚見電 CI 了

魚雷CI版:(電探的索敵<=4,見張盡量是水雷見張)

![](https://img.nga.178.com/attachments/mon_202109/05/-4ada3Qd2yx-k4heKxT3cSuq-2x.jpg)

三重CI版:(電探的索敵>=5,主炮要帶D炮)

![](https://img.nga.178.com/attachments/mon_202109/05/-4ada3Qd2yx-kt1cKxT3cSuk-2q.jpg)

對空CI版:(電探的對空>=1,索敵無要求,納爾遜配不出對空CI時可用)

![](https://img.nga.178.com/attachments/mon_202109/05/-4ada3Qd2yx-d80lKvT3cSuj-2n.jpg)

#### 路線

![E3map-5](https://i.imgur.com/YZcWGXH.jpg)

:::spoiler 路線 / 參考陣形:3 P R S U V X Z3
|  路線  |   陣形   |
|:------:|:--------:|
|   P    |  ⊚輪形⊚  |
|   R    |  ―反潛―  |
|   S    |  ⊚輪形⊚  |
|   U    |  ↑警戒↑  |
|   V    |  ≪選擇≫  |
|   X    | |戰鬥| |
|   X1   |          |
|   X2   |          |
| ==Z3== | ﹦警戒﹦ |
:::

### 10. E-3 增傷 ==I== 點(P1) A 勝 1 次、基地防空空優 1 次

最後更新時間: 2021-00-00 00:00

同 [1. E-3 P1](#1-E-3-P1)

![](https://i.imgur.com/rgn1yLJ.png)

- 注意出基地改變了,要到王點要**出擊半徑 6**。

##### [\_ゆめみ@NGA的分析](https://nga.178.com/read.php?tid=28158704&rand=154)

只需要A勝所以可以讓1~2隊陸航守家

### 11. E-3 增傷 T 點空優 1 次、X 點 S 勝 1 次、==Z2== 點(P3) S 勝 1 次

最後更新時間: 2021-00-00 00:00

[![](https://i.imgur.com/OC7uIzp.jpg)](https://aircalc.page.link/tk5D)

:::success
:::spoiler **增傷前後立繪對比**
![](https://i.imgur.com/Yn4Gg9j.png)
增傷前

![](https://i.imgur.com/hZhneKV.png)
增傷後
:::

#### 制空

| 基地航空隊 | 行動 | 地點 |
|:----------:|:----:|:----:|
|     1      | 集中 |  Z2  |
|     2      | 集中 |  Z2  |
|     3      | 集中 |  R   |

#### 支援

| 目的 | 類型 | 需求程度 |
|:----:|:----:|:--------:|
| 前衛 | 砲擊 |  不需要  |
| 決戰 | 砲擊 |  不需要  |

#### 實戰經驗

| 項目 | 數值 | 備註   |
| ---- | ---- | ------ |
| 索敵 | 0    | 係數 1 |

##### [\_ゆめみ@NGA的分析](https://nga.178.com/read.php?tid=28158704&rand=710)

 Z2 點現在變成 1 航程了,所以陸航直接使用 P4 的配置而不是 P3 的
 T 點有新的飛行場姬,需要 657 空優,可以帶一個伊勢級改二。沒有伊勢級改二也可以用一改伊勢級背水戰。沒有水戰可以一隊 4BB + 2CVL 罰站,2 隊再塞一個 FBB 帶路
與常規圖不同,帶路計算的是桶數而不是背桶的船數,所以直接 2 隊旗艦背 3 桶就可以了

#### 路線

![E3map-5](https://i.imgur.com/YZcWGXH.jpg)

:::spoiler 路線 / 參考陣形:3 P R S T U V X Y Z Z2
| 路線 |   陣形   |
|:----:|:--------:|
|  P   |  ⊚輪形⊚  |
|  R   |  ―反潛―  |
|  S   |  ⊚輪形⊚  |
|  T   |  ⊚輪形⊚  |
|  U   |  ↑警戒↑  |
|  V   |  ≪選擇≫  |
|  X   | |戰鬥| |
|  Y   |  ⊚輪形⊚  |
|  Z   |          |
|  ==Z2==  | |戰鬥| |
:::success
:::

### 12. 【地中海拡張作戦】北アフリカ作戦 F 點 S 勝 2 次

最後更新時間: 2021-00-00 00:00

同 [4. E-3 開出發點 F 點 A 勝 1 次](#4-E-3-開出發點-F-點-A-勝-1-次)

##### [\_ゆめみ@NGA的分析](https://nga.178.com/read.php?tid=28158704&rand=710)

配置基本同上方解謎,斬後做的話沒有貼條限制,可以上些強力對陸船

### 13. 【地中海拡張作戦】北アフリカ作戦 W 點 S 勝 2 次

最後更新時間: 2021-00-00 00:00

同 [7. E-3 開點 P 點空優 1 次、U 點 A 勝 1 次、W 點 A 勝 1 次、X 點 S 勝 1 次](#7-E-3-開點-P-點空優-1-次、U-點-A-勝-1-次、W-點-A-勝-1-次、X-點-S-勝-1-次)

##### [\_ゆめみ@NGA的分析](https://nga.178.com/read.php?tid=28158704&rand=710)

拿出你的最強對陸,干就完事了
納爾遜可以考慮後手摸,這樣更容易摸到DJ。一拳人大破也無所謂,裝備到位一樣可以9999
唯一要注意的一點是不能帶H Force條的船,否則會從2出發
* [[Jervis]]: E-2 P3 / P-3 P2 斬殺要員。
* [[Warspite]]:支援用。
* [[矢矧改二乙]]:萬能打雜用船之一。
* [[Gotland]]:萬能打雜用船之二。
* [[龍鳳改二]]:4-5。
* [[戰報|21 夏-増援輸送作戦!地中海の戦い 戰報]]
! 入場前

這次活動開始前又掛掉了好幾個網站,例如上面的艦隊記錄網站。一些還活著的像 [[Jervis OR|作戦室 Jervis OR]] 看起來更新也漸趨緩慢,雖然[[制空計算機|制空権シミュレータ]]有把艦隊記錄的功能保留,但這樣越來越依賴制空計算機真的很危險……

! E1

[img[https://i.imgur.com/xcm4pof.jpg)]]
可愛的霞當旗艦,這種半透明的很棒但蠻難截的。

[img[https://i.imgur.com/de4srxY.jpg]]
[img[https://i.imgur.com/FdG0SKc.png]]

! E2

[img[https://i.imgur.com/kp0CU1v.jpg]]

[img[https://i.imgur.com/TnplIHS.jpg]]
Ark Royal 大發威?好像也沒有。

[img[https://i.imgur.com/PKmu9xh.jpg]]

[img[https://i.imgur.com/mDEhIKV.png]]

[img[https://i.imgur.com/u6r0Fha.png]]

! E3

E-3 P1 ……是一些人也卡過,也說沒多簡單,但實戰經驗就是沒什麼印象,可能是被後面幾段蓋過了。

比我想得還快結束的一關,E-3 P2 入場前就聽說有夠惡意,不過實際打起來還好。斬殺期即使進王率不高,但因為打點少,進王也基本能 S 勝,導致一天後就可以開始斬殺了。而斬殺也多虧艦娘們大發神烕的四連咖,直接在進斬後第二場,也是第一次進王的場合就直接斬掉了。

反而是下一段的 E-3 P3,雖然堆到了 S 勝只要 6 次的輸送量,但王點的配置也讓你光拿個 A 勝就很勉強了,有友軍的情況下都還有機會 C 敗的。更別說道中難過,曾有 8 連退的記錄大概沒有比 E-3 P2 好到哪。

最後的 E-3 P4 在前面 E-3 P3 洗禮後,倒是意外的平順,沒有額外再花多少時間。這關我家的艦娘一樣賣力,在最後又是四連咖下收王。而且還僅僅超過血量 3 滴血。

[img[https://i.imgur.com/a5Gs95s.jpg]]
英國船都很有騎士風格,這位也不例外。

[img[https://i.imgur.com/Yqi8DI7.jpg]]
[img[https://i.imgur.com/2eXN8fO.jpg]]
[img[https://i.imgur.com/v2J5IX2.png]]

! 資源消耗

活動 8/28 入場,最後一場戰费在 9/21。最後油其實有小跌破 20 萬,不過還好隔天就回來了。

[img[https://i.imgur.com/GM7vkJe.png]]

[img[https://i.imgur.com/mf0jji3.png]]

[img[https://i.imgur.com/10NKEvp.png]]

3 張圖打 30 萬資源,田中也越來越狠了。

[img[https://i.imgur.com/fnNv0s6.png]]

這張 KC3 幫忙的總結更可怕, 14 萬油就這樣倒掉了。

! 結語

意外的還是在活動結束前 7 天打完了。後段情況一開始說 E-3 P2 道中勸退率極高,但實際打來也還好,甚至沒有 17夏那麼讓人煩躁。

固然不可否認我的艦隊比起 17 夏有著本質上的提高,不過也要感謝我家的艦屢次在關鍵的時間點都近乎全員 CI,讓我在投入大量資源的斬殺場上沒有花費太多精力。

當初選擇了活動新船數量加一的發婚艦策略比我想像得還要卡,不過仔細想想一套要  300~350 元光是以往的 8 隻就要 2500 ,再加上擴倉等花費實在暫時不想要調整策略了。而且這樣才會把戒指給到真的有用的人身上吧。(並沒有)


! [[婚艦|21 夏-戒指計畫]]

[[原 hackmd 文章|https://hackmd.io/@saka/%E8%89%A6_21%E5%A4%8F_%E5%80%8B%E4%BA%BA%E8%A8%98%E9%8C%84]]

! 編成

<a href="https://aircalc.page.link/aH2N">
[img[6-5亞特蘭大.png]]</a>

[[參考|https://nga.178.com/read.php?pid=454455575&rand=587]]

!! 可進行的調整

* 裝母可換成5格的加賀來提高開幕輸出
* 本隊制空可提高到H點627拿空確省鋁
* 沒有亞棍也可換成開幕雷夕張/水戰由良等其它CL,但注意要有一個強力對空和一個先制對潛點,實在無法反潛也可以兩隊陸航炸魚
* 但要注意兩隊陸航炸魚並不省鋁,因為如果本隊不提高開幕輸出,boss點斬殺率會下降一些,導致場均消耗提高。而本隊如果提高開幕輸出,又會多消耗一些鋁
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JAwkDCQMjBEMJCXFGOno1MyEgYSBhIGEgYSBhIGEgYSBhIGEgYSBhIGEgYSBhIGEgYSBhAHnOjo63PTp0wtRwbtKobW1JEpta2srTDZ+/PjC+BQ5vBgYKX2+5pprVkVErfdkbmlpqVpGM75sb0agE8wJAwkDCQMJAwkDCQMJAwkDCQMJAwkDCQMJAwkDCQMJAwkDCQMJA/VgYK+99nJvectb3Jw5c9z+++/vUDAceuih7oQTTuiT/ZBDDnE333yz+/e//529O/DAA928efPcvvvu6x544AHX2dnptt9+e/fCCy+4n/70p/ps4dhjj3VHH310n3JTxMrFwEjoc5QJvb297p3vfKebNWuWImDnnXd2//rXv9zy5cv1+ZxzznFvfvObq75/+umnM+TtuuuuDkXYxRdfnMWhPOvp6cmem/FHiwzO3mYEPMGcMJAwkDCQMJAwkDCQMJAwkDCQMJAwkDCQMJAwkDCQMJAwkDCQMFALAwisEfTut99+7uWXX9bkm266qZs/f7678cYb3dSpU912223nFi9e7F71qle5JUuWuAULFrgpU6a4Cy64wD3yyCNuwoQJbsaMGaro+MUvfuGOOeYY98c//tFh+X7FFVdkIPy///f/kpKiVoeshPcjoc9RTtx1111KZwMJr371q91nP/tZ99hjjylNPvPMM2699dZzjz76qPvtb3/r3vWud7nvfve7A6li2POmkxTD3gUJgISBhIGEgYSBhIGEgYSBhIGEgYSBhIGEgYSBhIGEgYSBhIGEgaHEwDrrrOP+85//uF//+tcq0D344IOz6hAm//KXv1QB8B133OEmTpzorr76aj1xgZugV7ziFW7jjTdWBcbChQvdBz7wAfea17xG39966636/qCDDtLyXv/617tvfetb+nuTTTZxnKy45557srrSj5WHgeHu86222sr96U9/0gZzuub55593XV1d+rzjjjuq4gGFQz3vH3zwQT0tgVKMcl772te622+/3b344ovutttuUyXbNddco2U1Y2gTDeCxzQh4gjlhYNUZ093SZcsSIhIGEgYSBhIGEgYSBhIGEgYSBhIGEgYSBhIGEgYGEQO4KLHPIBabikoYGDYMoGBYsWKFW3/99d3111/vPvOZz7h1111XBbsoGR5++GH3pje9ye2zzz7ulFNO0ZMV73vf+9QFD0qJVVZZRRUYCIhx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
! 未完成的任務

<$list filter="[!has[draft.of]tag[出擊任務]!tag[done]sort[created]]">
<$checkbox tag="done"> <$link><<toc-caption>></$link></$checkbox><br />
</$list>

! 已完成的任務

<<list-links [tag[出擊任務]tag[done]]>>
* [[遠征計算|https://docs.google.com/spreadsheets/d/1sfC5MWDQDecXLeMsas7NcUOKP9tVzAux-8cUGFJfrdc]]
* [[地圖導航@夢美|https://nga.178.com/read.php?tid=23451223&rand=71]]
* [[改修工廠|https://akashi-list.me/]]
* [[萌萌數據庫 - 多裝備開發統計|https://moe-data.github.io/index.html]]
* <$button class="tc-btn-invisible" popup=<<qualify "$:/temp/popup">>>
其他
{{$:/core/images/unfold-button}}</$button><$reveal type="nomatch" state=<<qualify "$:/temp/popup">> text="">

* [[艦これ 裝備開発ツール|https://daviddiao.github.io/kc-development-tools/?ja]]
* [[艦これ 開発レシピジェネレータ|https://wantora.github.io/kancolle-recipe-generator/]]

</$reveal>
* [[批踢踢實業坊|https://www.ptt.cc/bbs/KanColle/index.html]]
* [[Komica|https://acgspace.wsfun.com/kancolle/]]
* [[NGA|https://nga.178.com/thread.php?fid=-7202235&rand=93]]
*[[巴哈姆特|https://forum.gamer.com.tw/B.php?bsn=24698]]
* [[任務 - 艦隊これくしょん -艦これ- 攻略 Wiki*|https://wikiwiki.jp/kancolle/任務]]
* [[虚像工廠改二|https://dsco11.web.fc2.com/]]
* <$button class="tc-btn-invisible" popup=<<qualify "$:/temp/popup">>>
其他
{{$:/core/images/unfold-button}}</$button><$reveal type="nomatch" state=<<qualify "$:/temp/popup">> text="">

* [[The home of the hard working tsunderes!|https://tsundb.kc3.moe/]]
* [[艦これ情報Wiki|https://kancolle.playing.wiki/]]
* [[Kancolle Wiki|https://en.kancollewiki.net/Kancolle_Wiki]]
* [[Eins 的 Google 雲端硬碟|https://drive.google.com/drive/folders/1QhhYrUSAOw87362b7QeazAM3hvHWbQQe]]

</$reveal>
* [[制空計算機|https://noro6.github.io/kcTools/list/]] [[介紹|制空権シミュレータ]]
* [[支援艦隊計算機|https://thisleaf.github.io/kancolle_support.html]]
* [[對陸計算機|https://dube116.github.io/installation-calculator/]]
* [[掉落列表|https://fourinone41.github.io/kancolle-replay/droptables.html]]
* <$button class="tc-btn-invisible" popup=<<qualify "$:/temp/popup">>>
其他
{{$:/core/images/unfold-button}}</$button><$reveal type="nomatch" state=<<qualify "$:/temp/popup">> text="">

* [[KCNav - KanColle Navigator|https://tsunkit.net/nav/#/]]
* [[KanColle Sortie Simulator|https://kc3kai.github.io/kancolle-replay/simulator.html]]
* [[制空爭いシミュレータカッコカリ|https://dque.github.io/seiku/]]
* [[艦これ - 艦隊編成ツール|https://ihome.kawa-e.com/kancolle_calculator/]]
* [[作戦室 Jervis OR|https://kcjervis.github.io/jervis/#/]] [[介紹|作戦室 Jervis OR]]
</$reveal>


* [[戰果排行榜|https://senka.su/]]
* [[戰果週回編成|https://senka.hatenadiary.jp/entry/2019/03/04/063759]]
一些常用的外部連結

!! [[日常|外部連結:日常]]

{{外部連結:日常}}

!! [[討論區|外部連結:討論區]]

{{外部連結:討論區}}

!! [[編成|外部連結:編成]]

{{外部連結:編成}}

!! [[戰果|外部連結:戰果]]

{{外部連結:戰果}}

!! [[綜合資訊|外部連結:綜合資訊]]

{{外部連結:綜合資訊}}
\define track-link(id, link)
<$checkbox field="status_$id$" checked="done"> [[$id$|$link$]] </$checkbox>
\end

\define track-task(id)
<$checkbox field="status_$id$" checked="done"> $id$</$checkbox>
\end

\define track-exp(id)
<$checkbox field="status_$id$" checked="done">
{{{ [field:exp-id[$id$]] }}}</$checkbox>
\end

\define track-map(id, link)
<$checkbox field="status_$id$" checked="done">
{{{ [field:map-id[$id$]] }}}</$checkbox>
\end

[[任務]] 使用的巨集

! 用法

```wiki
<< track-task id: <id> >>
```

設定欄位追縱用的 checkbox

```
<< track-exp id: <id> >>
```

設定 checkbox, 標籤是連結到同 `id` 的遠征(`exp-id` 相同)。

```
<<<track-map id: <id> >>
```

設定  checkbox,標籤是連結同 `id` 的海域(欄位 `exp-id` 相同)。

```wiki
<<track-link id: <id> link: <link> >>
```

設定通用的帶連結的 checkbox


! [[任務]]

* [[[情報] 2021年9月28日實裝新任務 - 看板 KanColle - 批踢踢實業坊|https://www.ptt.cc/bbs/KanColle/M.1632826252.A.538.html]]
* [[Re: [情報] 2021年9月28日實裝新任務 - 看板 KanColle - 批踢踢實業坊|https://www.ptt.cc/bbs/KanColle/M.1632879048.A.7CA.html]]
<div class="tc-table-of-contents">

<<toc-selective-expandable '目錄'>>

</div>
! 未完成的任務

<$list filter="[!has[draft.of]tag[任務詳細]!tag[done]sort[created]]">
<$checkbox tag="done"> <$link><<toc-caption>></$link></$checkbox><br />
</$list>
用於記錄編成列表、基地航空隊並顯示各項詳細數據(如夜戰攻擊型態、傷害的網站。

也可針對單隻艦娘及倍卡計算對敵方造成的傷害等。

可和[[制空権シミュレータ]]相互匯入。

官網:[[作戦室 Jervis OR|https://kcjervis.github.io/jervis/#/]]
* <<track-task id: 四式飛龍>> max * 2
* <<track-task id: 65>> max * 2
* <<track-task id: 彗星江草>> * 4
* <<track-task id: 中戰>> max * 6
* <<track-task id: 武裝大發>> * 1
* <<track-task id: 強風改>> max * 2
主要是計算艦隊出擊到各點的制空狀態。同時可以記錄出擊路線、陸航、防空敵軍等相當方便,也可以匯入現持有裝備相當方便,所以我很喜歡。

可和[[作戦室 Jervis OR]] 相互匯入

官網:[[制空権シミュレータ|https://noro6.github.io/kcTools/simulator/]]
! 重制版

|! 活動名稱|! 活動資訊|! 戰報|
|! 18 冬-捷號決戦!邀撃、レイテ沖海戦(後篇) |[[活動資訊|18 冬-捷號決戦!邀撃、レイテ沖海戦(後篇)]]|[[戰報|18 冬-捷號決戦!邀撃、レイテ沖海戦(後篇) 戰報]]|
|! 18 初秋 抜錨!連合艦隊、西へ! |[[活動資訊|18 初秋-抜錨!連合艦隊、西へ!]]|[[戰報|18 初秋-抜錨!連合艦隊、西へ! 戰報]]|
|! 19 冬-邀撃!ブイン防衛作戦 |[[活動資訊|19 冬-邀撃!ブイン防衛作戦]]|[[戰報|19 冬-邀撃!ブイン防衛作戦 戰報]]|
|! 19 春-発動!友軍救援「第二次ハワイ作戦 」 |[[活動資訊|19 春-発動!友軍救援「第二次ハワイ作戦 」]]|[[戰報|19 春-発動!友軍救援「第二次ハワイ作戦 」 戰報]]|
|! 19 夏-歐州方面反撃作戦 発動!「シングル作戦」 |[[活動資訊|19 夏-歐州方面反撃作戦 発動!「シングル作戦」]]|[[戰報|19 夏-歐州方面反撃作戦 発動!「シングル作戦」 戰報]]|
|! 19 秋-進撃!第二次作戦南方作戦「激突!スラバヤ沖海戦」 |[[活動資訊|19 秋-進撃!第二次作戦南方作戦「激突!スラバヤ沖海戦」]]|[[戰報|19 秋-進撃!第二次作戦南方作戦「激突!スラバヤ沖海戦」 戰報]]|
|! 20 節分-桃の節句!沖に立つ波 |[[活動資訊|20 節分-桃の節句!沖に立つ波]]|[[戰報|20 節分-桃の節句!沖に立つ波 戰報]]|
|! 20 梅雨 & 夏-侵攻阻止!島嶼防衛強化作戦 |[[活動資訊|20梅雨 & 夏 侵攻阻止!島嶼防衛強化作戦]]|[[戰報|20 梅雨 & 夏-侵攻阻止!島嶼防衛強化作戦 戰報]]|
|! 20 秋-護衛せよ!船団輸送作戦 |[[活動資訊|20 秋-護衛せよ!船団輸送作戦]]|[[戰報|20 秋-護衛せよ!船団輸送作戦 戰報]]|
|! 21 春-激突!ルンガ沖夜戦 |[[活動資訊|21 春-激突!ルンガ沖夜戦]]|[[戰報|21 春-激突!ルンガ沖夜戦 戰報]]|
|! 21 夏-増援輸送作戦!地中海の戦い |[[活動資訊|21 夏-増援輸送作戦!地中海の戦い]]|[[戰報|21 夏-増援輸送作戦!地中海の戦い 戰報]]|


! 舊版

|! 時期|! 活動攻略|! 個人記錄|
|! 18 冬|[[捷號決戦!邀撃、レイテ沖海戦(後篇)|https://hackmd.io/@saka/艦_18冬_活動攻略]]|[[個人記錄|https://hackmd.io/@saka/艦_18冬_個人記錄]]|
|! 18 初秋|[[抜錨!連合艦隊、西へ!|https://hackmd.io/@saka/艦_18初秋_活動攻略]]||
|! 19 冬|[[邀撃!ブイン防衛作戦|https://hackmd.io/@saka/艦_19冬_活動攻略]]|[[個人記錄|https://hackmd.io/@saka/艦_19冬_個人記錄]]|
|! 19 春|[[発動!友軍救援「第二次ハワイ作戦 」|https://hackmd.io/@saka/艦_19春_活動攻略]]|[[個人記錄|https://hackmd.io/@saka/艦_19春_個人記錄]]|
|! 19 夏|[[歐州方面反撃作戦 発動!「シングル作戦」|https://hackmd.io/@saka/艦_19夏_活動攻略]]|[[個人記錄|https://hackmd.io/@saka/艦_19夏_個人記錄]]|
|! 19 秋|[[進撃!第二次作戦南方作戦「激突!スラバヤ沖海戦」|https://hackmd.io/@saka/艦_19秋_活動攻略]]|[[個人記錄|https://hackmd.io/@saka/艦_19秋_個人記錄]]|
|! 20 節分|[[桃の節句!沖に立つ波|https://hackmd.io/@saka/艦_20節分_活動攻略]]|[[個人記錄|https://hackmd.io/@saka/艦_20節分_個人記錄]]|
|! 20 梅雨 &amp; 夏|[[侵攻阻止!島嶼防衛強化作戦|https://hackmd.io/@saka/艦_20梅夏_活動攻略]]|[[個人記錄|https://hackmd.io/@saka/艦_20梅夏_個人記錄]]|
|! 20 秋|[[護衛せよ!船団輸送作戦|https://hackmd.io/@saka/艦_20秋_活動攻略]]|[[個人記錄|https://hackmd.io/@saka/艦_20秋_個人記錄]]|
|! 21 春|[[激突!ルンガ沖夜戦|https://hackmd.io/@saka/艦_21春_活動攻略]]|[[個人記錄|https://hackmd.io/@saka/艦_21春_個人記錄]]|
|! 21 夏|[[増援輸送作戦!地中海の戦い|https://hackmd.io/@saka/艦_21夏_活動攻略]]|[[個人記錄|https://hackmd.io/@saka/艦_21夏_個人記錄]]|
<<list-links [tag[海域]]>>
## 2019-08-11 ~

名次 | 地圖 | 週次數 | 月次數(4 週 / 30 天算) | 季次數(13 週 / 91 天算) | 任務
-- | -- | -- | -- | -- | --
1 | 2-1 / 3-2 撈彈^3^ / 6SS(V) | 26 ~ 41 | 104 ~ 164 | 338 ~ 533 | ~~Bd7-南西諸島海域の制海権を握れ!~~<br> Bw2 い號作戦<br> SS(V)刷閃^2^<br> 扣掉 Bq9
2 | 2-2 撈鋁 | 24 ~ 29 | 89 ~ 109 | 291 ~ 356 | Bd5-敵補給艦を3隻撃沈せよ!<br> Bw4-ろ号作戦<br> 扣掉 3-5 / 4-2 / 4-5 / 5-2
3 | 1-3 / 1-4 / 1-6 / 2-1 / 2-2 / 2-3 / 5-3 / 7-1 /  ~~補給~~ / 練船 / 1CL-5DD | 21 | 94 | 290 | Bm3 「水雷戦隊」南西へ!<br> Bm8 兵站線確保!海上警備を強化実施せよ!<br> Bq3 強行輸送艦隊、抜錨!<br> Bq9 空母戦力の投入による兵站線戦闘哨戒<br> Bq11 南西諸島方面「海上警備行動」発令!<br> 刷閃^1^
4 | 1-5 | 21 | 90 | 273 | Bd8 敵潜水艦を制圧せよ!<br> Bw5 海上護衛戦<br> Bw10 海上輸送路の安全確保に努めよ!<br> Bm5 海上護衛強化月間<br> Bq8 泊地周辺海域の安全確保を徹底せよ!<br> EO、刷閃^1^
5 | 演習 | 14 | 60 | 183 | 演習
6 | 泊地修理 | 14 | 60 | 183
7 | 4-5 | 12 | 48 | 144 | Bw6 敵東方艦隊を撃滅せよ! EO
8 | 3-3 / 4-2 / 4-4 / 5-2 2CV(B)-2CA(V)-2DD | 8 | 29 | 87 | Bw7-敵北方艦隊主力を撃滅せよ!<br> Bw8-敵東方中枢艦隊を撃破せよ!<br> Bw9-南方海域珊瑚諸島沖の制空権を握れ!<br> Bm6-「空母機動部隊」西へ!<br> Bq5-北方海域警備を実施せよ!<br> 扣掉 3-5 4 次
13 | 6-5 | | 6 | 18 | EO<br> Bq10 戦果拡張任務!「Z作戦」後段作戦
14 | 5-5 | | 5 | 15 | EO<br> Bq10 戦果拡張任務!「Z作戦」後段作戦
15 | 3-5 |  | 4 | 12 | EO
|| 2-4 |  |  | 2 | Bq1-沖ノ島海域迎撃戦<br> Bq2-戦果拡張任務!「Z作戦」前段作戦
|| 2-5 |  | 3 | 9 |Bm1-「第五戦隊」出撃せよ!<br> 扣掉水反的不同編成
|| 2-5 水反 |  | 1 | 3 | Bm7-「水上反撃部隊」突入せよ!
|| 3-1 | | | 1 | Bq5-北方海域警備を実施せよ!
|| 3-2 | | | 1 | Bq5-北方海域警備を実施せよ!
|| 3-3 撈家具幣^4^ / 2DD BB CLT 2CVL | 5 | 20 | 65 | [詳細](https://www.ptt.cc/bbs/KanColle/M.1552143340.A.F24.html)
|| 5-1 |  | 1 | 3 | Bm4-「水上打撃部隊」南方へ!
|| 5-1 / 5-3 / 5-4 三川艦隊 | | | 5 | Bq6-精鋭「三一駆」、鉄底海域に突入せよ!<br> Bq7-新編成「三川艦隊」、鉄底海峡に突入せよ!
|| 6-1 | | 3 | 9 | Bm2-「潜水艦隊」出撃せよ!<br> Bq2-戦果拡張任務!「Z作戦」前段作戦
|| 6-2 | | | 1 | Bq10 戦果拡張任務!「Z作戦」後段作戦
|| 6-3 | | | 2 | Bq2-戦果拡張任務!「Z作戦」前段作戦<br>  Bq4-前線の航空偵察を実施せよ!
|| 6-4 | | | 1 | Bq2-戦果拡張任務!「Z作戦」前段作戦
|| 7-1 | | | 3 | Bq8-泊地周辺海域の安全確保を徹底せよ!
|| 7-2 | | | 3 | Bq8-泊地周辺海域の安全確保を徹底せよ!<br> Bq10 戦果拡張任務!「Z作戦」後段作戦

1: 以每日 3 次計
2: 以每月 25 次計
3: 以每日 3 次計
4: 以每週 5 次計

## 2019-06-13 ~ 2019-08-11

名次 | 地圖 | 週次數 | 月次數(4 週 / 30 天算) | 季次數(12 週 / 90 天算) | 任務
-- | -- | -- | -- | -- | --
1 | 1-5 | 21 | 90 | 270 | Bd8-敵潜水艦を制圧せよ!<br> Bw5-海上護衛戦<br> Bw10-海上輸送路の安全確保に努めよ!<br> Bm5-海上護衛強化月間<br> Bq8-泊地周辺海域の安全確保を徹底せよ!<br> EO、刷閃^1^
2 | 1-3 / 1-4 / 1-6 / 2-1 / 2-2 / 2-3 / 5-3 / ~~補給~~ / 練船 / 1CL-5DD | 16 | 72 | 220 | Bm3-「水雷戦隊」南西へ!<br> Bq3-強行輸送艦隊、抜錨!<br> Bq9-空母戦力の投入による兵站線戦闘哨戒 <br> 刷閃^1^
3 | 演習 | 14 | 60 | 180 | 演習
4 | 泊地修理 | 7 | 30 | 90
5 | 2-1 6SS(V) | 0 ~ 35 | 25 ~ 146 | 100 ~ 435 | Bd7-南西諸島海域の制海権を握れ!<br> SS(V)刷閃^2^<br> 扣掉 2-5、Bq9
6 | 4-5 | 12 | 48 | 144 | Bw6-敵東方艦隊を撃滅せよ! EO
7 | 3-3 / 4-2 / 4-4 / 5-2 2CV(B)-2CA(V)-2DD | 8 | 29 | 87 | Bw7-敵北方艦隊主力を撃滅せよ!<br> Bw8-敵東方中枢艦隊を撃破せよ!<br> Bw9-南方海域珊瑚諸島沖の制空権を握れ!<br> Bm6-「空母機動部隊」西へ!<br> Bq5-北方海域警備を実施せよ!<br> 扣掉 3-5 4 次
8 | 2DD BB CLT 2CVL | 5 | 20 | 60 | [3-3 二期撈家具](https://www.ptt.cc/bbs/KanColle/M.1552143340.A.F24.html)
11 | 6-5 | | 6 | 18 | EO
12 | 5-5 | | 5 | 15 | EO
13 | 3-5 |  | 4 | 12 | EO
|| 2-2 | 25 ~ 30 | 94 ~ 114 | 282 ~ 342 | Bd5-敵補給艦を3隻撃沈せよ!<br> Bw4-ろ号作戦<br> 扣掉3-5/4-2/4-5
|| 2-4 |  |  | 2 | Bq1-沖ノ島海域迎撃戦<br> Bq2-戦果拡張任務!「Z作戦」前段作戦
|| 2-5 |  | 3 | 9 |Bm1-「第五戦隊」出撃せよ!<br> 扣掉水反的不同編成
|| 2-5 水反 |  | 1 | 3 | Bm7-「水上反撃部隊」突入せよ!
|| 3-1 | | | 1 | Bq5-北方海域警備を実施せよ!
|| 3-2 | | | 1 | Bq5-北方海域警備を実施せよ!
|| 5-1 |  | 1 | 3 | Bm4-「水上打撃部隊」南方へ!
|| 5-1 / 5-3 / 5-4 三川艦隊 | | | 5 | Bq6-精鋭「三一駆」、鉄底海域に突入せよ!<br> Bq7-新編成「三川艦隊」、鉄底海峡に突入せよ!
|| 6-1 | | 3 | 9 | Bm2-「潜水艦隊」出撃せよ!<br> Bq2-戦果拡張任務!「Z作戦」前段作戦
|| 6-3 | | | 2 | Bq2-戦果拡張任務!「Z作戦」前段作戦<br>  Bq4-前線の航空偵察を実施せよ!
|| 6-4 | | | 1 | Bq2-戦果拡張任務!「Z作戦」前段作戦
|| 7-1 | | | 3 | Bq8-泊地周辺海域の安全確保を徹底せよ!
|| 7-2 | | | 3 | Bq8-泊地周辺海域の安全確保を徹底せよ!

1: 以每日 3 次計
2: 以每月 25 次計


## 舊版(~2019-06-13)

名次 | 地圖 | 週次數 | 月次數(4 週 / 30 天算) | 季次數(12 週 / 90 天算) | 任務
-- | -- | -- | -- | -- | --
6 | 泊地修理 | 7 | 30 | 90
4 | 演習 | 14 | 60 | 180 | 演習
8 | 1-3 / 1-4 / 1-6 / 2-1 / 2-2 / 2-3 1CL-5DD |  | 8 | 28 | Bm3-「水雷戦隊」南西へ! Bq3-強行輸送艦隊、抜錨! Bq9-空母戦力の投入による兵站線戦闘哨戒 EO
2 | 1-5 | 21 | 90 | 270 | Bd8-敵潜水艦を制圧せよ! Bw5-海上護衛戦 Bw10-海上輸送路の安全確保に努めよ! Bm5-海上護衛強化月間 Bq8-泊地周辺海域の安全確保を徹底せよ! EO、刷閃^1
3 | 2-1 6SS(V) | 0 ~ 35 | 25 ~ 146 | 100 ~ 435 | Bd7-南西諸島海域の制海権を握れ! SS(V)刷閃^2、扣掉 2-5、Bq9
1 | 2-2(補給) | 25 ~ 30 | 94 ~ 114 | 282 ~ 342 | Bd5-敵補給艦を3隻撃沈せよ! Bw4-ろ号作戦 扣掉3-5/4-2/4-5
|| 2-4 |  |  | 2 | Bq1-沖ノ島海域迎撃戦 Bq2-戦果拡張任務!「Z作戦」前段作戦
|| 2-5 |  | 3 | 9 |Bm1-「第五戦隊」出撃せよ! 扣掉水反的不同編成
|| 2-5 水反 |  | 1 | 3 | Bm7-「水上反撃部隊」突入せよ!
|| 3-1 | | | 1 | Bq5-北方海域警備を実施せよ!
|| 3-2 | | | 1 | Bq5-北方海域警備を実施せよ!
7 | 3-3 / 4-2 / 4-4 / 5-2 2CV(B)-2CA(V)-2DD | 8 | 29 | 87 | Bw7-敵北方艦隊主力を撃滅せよ! Bw8-敵東方中枢艦隊を撃破せよ! Bw9-南方海域珊瑚諸島沖の制空権を握れ! Bm6-「空母機動部隊」西へ! Bq5-北方海域警備を実施せよ! 扣掉_3-5_4_次 *
11 | 3-5 |  | 4 | 12 | EO
5 | 4-5 | 12 | 48 | 144 | Bw6-敵東方艦隊を撃滅せよ! EO
|| 5-1 |  | 1 | 3 | Bm4-「水上打撃部隊」南方へ!
|| 5-1 / 5-3 / 5-4 三川艦隊 | | | 5 | Bq6-精鋭「三一駆」、鉄底海域に突入せよ! Bq7-新編成「三川艦隊」、鉄底海峡に突入せよ!
10 | 5-5 | | 5 | 15 | EO
|| 6-1 | | 3 | 9 | Bm2-「潜水艦隊」出撃せよ! Bq2-戦果拡張任務!「Z作戦」前段作戦
|| 6-3 | | | 2 | Bq2-戦果拡張任務!「Z作戦」前段作戦  Bq4-前線の航空偵察を実施せよ!
|| 6-4 | | | 1 | Bq2-戦果拡張任務!「Z作戦」前段作戦
9 | 6-5 | | 6 | 18 | EO
|| 7-1 | | | 3 | Bq8-泊地周辺海域の安全確保を徹底せよ!
|| 7-2 | | | 3 | Bq8-泊地周辺海域の安全確保を徹底せよ!

1: 以每日 3 次計
2: 以每月 25 次計

## 可以考慮方向

* 5-3 打補給(1CA 5CL,可和其他複合),預估同樣是每日 2 次。


! 未完成的任務

<$list filter="[!has[draft.of]tag[遠征任務]!tag[done]sort[created]]">
<$checkbox tag="done"> <$link><<toc-caption>></$link></$checkbox><br />
</$list>

! 已完成的任務

<<list-links [tag[遠征任務]tag[done]]>>
<<list-links [tag[鎮守府精強方案]]>>
[[參考|https://wikiwiki.jp/kancolle/%E4%BB%BB%E5%8B%99#id-B172]]

<$checkbox tag="done">山風改二/丁旗艦,驅逐艦和海防艦共計3隻以上,下列王點各 S 勝 1 次:</$checkbox>


* <<track-task id: 1-2>>
* <<track-task id: 1-3>>
* <<track-task id: 1-4>>
* <<track-task id: 1-5>>
[[參考|https://wikiwiki.jp/kancolle/%E4%BB%BB%E5%8B%99#id-B173]]

<$checkbox tag="done">艦隊包含山風改二/丁、江風改二、海風改二其中的兩隻,下列王點各 S 勝 1 次:</$checkbox>


* <<track-task id: 2-2>>
* <<track-task id: 7-2-2>>
* <<track-task id: 5-1>>
* <<track-task id: 6-4>>
[[參考|https://wikiwiki.jp/kancolle/%E4%BB%BB%E5%8B%99#id-D43]]

<$checkbox tag="done">下列遠征各成功 1 次:</$checkbox>

* <<track-exp id: 4>>
* <<track-task id: 5>>
* <<track-task id: A1>>
* <<track-task id: 9>>
* <<track-task id: B1>>
* <$button class="tc-btn-invisible" popup=<<qualify "$:/temp/popup">>>
其他
{{$:/core/images/unfold-button}}</$button><$reveal type="nomatch" state=<<qualify "$:/temp/popup">> text="">

* 

</$reveal>
從 [[hackmd|https://hackmd.io]] 暫時搬過來的頁面,需要重改後刪除。

<<list-links filter:"[tag[hackmd]]">>